无法设置cookie名称

时间:2012-03-09 12:56:37

标签: php session-cookies

我在设置cookie名称时遇到问题,我决定在这里发布方法。

在我的主页面中,我调用以下方法:

 $CHAT->login($_POST['cliente']);
 $CHAT->entraFila();

方法是:

public function login($cli, $senha){
     $this->cliente = $cli;
 }

 public function entraFila(){
    $fila_id = $this->DB->criaFila($this->cliente);
    if($fila_id){
         // -------------------------------- SETING THE COOKIE BELOW    <<<<< ---       
         setcookie("CHAT_FILA_ID", $fila_id, time() + 86400); 
        return true;
    } else {
        return false;
    }
 }

“entraFila”方法在另一个类中调用“criaFila”方法:

 public function criaFila($cli){
    $insert = sprintf("INSERT INTO filas (cliente, data) VALUES (%s, NOW())", 
            GETSQLValueString($cli, "text")
    );
    $query = mysql_query($insert) or die(mysql_error());
    if($query){
        return mysql_insert_id($query);
    } else {
        return $query;
    }
 }

当我在另一个页面中检查cookie时,它总是返回false:

session_start();
if(!isset($_COOKIE['CHAT_FILA_ID'])){
    // CONDITION ALWAYS ENTER HERE
    header("location: login.php");
} 

在chrome中,我检查了cookie的名称,并将其设置为“PHPSESSID”

怎么了?

1 个答案:

答案 0 :(得分:1)

如果您在输出中有任何内容后调用setcookie,您的cookie将无法设置,如果您已关闭错误报告,则不会收到有关此问题的任何警告。

其他事情: 即使你的setcookie()调用成功,你也不会在一个新的请求之后在你的$ _COOKIE数组中拥有该cookie。

不,您不必开始会话以使用cookie。