【问题标题】:Unable to SET Cookie in PHP using $id无法使用 $id 在 PHP 中设置 Cookie
【发布时间】:2019-01-14 17:54:27
【问题描述】:

无法将 $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';}
}

【问题讨论】:

  • 打印出$id 的值以确保它是您所期望的。

标签: php mysql forms cookies input


【解决方案1】:

客户端端调试这类问题,因为,“那是实际发生的地方。”

只有当浏览器从主机接收到Set-Cookie: 标头时,cookie 才会真正“设置”。然后它将在发送到主机的后续 HTTP 请求中包含该 cookie。换句话说,“必须至少有一次往返。”

因此,打开您的浏览器的调试功能,然后遍历登录序列(在“清除浏览器缓存”之后),看看是否真的发生了这样的 HTTP 往返.我相信您会发现它没有,并且/或者您会在此过程中偶然发现 JavaScript 错误消息(您还不知道...)

【讨论】:

    猜你喜欢
    • 2013-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-31
    • 1970-01-01
    相关资源
    最近更新 更多