2011-07-04 3 views
1

私はPHPを初めて使い、エラーが発生した場合にリダイレクトを処理する方法が不思議です。PHPでのエラーリダイレクト

私は、関数を呼び出すスクリプトがあります:すべてがうまくいけば、スクリプトがユーザーを別のURLにリダイレクトします、今

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

を。しかし、何かが間違っている場合、ページがリフレッシュされ、エラーメッセージが表示されます。つまり、関数が戻ります。

私がよく分からないことは、関数が返ってきたら、ユーザーをどこかにリダイレクトする方法です。次のような場合は、エラーがなければredirect_to_errorが呼び出されることがあります。

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

EDIT - リダイレクト後にスクリプトが終了した場合は、申し訳ありませんが、値を返すことはできますか?

答えて

1

Go2Server関数では、ユーザーをリダイレクトするためにヘッダーが正しく設定されているかどうかを示すboolean変数を返すことを検討してください。つまり、Go2Serverが機能している場合はtrueを返し、そうでない場合はfalseを返します。

次に、ブール値が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; 
あなたは関数からbool値を返すとして値をチェックする必要があります

if文を特定のページにリダイレクトする

0

リダイレクトは$cart_object->Go2Server();機能で実行されますか。

リダイレクト後にexit()またはdie()が存在する場合は、

リダイレクトを実行するときにスクリプトが続行されるため、リダイレクト後にスクリプトの実行を常に終了する必要があります。

+0

わかりました。したがって、正のリダイレクトの後にdieを使用してください。そうしないと、スクリプトがエラーページに戻ります。 – ric

+1

リダイレクト時に、スクリプトのさらなる実行を防ぐために 'die()'ステートメントを追加する必要があります。 – PeeHaa

0

成功した操作と失敗した操作のHTTPヘッダーを表示しておけば役に立ちました。

HTTPリダイレクト(302応答コード)after the page output has started(その時点でヘッダーを変更することはできません)を発行しようとしているようです。エラー報告が正しく設定されている場合は、ログに「ヘッダが送信されました」というメッセージがたくさん表示されます。