2014-11-27 5 views
1

로그인 시스템으로 웹 사이트를 개발 중입니다. 사용자가 성공적으로 로그인하면 쿠키가 설정됩니다. 코드는 비트 그 다음과 같습니다웹 사이트에서 출력 후 header() 및 setCookie()와 같은 함수 사용

if(!success) 
    echo "denied"; 
else 
    setCookie(x,x,x,x,x); 

이제 문제는이 같은 그 코드는 로컬 테스트 서버 (로컬 호스트)보다는 다른 곳에서는 작동하지 않을 것입니다. 자, 내 질문은이 문제를 해결할 수있는 표준화 된 방법이 있습니까? 아니면 개발자가 자신의 코드를 작성하여 이러한 문제가 처음에는 나타나지 않도록해야합니까?

+0

_'... 쿠키는 스크립트의 출력 전에 보내야합니다 (이것은 프로토콜 제한입니다) ... '[PHP : setcookie] (http://php.net/manual/en/function.setcookie.php) – ifm

+0

이 링크 확인 [로그인이있는 PHP 쿠키] (http://bgallz.org/157/php-co okies-with-login-setcookie/# sthash.WZ6KxeQz.dpbs) 도와 드리겠습니다. – Jaiff

+0

@ user45562 감사합니다. 사실, 그게 뭔지 알아. 나는 그 문제를 해결할 방법을 알고 싶다. –

답변

4

당신은 특정 코드의 출력 버퍼링을 활성화하기 위해 사용 ob_startob_end_flush를 사용할 수 있습니다

ob_start() 
<code> 
ob_end_flush() 

을하거나 php.ini 파일에서 모든 페이지에 출력 버퍼링을 활성화 할 수 있습니다

output_buffering = 'On' 
+0

두 번째 옵션에 대해 알지 못했지만 첫 번째 옵션이 작동하지 않으면 BOM 문제가 발생합니다. 그 대답에 대해 –

+0

고마워요. 그것은 단지 해결 방법입니까, 아니면 이것을하는 일반적인 방법입니까? –

+0

@MartinHoffmann 해결 방법은 출력하기 전에 헤더와 쿠키를 보내는 것입니다. 프로덕션 서버의'output_buffering'에 권장되는 값은'4096 '(기본값)입니다. 이것은 패킷 조각화를 줄이기위한 것입니다. – ifm