이상한 문제가있어서 페이지에 fsockopen()
이라는 연결을 열었습니다. 해당 페이지에 header(location:xx)
이 있는데 (나는 스크립트를 새로 고치고 있습니다), 리디렉션이 작동하지 않습니다. .fsockopen() 및 헤더 (위치 : xxx)?
분명히 모든 것이 작동 ...
일부 코드 :
연결 페이지 :
$socketcon = fsockopen($_SERVER['HTTP_HOST'],80,$errorno,$errorstr,10);
if($socketcon) {
$socketdata = "GET http://www.example.com/test2.php HTTP/1.0\r\nHost: ".$_SERVER['HTTP_HOST']."\r\nConnection: Close\r\n\r\n";
fwrite($socketcon,$socketdata);
fclose($socketcon);
}
CONNECTED PAGE (test2.php) :
<?
//other code (working fine)
if($_GET["AAA"]){
//REDIRECT WORKED !
} else {
header("location:test2.php?AAA=1"); //same page but with a get param
}
?>
은 REDIRECT이 ... 부분은 실행되지는 결코 일 했어요
어떤 제안이?
편집 : 연결이
현재 솔루션이 작동하지 않습니다. 호출자 스크립트가 끝나자 마자 연결이 끊깁니다. 나는 당신이 AJAX를 원한다고 생각합니다. 그렇지 않으면, 방법이 없습니다. JavaScript를 사용하지 않는 한 연결이 끊어진 클라이언트를 마술처럼 리디렉션 할 수는 없습니다. – netcoder
호출자 스크립트를 연 상태에서 브라우저를 닫더라도 비동기 부분이 이미 작동 중이므로 소켓과 함께 열린 스크립트가 실행 중입니다 ... 문제는 소켓 된 스크립트를 리디렉션 할 수 없다는 것입니다. – NicolaPasqui
호출자가 스크립트가 끝나면 (즉, 마지막'?>'끝 태그에서), 소켓은 닫힌다. 당신은 그것이 효과가 있다고 생각할지 모르지만 그렇지 않습니다. 자바 스크립트를 사용하지 않으면 리디렉션 문제가 발생합니다. 당신이 질문을 적절히 공식화하지 않는 한, 당신이 원하는 것은'포함 '입니다. – netcoder