【问题标题】:PHP set cookie not being setPHP设置cookie未设置
【发布时间】:2015-07-16 17:32:57
【问题描述】:

这是我的代码,我知道 SQL 正在返回结果,因为我已经检查过了。但是,设置的 cookie 似乎不起作用。

 public function login($username, $password){


    $username = $_POST['username'];
    $password = md5($_POST['password'].THEME_SALT);

    global $wpdb; 
    $result = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}users WHERE username ='".$username."' AND password ='" .$password."' LIMIT 1");

    if (!empty($result)){

        setcookie("user", $username, time() + 3600);
    }
        return false;
}

有什么想法吗?

【问题讨论】:

  • 你把这个函数挂在哪里了?
  • 你如何检查cookie?
  • 你可以像这样检查 echo $_COOKIE["user"];

标签: php mysql wordpress cookies


【解决方案1】:

尝试添加路径

`setcookie("user", $username, time() + 3600, '/');`

【讨论】:

  • 谢谢,这成功了!返回的 $result 包含名字和姓氏等数据。有没有办法可以将这些数据放入 cookie 中设置的数组中。然后我可以抓取一个元素并说 echo welcome $firstname?
  • @bri,我想你会在这里得到答案stackoverflow.com/questions/9032007/arrays-in-cookies-php
  • 如果没有,请提出新问题以获得更好的答案或帮助。
【解决方案2】:

因为它在一个函数中,我猜你会在你的脚本输出一些之后尝试使用它。您应该在输出之前像使用任何标题一样使用它。如果您打开报告所有错误,您将收到一个错误。

setcookie-manual @ php.net

【讨论】:

    【解决方案3】:

    尝试使用:

    public function login($username, $password){
    
          $username = $_POST['username'];
    
           if ( username_exists( $username ) ){
               echo "Username In Use!";
                setcookie("user", $username, time() + 3600);
          } else{
                   echo "Username Not In Use!";
          }
    }
    

    【讨论】:

      猜你喜欢
      • 2012-02-11
      • 1970-01-01
      • 2012-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多