1

我有一个页面 header.php,其中包括为我的站点用户提供登录的地方。它加载、设置、数据库功能和 CSS 文件。在设置文件中,我声明了一个全局变量 $username。在 header.php 我有以下代码:

if(!isset($username)){
  echo'<div class = "loginSpace">';
  echo'
  <form action = "checkLogin.php" method = "post">
  Username: <input type = "text" name = "username" size = 14/>
  <br>Password: <input type = "password" name = "pass" size = 14 />
  <input type = "submit" value = "Sign In"/>
  </form>
  </div>';
}
else{
     $result = mysql_query("SELECT * FROM {$db_prefix}Users WHERE Username = '{$username}'");
     $userInfo = mysql_fetch_array($result);
     echo '<div class = "loginSpace">
     Welcome ' . $userInfo['FirstName'] .'
     <form action = "index.php" method = "post"> '; 
     $username = "";
     echo'<input type = "submit" value = "Log out"/>
     </form>
     </div>';
     }

在签到时,我有:

$username = $_POST['username'];
$password = $_POST['pass'];
require_once('Header.php');

用户名被保留,当您被重定向到 checkLogin.php 时会显示正确的“标题”,但是,如果您单击链接转到站点的另一个页面,则用户名会被忘记。

我是不是忘记了什么?谢谢。

4

2 回答 2

6

我不清楚你的问题,但你有没有在 header.php 中将用户名声明为全局变量?如果是这样,在每个页面中,如果你包含 header.php,你首先写,

global $header;

然后使用变量 $header。

网页是无状态的,因此要保持状态,您可以使用 cookie 或会话或隐藏字段。

于 2012-11-19T05:26:19.043 回答
1

在另一个链接中,用户名将被忘记,因为您使用的是post如果您想访问任何页面用户上的用户名SESSION而不是

你应该先检查

if(isset($_POST['username']) && isset($_POST['pass']))  {
    $username = $_POST['username'];
   $password = $_POST['pass'];

}

$result = mysql_query("SELECT * FROM {$db_prefix}Users WHERE Username = '{$username}'");
                                                 ^---there should be space 
于 2012-11-19T04:48:24.253 回答