2011-03-11 2 views
0

로그인 스크립트가 있고 지나치게 실패한 사용자를 기록합니다. 디버깅 목적으로 첫 번째 시도가 실패한 후 로깅을 수행합니다.include ("file") 이후 쿠키 설정

나는 그것을 방문하여 코드를 테스트했다. 나는 파일 fail_cookie.php를 명명했다. 브라우저에서 쿠키를 방문하면 쿠키가 올바르게 설정됩니다. 내가 로그인 폼이라고 login.ws에이고 나는이 코드를 가지고 그러나 경우에 : 나는 fail_cookie.php를 설정 곳 fail.ws 내부

if (!isset($_COOKIE["login"])) { 
     logUser($_POST['username'], $_POST['password'], time(), $_SERVER['REMOTE_ADDR']); 
     include "fail.ws"; 
    } 

이다. 이 내용을 <head> .. .. <?php include("fail_cookie.php"); ?> </head>에 포함합니다.

fail.ws으로 login.ws으로 리디렉션 될 때 쿠키가 설정되지 않습니다.

이 코드는 마지막 호스트에서 작동하지만 현재 호스트에서 작동하지 않습니다. 내 호스트가 문제인가 아니면 나의 것입니까? 그것이 내 것이라면 누군가 나에게 조언을 할 수 있습니까?

감사합니다.

+1

이유 ** fail.ws을 :

당신과 함께 .htccess 파일이 설정할 수 있습니다? 그리고 [setcookie] (http://php.net/manual/de/function.setcookie.php)도 작동하지 않습니까? 쿠키를 설정 한 행을 표시 할 수 있습니까? – Stony

+0

가능한 복제본 [머리글 ("위치 ...") 후 쿠키 설정] (0120-555-003) – David

+0

중복 된 방법을 궁금합니다. 다른 하나는 지울거야. – Kyle

답변

2

output_bufferingphp.ini으로 설정하십시오. PHP 파일이 출력을 사용자에게 보낸 후에 쿠키를 설정할 수있는 방식입니다. - 실제로 출력은 버퍼링되고 PHP 스크립트가 끝난 후에 전송됩니다. ** ... 오직 내 마음에 대한

php_flag output_buffering on 
+0

정말요? 와우 나는 내 문제라고 생각 했어. 하하. 내가 뭘 잘못했는지 궁금해. 고마워. 내가 그 (것)들을 가능하게 할 것이다. – Kyle

+0

그럼 당신 문제입니다. 헤더를 보내기 전에 물건을 출력하고 있습니다 (쿠키는 헤더 임). 출력 버퍼링은 서버에 보내기 전에 모든 것을 PHP의 메모리에 씁니다. 따라서 메모리 사용이 증가합니다. – ThiefMaster

+0

@ ThiefMaster, 어떻게 해결할 수 있습니까? 아니면 올바른 방법으로 할 수 있습니까? 의견을 보내 주셔서 감사합니다. – Kyle