每次打开时,我都无法登录某些reazon 测试文件密码存在,我已经进行了回音测试并对其进行了标记,但代码总是运行 else 而不是如果。
kernel-login-logout.php是这样的:
<?php
$formusername = $_GET["username"];
$formpasswd = $_GET["passwd"];
$passwdget = file_get_contents( "users/$formusername/passwd/thepasswd.txt" );
if ($formpasswd == $passwdget)
{
setcookie("libusername", $formusername,time() + (86400 * 7));
setcookie("libpasswd", $formpasswd,time() + (86400 * 7));
}
else
{
echo ("Password not found<br>");
}
?>
<?php echo ($passwdget); ?><br>
<?php echo ($formpasswd); ?>
网址:
内核与登录用户名logout.php = userdokimi&安培; passwd的= testpasswd &安培;登录名=登录
输出:
Password not found
testpasswd
testpasswd
答案 0 :(得分:2)
你有这样的代码:
if A
if B
else C
else
适用于if B
,而不是if A
。
我认为你的意思是:
if A
elseif B
else C
答案 1 :(得分:1)
不要假设密钥“logout”,“passwd”和“username”将始终设置。 您还缺少其他。
if (isset($_GET['passwd']) && $_GET["passwd"] == $passwdget)
{
setcookie("libusername", $username,time() + (86400 * 7));
setcookie("libpasswd", $passwd,time() + (86400 * 7));
}
else if (isset($_GET['logout']) && $_GET["logout"] == "Logout")
{
setcookie("libusername", null,time() + (86400 * 7));
setcookie("libpasswd", null,time() + (86400 * 7));
}
else
{
echo ("<br>Password not found");
}
答案 2 :(得分:1)
试试这个:
<?php echo "'$passwdget'",strlen($passwdget); ?><br>
<?php echo "'$formpasswd'",strlen($formpasswd); ?>
确认这些变量中的一个或两个没有粘贴在它们上的某些不可见字符,使它们不相等。
您有一个以纯文本格式存储的密码(和在查询字符串中可见) - 这是非常不安全的,但我们暂时会让它通过。