login.php上的PHP代码
If (isset($_post['submit]))
{
username = trim($post['username]);
$sql = "select password from user where username = 'username' ";
$result = mysqli_query($connect,$sql) or die();
$row = mysqli_fetch_assoc($result);
If ($row['password'] == md5($password))
{
setcookie('username', $row['username'], '/');
Header('location:index.html');
};
index.html上的Jquery代码
$(document).ready(function() {
Var username = $.cookie('username');
If(username == undefined) {
Window.location.href="login.html";
} else {
Alert('welcome'+user+'to my site');
});
PHP的第一行应该是:
if (isset($_POST['submit']))
你忘了'提交后'。第二行:
$username = trim($_POST['username']);
你在用户名和'之前忘了$。第三行:
$sql = "SELECT password FROM user WHERE username = '$username'";
您的SQL查询会提供错误的信息。
我的猜测是JQuery应该可以工作,但是PHP代码没有设置cookie。此外,使用password_hash()来保护用户密码。
为什么要在客户端进行检查?
但是如果你必须:检查cookie是否实际设置和发送。开发人员工具为您提供详细信息。
如果是这样,请检查cookie是否是使用HttpOnly Flag创建的。如果是,出于安全原因,您将无法从客户端访问cookie。
您需要设置cookie的时间,然后才能正常工作。这是工作示例:
<?php
setcookie('username', 'Test', time() + (86400 * 30), "/");
?>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0-alpha1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>
<script>
$(function(){
$('document').ready(function(){
alert($.cookie("username"));
});
});
</script>