登录到管理员 - 使用 PHP 和 MySQL 的会员网站 - 登录不起作用
Posted
技术标签:
【中文标题】登录到管理员 - 使用 PHP 和 MySQL 的会员网站 - 登录不起作用【英文标题】:Logging in to a Admin - Member website with PHP and MySQL - Log in not working 【发布时间】:2015-04-29 18:24:41 【问题描述】:我正在使用 php 和 mysql 构建一个数据库驱动的网站。登录表单运行良好,但在我的代码中添加了一个新功能以使用户登录到管理员或会员页面后,登录停止显示(例如)“欢迎,帕特,管理员”或“欢迎,吉娜, 成员”在表格上。
表单是一个小表单,显示在网站的每个页面上,作为登录或提醒他们已经登录(使用会话)。现在,当我登录一个人时,它确实会将他们带到管理员或会员页面,但它不会在表单中显示登录信息,并且单击时注销按钮将不起作用。这是我用于登录和注销的代码,以及用于访问管理页面或会员页面的功能的代码。
注销表单,在他们点击注销之前应该显示他们已登录,但它不起作用:
<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');
;
登录功能将您带到管理页面或会员页面:这个不会在 else eiher 中打印任何内容:
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');
这里是连接查询:
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); 它说它是 NULL 但我不知道为什么,因为在我添加之前它工作得很好: if ($level === "Administrator") header('Location: /tires/admin /home.php');出口(); elseif ($level === "会员") header('位置:/tires/member/home.php');出口(); 【参考方案1】:我对 function login($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 = '?';
【讨论】:
我希望这对我有用。它仍然拒绝注销 - 当它登录时,它没有显示正确的登录信息:如 Welcome、Pat、Administrator。曾经,它工作得很好,直到我把它转到不同的文件夹——管理员和成员文件夹。那是它坏掉的时候。非常感谢你的帮助,上帝保佑你。如果你还有什么想法,我一定会期待的。以上是关于登录到管理员 - 使用 PHP 和 MySQL 的会员网站 - 登录不起作用的主要内容,如果未能解决你的问题,请参考以下文章