2012-03-09 3 views
0

쿠키 이름을 설정하는 데 문제가 있습니다. 여기에 방법을 게시하기로 결정했습니다. 내 메인 페이지에서쿠키 이름을 설정할 수 없습니다.

나는 다음과 같은 방법 전화 :

$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; 
    } 
} 

다른 페이지에서 쿠키를 확인할 때 항상 false를 반환합니다.

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

, 난 쿠키의 이름을 확인하고는 "PHPSESSID"

문제점은 무엇입니까처럼 잘 살고 있어요?

+0

아마도'setcookie()'를 호출 할 때 출력을 시작했을 것입니다.이 경우 쿠키는 설정되지 않습니다. 페이지 상단의'setcookie()'를 실행 해보십시오. – Cyclonecode

+0

설정 및 확인 요청이 서로 다른지 확인하십시오. 코드에서 쿠키를 설정하면 다음 줄에 쿠키가 설정되어 있는지 직접 확인할 수는 없지만 먼저 페이지를 새로 고침해야합니다. 또한 쿠키를 설정하는 것이 가장 먼저하는 일입니다 (공백이나 무언가와 같이 전에는 출력이 전혀 없음). – Quasdunk

+0

매번 $ fila_id 값을 얻습니까? – Milap

답변

1

출력에 아무 것도 없는데 setcookie를 호출하면 쿠키가 설정되지 않으며 오류보고를 해제 한 경우이 문제에 대한 경고 메시지가 표시되지 않습니다.

기타 : setcookie() 호출이 성공적이라도 새 요청이 한 번 발생하면 $ _COOKIE 배열에 쿠키가 저장되지 않습니다.

아니요 쿠키를 사용하기 위해 세션을 시작할 필요가 없습니다.

관련 문제