【发布时间】:2012-11-07 22:22:07
【问题描述】:
我看到很多人都问过类似的问题,所以如果我重复但我在其他帖子中找不到答案,请原谅。
这只是一个测试页面,在 localhost 上运行。我有一个 HTML 登录页面,将表单数据发送到 PHP 脚本,该脚本正在检查 MySQL 数据库中的详细信息。尝试设置带有结果的 cookie,但无法正常工作。
$user = $_POST['USER'];
$pass = $_POST['PASS'];
$res = $con->query("SELECT * FROM users WHERE username = '".$user."' AND password = '".$pass."'");
$row_no = $res->num_rows;
if ($row_no > 0) {
$row = $res->fetch_assoc();
$username = $row['username'];
$password = $row['password'];
setcookie('cookie1', $user, time() + 3600);
if (isset($_COOKIE['cookie1'])) {
echo "cookie set";
}
else {
echo 'cookie not set';
}
echo "Hello " . $username . ', your password is ' . $password;
}
else {
echo "Sorry, either your username or password is wrong";
}
我想我知道 cookie 在设置它的页面上不可用,但即使我重新加载页面,$_COOKIE 变量也是空的。
脚本中isset 部分的结果始终是“cookie not set”。我还尝试将 cookie 上的域设置为“/”。
感谢您的帮助。
(ps MySQL 部分工作正常)
【问题讨论】:
-
强制:您的代码容易受到SQL injection的攻击
-
如果用户将密码发布为:“”;'从用户中删除;' ???
-
您的 cookie 寿命只有 1 小时。检查服务器是否比客户端浏览器晚 1 小时。有关详细信息,请参阅下面的帖子。
-
感谢注射提醒。这是本地主机上的测试页面。如果我让它活着,我当然会消毒。