2011-07-04 3 views
1

PHP를 처음 사용하면서 실수로 리디렉션을 처리하는 방법을 궁금해합니다. 모든 것이 잘 스크립트를 다른 URL로 사용자를 리디렉션합니다 간다면, 지금PHP에서의 오류 리디렉션

$cart_object->Go2Server(); 
    $echo 'error'; 

:

나는 함수를 호출하는 스크립트가 있습니다. 그러나 무언가가 잘못되면 페이지가 새로 고침되고 오류 메시지가 표시됩니다. 즉, 함수가 반환됩니다.

내가 잘 모르겠지만 함수를 반환하는 경우 사용자를 다른 곳으로 리디렉션하는 방법입니다. 다음과 같은 경우 오류가 없을 때 redirect_to_error가 호출되는 경우가 있습니다.

$cart_object->Go2Server(); 
redirect_to_error(); 

EDIT - 스크립트를 리디렉션 한 후 죽으면 미안하지만 추가해야합니다. 어떻게 값을 반환 할 수 있습니까?

답변

1

Go2Server 함수에서 헤더를 올바르게 리디렉션하도록 헤더를 설정했는지 여부를 나타내는 부울 변수를 반환하는 것이 좋습니다. 즉, Go2Server가 작동하면 true를 반환하고 그렇지 않으면 false를 반환합니다.

그런 다음 부울이 거짓 인 경우 redirect_to_error 함수를 실행하십시오. 누군가를 리디렉션하려면 헤더 기능을 사용하십시오. 예 :

header('Location: www.example.com');

2

header 기능이 http://php.net/manual/en/function.header.php

예 돌볼 수 :

header("Location: http://www.google.com"); 
exit; 
당신은 함수에서 부울 값을 반환과 함께 값을 확인해야합니다

if 특정 페이지로 리디렉션하기위한 문.

0

$cart_object->Go2Server(); 기능에서 리디렉션이 수행됩니까?

리디렉션 이후에도 exit() 또는 die()이 있습니까?

리디렉션을 수행 할 때 스크립트가 계속 진행되므로 리디렉션 후에 항상 스크립트 실행을 종료해야합니다.

+0

알겠습니다. 따라서 긍정적 인 리디렉션 이후에 die를 사용하십시오. 그렇지 않으면 스크립트가 오류 페이지로 돌아가 리디렉션됩니까? – ric

+1

리디렉션 할 때 스크립트의 추가 실행을 막기 위해'die()'문을 추가해야합니다. – PeeHaa

0

성공 및 실패한 작업에 대해 HTTP 헤더를 표시하면 도움이됩니다.

HTTP 리디렉션 (예 : 302 응답 코드) after the page output has started (헤더를 변경할 수없는 지점)을 발행하는 것처럼 들릴 수 있습니다. 오류보고가 제대로 설정 되었다면 로그에 '헤더가 전송되었습니다'라는 메시지가 많이 표시됩니다.