2009-09-11 4 views
0

사용자가 회원 인증 데이터에 액세스하기 위해 http 인증을 사용하는 이전 웹 사이트의 스켈레톤을 처리하고 있습니다. 액세스 콘텐츠 버튼은 다음과 index.html 페이지에 대한 링크는 다음과 같습니다PHP - HTTP 인증 후 세션을 시작하는 방법

<meta http-equiv="REFRESH" content="0; url=http://www.example.com/something.php"> 
내가) (헤더로 리디렉션 다음 세션을 시작할 것의 index.php 페이지에이를 변경하려면

; 더 우아한 있나요 난 그냥

<?php 
session_start(); 
$_SESSION['loggedIn']=true; 
?> 

<meta http-equiv="REFRESH" content="0; url=http://www.example.com/something.php"> 

을 사용할 수 추측이 경우

하지만입니다

답변

1
<?php 
    session_start(); 
    $_SESSION['loggedIn']=true; 
    header("Location: http://www.example.com/something.php"); 
?> 

;?

콘텐츠에 대한 PHP는 상당 = "0이 있습니까? 세션이 헤더 리다이렉션으로 작동하는지 확신 할 수 없습니다 (페이지가 실제로 완전히로드되지 않으므로 세션 쿠키가 저장되는지 확실하지 않으므로 시도 할 수 있습니다).

이 쿠키를 저장하지 않는 경우

, 당신은 다음과 같이 명시 적으로 GET var에 같은 URL에 세션 ID를 포함하여 그 주위를받을 수 있습니다 :

<?php 
    session_start(); 
    $_SESSION['loggedIn']=true; 
    header("Location: http://www.example.com/something.php?".htmlspecialchars(SID)); 
?> 
+1

네는,이 방식으로 작동합니다. 그리고 전체 URL을 지정할 필요가 없습니다. 세션은 도메인마다 다르고 사용자가이 페이지에 어떻게 도달했는지 평가하지 않으므로 실제로는하지 않는 것이 좋습니다 (www.exemple.com 및 exemple.com은 다른 것으로 간주 될 수 있음). 도메인) – Havenard

관련 문제