자동 로그인 스크립트를 만들려고합니다. 컴퓨터는 XP에서 IE8을 사용하고 있습니다. 이 코드는 사용자의 Windows 사용자 이름을 성공적으로 검색하여 세션에 저장하지만 리디렉션이 완료되면 세션은 정상적으로 지워집니다. 의 index.php에서
: 테스트 기간 동안, 나는 그것을 삭제 한과에 넣어 때문에
가session_start()
print_r($_SESSION); // Fail. array()
중요한 문제는 헤더 부분이 될 것 같다 : index2.php에서
session_start();
if (!isset($_SERVER["AUTH_USER"]) || $_SERVER["AUTH_USER"] == '') {
header('WWW-Authenticate: NTLM', false);
exit;
}
# Extract username
$user = explode('\\',$_SERVER["AUTH_USER"]);
$_SESSION['username'] = strtolower($user[1]);
print_r($_SESSION); // Success!
header("Location: index2.php");
더미 사용자 이름 및 다음 페이지로 성공적으로 전달합니다. NTLM 인증 (즉, $ _SERVER 배열에 AUTH_USER 세부 정보 넣기)이 필요하기 때문에 머리글이 필요합니다.
EDIT IIS에서 익명 인증을 해제 한 다음 모든 머리글 부분을 제거했습니다. 일했다. 그러나 이로 인해 다른 문제가 발생합니다.
각 스크립트를'session_start()'하시겠습니까? –
예, 둘 다. 그렇지 않으면 print_r ($ _ SESSION)은 항상 비어있게됩니다. – Paul
클라이언트가 쿠키를 허용하고 첫 페이지에 PHP 세션 쿠키가 설정되어 있는지 확인하십시오. 또는 GET을 통해 세션 ID를 전달하십시오. – thwd