登录到管理员 - 使用 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 【问题描述】:

我正在使用 phpmysql 构建一个数据库驱动的网站。登录表单运行良好,但在我的代码中添加了一个新功能以使用户登录到管理员或会员页面后,登录停止显示(例如)“欢迎,帕特,管理员”或“欢迎,吉娜, 成员”在表格上。

表单是一个小表单,显示在网站的每个页面上,作为登录或提醒他们已经登录(使用会话)。现在,当我登录一个人时,它确实会将他们带到管理员或会员页面,但它不会在表单中显示登录信息,并且单击时注销按钮将不起作用。这是我用于登录和注销的代码,以及用于访问管理页面或会员页面的功能的代码。

注销表单,在他们点击注销之前应该显示他们已登录,但它不起作用:

<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 的会员网站 - 登录不起作用的主要内容,如果未能解决你的问题,请参考以下文章

基于php的简单图书管理系统 ,登录,注册,退出登录,数据库增删改查 ,建立sessioon ,建立mysql数据库。

使用mysql中的访问列在php中设置用户角色时出错

linux下centos的phpmyadmin无法登录

动态网站安全问题(PHP+MySQL)

PHP Sql 语句从 MySQL 导出表数据

基于mysql+php066医疗档案管理系统