在所有页面上使用登录用户的信息

时间:2011-11-03 10:13:34

标签: php login

我使用以下密码http://www.zubrag.com/scripts/password-protect.php

它工作正常但是当我尝试回显登录用户的信息时,我只能在登录时执行一次。之后,如果我刷新页面,页面仍然可以访问,但登录用户的名称不会被回显 有人可以帮我弄这个吗  我在要保护的页面的第一行有以下代码

<?php require("/home/abcd/abcd/password_protect.php"); ?>

我正在使用

回显这个名字
echo "Welcome $login";

3 个答案:

答案 0 :(得分:1)

脚本基本上做的是它有一个预先初始化的登录列表和存储在数组$LOGIN_INFORMATION中的密码。

$LOGIN_INFORMATION = array(
  'zubrag' => 'root',
  'test' => 'testpass',
  'admin' => 'passwd'
);

现在它从用户获取登录/密码组合并与存储的值匹配。 根据您的问题,您希望显示经过身份验证的用户的名称。

为此您可以使用会话

在页面开头(第一行)写

`session_start();`

然后     $_SESSION['username'] = $username //经过身份验证的用户名

现在,在每个要打印名称的页面的开头,写下

session_start();

然后

echo $_SESSION['username'];

完成后你想注销(或取消会话)写

session_unregister('username');

答案 1 :(得分:0)

该脚本将用户名和密码的哈希值存储到名为verify的cookie:

setcookie("verify", md5($login.'%'.$pass), $timeout, '/');

因此,您无法直接提取$login,但是您可以从$LOGIN_INFORMATION遍历可能性,直至找到它:

$login = null;
$found = false;
foreach($LOGIN_INFORMATION as $key=>$val) {
  $lp = (USE_USERNAME ? $key : '') .'%'.$val;
  if ($_COOKIE['verify'] == md5($lp)) {
    $found = true;
    $login = $key;
  }
}

答案 2 :(得分:0)

在每页开头:

session_start();

用户成功验证时:

$_SESSION['keyname'] = 'value';

您需要访问它的地方:

echo $_SESSION['keyname']