これは危険な質問です...
ページをリクエストする場合、ページの出力は渡されたパラメータによって異なります。Soo:
http://localhost/test/php?key=value
と
http://localhost/test/php?key=other_value
異なる出力を生成します。
これらのパラメータはたくさんあり、設定されている場合と設定されていない場合があります。
私はこのコードブロックを持っており、それを何度もコピーし続けています:
if ( !isset( $PARAMS["type"] ) ){
$message = urlencode("No Type Parameter Defined In File {$_SERVER["PHP_SELF"]}");
header( "Location: /admin/pages/{$PARAMS["page"]}?m=$message" );
exit;
}
これで、このコードブロックが約6回繰り返される場合があります。
だから私は関数を書くことができると思いました:
function redirect_on_fail( $var ){
if ( !isset( $var ) ){
$message = urlencode("No Type Parameter Defined In File {$_SERVER["PHP_SELF"]}");
header( "Location: /admin/pages/index?m=$message" );
exit;
}
}
明らかにこれは機能しません
呼び出す必要があるためredirect_on_fail( $PARAMS["type"] );
、設定されていない場合、関数に渡されません...
変数がページスコープに存在するかどうかをテストする必要があるため...
だから私はこれを行うことができたと思います:
function redirect_on_fail( $message, $redirect_to ){
header( "Location: /admin/pages/$redirect_to?m=".urlencode($message) );
exit;
}
しかし、私がやっているページでは:
if ( !isset( $PARAMS["type"] ) ){
redirect_on_fail( "No Type Parameter", $redirect_to );
}
そしてそれはポイントを打ち負かします...
それで、これを回避する方法はありますか?