我正在使用PHP和MySQL构建一个数据库驱动的网站。登录表单运行得很好,但在我在代码中添加了一个新功能,让用户登录到管理员或会员页面后,登录停止在表单上显示(例如)"欢迎,Pat,Administrator"或"欢迎,Gina,member"。
该表单是一个小表单,显示在网站的每个页面上,既可以作为登录,也可以作为提醒他们已经登录(使用会话)。现在,当我登录一个人时,它确实会将他们带到管理员或成员页面,但它不会在表单中显示登录信息,单击注销按钮时也不会工作。这是我的登录和注销代码,以及我用来访问管理页面或成员页面的功能代码。
注销表单,它应该显示他们已经登录,直到他们点击注销,但它不起作用:
<form method="post" id="logoutform.inc.html">
<fieldset>
<legend>Logout</legend>
<?php
include('includes/functions.php');
if(isset($results)){
if ((isset($_SESSION['loginName'])) === $result['email'] && (isset($_SESSION['password'])) === $result['password']){
echo "Welcome, <br />";
echo "$level, <br />";
echo get_name($results);
// print_r($_POST);
print '<br />';
} else {
var_dump($results);
}
}
?>
<br /><br /><br />
<input type="submit" name="action" value="logout" />
</fieldset>
</form>
登录表单:
<form action="index.php" method="post" id="loginform.inc.html">
<fieldset>
<legend>Login</legend>
<label for="loginName" class="loginName">Username:</label>
<input id="loginName" name="loginName" type="text" value="<?php echo (isset($loginName['loginName'])); ?>" />
<label for="password" class="loginName">Password:</label>
<input id="password" name="password" type="password" value="<?php echo (isset($password['password'])); ?>" />
<input type="submit" name="submit" value="login" />
</fieldset>
</form>
注销功能:
function logout() {
$_SESSION = array();
session_destroy();
header('Location: home.php');
};
登录功能,带你进入管理员或会员页面:这一页不会在其他页面打印任何内容:
function login($loginName, $password) {
$results = connect($loginName);
if ((isset($_SESSION['loginName'])) === $result['email'] && (isset($_SESSION['password'])) === $result['password']){
var_dump($loginName);
print "Welcome, $loginName";
} else {
echo "Sorry. You are not in our database";
}
if ( 'a' == $results['level'] ){
$level = "Administrator";
} elseif ( 'm' == $results['level'] ){
$level = "Member";
} else $level = '?';
if ($level === "Administrator"){
header('Location: /tires/admin/home.php');
exit();
} elseif ($level === "Member"){
header('Location: /tires/member/home.php');
exit();
}
include('includes/logoutform.inc.html');
}
这是CONNECT查询:
function connect($loginName){
global $db;
$query = "SELECT email, level, password FROM members WHERE email = '$loginName'";
$result = $db->query($query);
$results = $result->fetch(PDO::FETCH_ASSOC);
return $results;
};
我对函数登录($loginName,$password)做了一些更改请参阅下面的代码,我检查代码,它显示logoutform.inc.html未包含在内。
function login($loginName, $password) {
$results = connect($loginName);
if ((isset($_SESSION['loginName'])) === $result['email'] && (isset($_SESSION ['password'])) === $result['password'])
{var_dump($loginName);
print "Welcome, $loginName";}
else {
echo "Sorry. You are not in our database";
}
include('includes/logoutform.inc.html');
if ( 'a' == $results['level'] ) {
header('Location: /tires/admin/home.php');
}
elseif ( 'm' == $results['level'] ) {
header('Location: /tires/member/home.php');
}
else $level = '?';
}