无法将$ id设置为cookie值
$ id回显正确。当我在cookie值中放入一个字符串时,它运行良好。我还通过将cookie值与$ cname一起放置进行了测试,它的效果非常理想。但是,只有当我尝试将$ id代替cookie值时,cookie才会设置。
if(isset($_POST['login'])){
$id = $_GET['id'];
$cname = "aff_id";
setcookie($cname, $id, time()+(60*60));
$email = $_POST['email'];
$pass = $_POST['pass'];
$query = mysqli_query($dbc, 'SELECT * FROM users WHERE email ="'. $email.'" and password ="'.$pass.'"');
if(mysqli_num_rows($query) == 1) {
$result = mysqli_fetch_assoc($query);
$_SESSION['uid'] = $result['id'];
header('Location: admin.php');
} else {echo 'failed to login';}
}
答案 0 :(得分:-2)
从 client 端调试此类问题,因为“那是它实际发生的地方”。
仅当浏览器从主机接收到Set-Cookie:
标头时,它实际上才由浏览器“设置”。然后,它将在发送给主机的后续HTTP请求中包含该cookie。换句话说,“必须至少有一个往返”。
因此,请打开您浏览器的调试功能,然后浏览登录顺序(“清除浏览器缓存”之后),然后查看实际上是否确实发生了这种HTTP往返。我确定您会发现它没有,和/或您会一路陷入JavaScript错误消息(您还不知道...)。 / p>