我使用以下密码http://www.zubrag.com/scripts/password-protect.php
它工作正常但是当我尝试回显登录用户的信息时,我只能在登录时执行一次。之后,如果我刷新页面,页面仍然可以访问,但登录用户的名称不会被回显 有人可以帮我弄这个吗 我在要保护的页面的第一行有以下代码
<?php require("/home/abcd/abcd/password_protect.php"); ?>
我正在使用
回显这个名字echo "Welcome $login";
答案 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']