2016-12-21 36 views
-1

私は、次のURLを持っている:私はEnterキーを押し前http://some_URL/file/?var1=../dir/page.php&var2=value2URLの変数は、最初のページが別のページにリダイレクトされたときに適用されますか?

はのは、VAR1は、別のページ(ここではpage.php)にリダイレクトするために使用されていることを言おうが、VAR2の値は、(現在のページに適用されますん)、またはpage.phpに適用されますか?

+0

このURL構造は意味をなさないものです。 – Twinfriends

+0

多分これは助けるかもしれませんか? https://perishablepress.com/how-to-write-valid-url-query-string-parameters/ – JustBaron

+0

@Twinfriends - これは完全に有効なURLです。 – Quentin

答えて

1

私はあなたの質問を正しく理解していれば、クエリ文字列のパラメータが自動的に最初のスクリプトから最初のスクリプトがリダイレクトするスクリプトに渡されるかどうかを尋ねてきます。

答えは、自動的にではなく、いいえです。

クエリ文字列は最初のスクリプトに渡され、そのスクリプトは両方のパラメータを$ _GET配列に受け取ります。

まずスクリプト今、あなたはvar1パラメータで特定されたスクリプトにリダイレクトし、この

header("Location: $var1?var2=$var2"); 
のように、リダイレクト呼び出しに追加する必要があり、そのスクリプトに上 var2を渡したい場合は

<?php 
$var1 = $_GET['var1']; 
$var2 = $_GET['var2']; 

var1../dir/page.phpvar2であれば、これは

に拡大していきます value2です0
header("Location: ../dir/page.php?var2=value2"); 

また、あなたはパラメータを作ることができることで、フォームの最初のスクリプトは、それ自体であれば目に見えるページには、その危険な隠し入力もちろん

<?php 
$var1 = $_GET['var1']; 
$var2 = $_GET['var2']; 
?> 

<form action="<?php echo $var1;?> ........> 
    <input type="hidden" name="var2" value="<?php echo $var2;?>"> 

を使用して、次のスクリプトに渡します検証されていないクエリ文字列パラメータを使用しているため、何かで使用する前に$_GET配列内のものを正当性検査する必要があります。

0

&の文字は、key = valueの組を区切ります。最初の&の後のすべては、var=1の値の一部ではありません。

percent encodingを使用すると、URLに特殊文字をデータとして含めることができます。

+0

私はあなたの答えを理解していません。私は井戸コード付きウェブサイト(これは私のウェブサイトではない)にこのURLがあるかどうかを尋ねるだけです、var2は現在のページ(私がENTERを押す前)の変数かpage.phpの変数ですか? – adrTuIPKJ44

0

したがって、var2が現在のページで利用可能になります。 page.phpで利用できるようにするには、var2変数を取得し、リダイレクトする前に新しいURLに追加してください。

関連する問題