首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP setcookie()问题

PHP setcookie()问题
EN

Stack Overflow用户
提问于 2015-04-04 23:36:41
回答 1查看 222关注 0票数 1

我已经有10年没做饼干了。我有一个简单的php登录脚本,它根据MySQL数据库中的值检查用户名和密码。如果成功,我会创建一个cookie...不管怎样,试着这样做。

我可以让setcookie()返回true,但是没有设置cookie。我意识到大部分时间这是b/c头已经被发送。编辑: headers_sent()返回false,所以这不是问题所在。

会话代码(不要与PHP会话()混淆):

代码语言:javascript
复制
function create_session( &$user_id, &$ip, &$proxy_ip )
{
     global $mysqli_auc;

    $hash   = md5( $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT'] );
    $query  = "INSERT INTO user_sessions(user_id,ip,proxy_ip,session_hash)
           VALUES('$user_id','$ip','$proxy_ip','$hash')";
    $result = $mysqli_auc->query( $query );

    $already_sent = "false";
    if ( headers_sent() ) {
        $already_sent = "true";
    }

    // print "This definitely sends headers";
    if ( !setcookie( "my_hash",$hash,time()+2000 ) ) {
        print "Unable to set cookie.<br>";
    } else {
        print "Set cookie. " . $_COOKIE['my_hash'] . "<br>"; // blank
        print "Should be " . $hash . "<br>"; // this holds an md5 hash string
        print "Headers sent " . $already_sent "<br>"; // false
    }
}
EN

回答 1

Stack Overflow用户

发布于 2015-04-05 00:07:40

$_COOKIE superglobal仅在请求的Cookie:标头中保存客户端发送的cookies。setcookie()不会更改它,它只设置将在响应的Set-Cookie:头中发送的内容。

顺便说一句,你使用的会话标识符是非常不安全的。它不仅不能保证是唯一的,而且很容易预测/欺骗。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29448211

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档