Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP登录系统问题,可能的会话问题_Php_Html_Session_Login_Web - Fatal编程技术网

PHP登录系统问题,可能的会话问题

PHP登录系统问题,可能的会话问题,php,html,session,login,web,Php,Html,Session,Login,Web,嗨,我有一个php登录系统脚本示例。不幸的是,当我输入正确的登录凭据时,它会刷新并保留在index.php上,提示我再次登录。我的猜测是seession可能没有正确存储。 请在下面查找源代码: index.php <?php include "base.php"; ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.d

嗨,我有一个php登录系统脚本示例。不幸的是,当我输入正确的登录凭据时,它会刷新并保留在index.php上,提示我再次登录。我的猜测是seession可能没有正确存储。 请在下面查找源代码:

index.php

<?php include "base.php"; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
<title>User Management System (Tom Cameron for NetTuts)</title>
<link rel="stylesheet" href="style.css" type="text/css" />
</head>  
<body>  
<div id="main">
<?php
if(empty($_SESSION['LoggedIn']) && empty($_SESSION['Username']))
{
     ?>

    <h1>Member Area</h1>
     <p>Thanks for logging in! You are <b><?=$_SESSION['Username']?><b> and your email address is <b><?=$_SESSION['EmailAddress']?></b>.</p>

    <ul>
        <li><a href="logout.php">Logout.</a></li>
    </ul>

    <?php
}
elseif(!empty($_POST['username']) && !empty($_POST['password']))
{
     $username = mysql_real_escape_string($_POST['username']);
    $password = md5(mysql_real_escape_string($_POST['password']));

     $checklogin = mysql_query("SELECT * FROM users WHERE Username = '".$username."' AND Password = '".$password."'");

    if(mysql_num_rows($checklogin) == 1)
    {
         $row = mysql_fetch_array($checklogin);
        $email = $row['EmailAddress'];

        $_SESSION['Username'] = $username;
        $_SESSION['EmailAddress'] = $email;
        $_SESSION['LoggedIn'] = 1;

         echo "<h1>Success</h1>";
        echo "<p>We are now redirecting you to the member area.</p>";
        echo "<meta http-equiv='refresh' content='=2;index.php' />";
    }
    else
    {
         echo "<h1>Error</h1>";
        echo "<p>Sorry, your account could not be found. Please <a href=\"index.php\">click here to try again</a>.</p>";
    }
}
else
{
    ?>

   <h1>Member Login</h1>

   <p>Thanks for visiting! Please either login below, or <a href="register.php">click here to register</a>.</p>

    <form method="post" action="index.php" name="loginform" id="loginform">
    <fieldset>
        <label for="username">Username:</label><input type="text" name="username" id="username" /><br />
        <label for="password">Password:</label><input type="password" name="password" id="password" /><br />
        <input type="submit" name="login" id="login" value="Login" />
    </fieldset>
    </form>

   <?php
}
?>
</div>
</body>
</html>

用户管理系统(Tom Cameron for Netuts)
会员区
谢谢登录!您是,您的电子邮件地址是

用户管理系统(Tom Cameron for Netuts)
您的
if
条件(在
index.php
文件中)检查它是否为
;这是错误的

试试这个:

if(isset($_SESSION['LoggedIn']) && isset($_SESSION['Username']))

而不是

if(empty($_SESSION['LoggedIn']) && empty($_SESSION['Username']))

看起来你的第一个条件不正确。
条件应该是,如果不是空的,那么您将被记录

请发布
base.php
session_start()丢失base.php base.php文件中是否有session start ius您的
base.php
有一个开头
请不要以纯文本存储密码。永远不要用纯文本存储密码。当你键入答案时,你会看到“答案已发布”,而这正是你正在键入的+1.
<?php include "base.php"; $_SESSION = array(); session_destroy(); ?>
<meta http-equiv="refresh" content="0;index.php">
if(isset($_SESSION['LoggedIn']) && isset($_SESSION['Username']))
if(!empty($_SESSION['LoggedIn']) && !empty($_SESSION['Username']))
if(empty($_SESSION['LoggedIn']) && empty($_SESSION['Username']))