2010-12-15 19 views
1

aをページにリダイレクトする必要があり、xがすでに存在しているとします。msgをPHPで使用してメッセージを表示

私はいくつかは、このように考えてやっている:

header('location:newcategory.php'?msg=category exists); 

私はむしろJavaScriptでよりも、PHPからこれを行うことを好むだろう。 newcategory.phpページ

header("Location: newcategory.php?msg=" . urlencode('category exists')); 

:リダイレクトを行うページで

+0

私はそれがヘッダ( 'Location:newcategory.php?msg ='。urlencode( 'category exists'))だと思います。 – Catalin

+1

この質問は本当に不明です、あなたは編集してくださいと明確にしてください – mrwooster

答えて

3

newcategory.phpで

echo $_GET['msg']; 
+0

ガー!あなたはいつも私の前にちょうどそこに着く。私はここ数日、あなたを数回見ました。 – AgentConundrum

+0

私はここ数日、あまりにも多くの自由時間を過ごしました。 –

+0

これはデータの重複をチェックするために使用されるので、データがすでに存在する場合はそのページにアクセスしてエラーを表示しますが、存在しない場合は他のページにリダイレクトする必要がありますそう、あらゆる解決策。 –

0
header("Location: :newcategory.php?msg=category exists&var=".$x); 

この

if(msg == "category exists") 
{ 
    echo $var." already exists"; 
} 
+0

それは私の最初の考えでもありましたが、SEOに関して言えば、彼らはリダイレクトされる方が良いです。 – AgentConundrum

+0

私はこれを行った、それは動作しているが、私はアドレスバーのヘッダー( 'location:newcategory.php?msg = category exists')にないページにそのmsgを入れたい。 –

0

を追加しますもしあなたがパスすればそれはうまくいかないでしょうおそらく何らかのXSSに脆弱である可能性があるため、GETパラメータでメッセージ全体を処理します。最良の方法は、メッセージのコレクションとその識別子を格納し、その場でメッセージを生成することです。パラメータが何が起こったかをより明確に定義する

$messages = array(
'exists' => 'category %s exists', 
'failed' => 'query %s failed' 
); 

そしてURLにのみメッセージ識別子を渡し、オプションされています:たとえば、あなたは、配列を持つことができ

header("Location: newcategory.php?msg=exists&id=2"); 

ターゲット・ページでは、そのようなことを書くことができ:

$msg = ''; 
switch($_GET['msg']) 
    { 
    case 'exists': 
     { 
     $msg = sprintf($messages[$_GET['msg']], intval($_GET['id'])); 
     break; 
     } 
    } 
echo $msg; 

また、いくつかのクラスにラップすることができ、私はあなたのアイデアを示すだろう、それが役に立てば幸い。

関連する問題