2009-06-23 15 views
2

POSTメソッドを使用した後に同じページ上にユーザーが上陸している場合、変数$ findを$ _POST ['find']と同じにしたいユーザーがGETメソッドを使用した後にページに上がっている場合、$ _GET ['find']と同じ$ findを作成します。PHP - POSTとGETメソッドが同じページにある

どうすればよいですか?事前に

おかげで、

ジョン

$find = $_GET['find']; 

$find = $_POST['find']; 
+0

みんなありがとうを...それらはすべて私には正しい/良いようです。しかし、彼らは私が解決しようとしているより大きな問題、すなわちページネーションの実装を解決しませんでした。私はちょうど今、バックバーナーに改ページを入れるだろうと思う。 –

+0

PHPのページネーションの基本に関する質問にアクセスすると便利だろう。それはよく文書化されたプロセスなので、多くの回答を得ることができると確信しています。 –

答えて

11

あなたは$_REQUESTグローバル変数を使用する必要があります。 $ _GETと$ _POSTの両方のデータがすべて含まれています。

また、リクエスト方法を確認することもできます。

$find = ($_SERVER['REQUEST_METHOD'] == 'GET') ? $_GET['find'] : $_POST['find']; 
0

使用$ _REQUEST [ '見つける'] $ _GET、$ _POSTおよび$ _COOKIEから結合された情報を取得します。

$_REQUESTは、デフォルトでは$ _GET、$ _POSTおよび$ _COOKIEの内容が含まれていることにより、

0
if(isset($_GET['find'])){ 
    $find = $_GET['find']; 
}elseif(isset($_POST['find'])){ 
    $find = $_POST['find']; 
}else{ 
    $find = null; 
} 
// do stuff with $find; 
4

$_REQUEST variable$_GETの内容が含まれています(あなたがphp.ini "request_order" directiveとデフォルトの内容を変更することができる)という連想配列を返します。 $_POSTおよび$_COOKIEここで、variables_order optionは、変数の読み込み順序を定義し、既存の内容を上書きします。

$_REQUEST['find']のいずれかを使用できます(findのCookie値がPOSTとGETの両方を上書きすることを考慮してください)。それとも、自分でそれを実装:$_GET['find']から値をオーバーライドします$_POST['find']がない限り、それが存在する場合、そのコード$find

if (isset($_GET['find'])) { 
    $find = $_GET['find']; 
} 
if (isset($_POST['find'])) { 
    $find = $_POST['find']; 
} 

$_GET['find']なります。

2

は文字通り何を求めていることである。また

if ($_SERVER['REQUEST_METHOD']=='POST') { 
    $find = $_POST['find']; 
} else { 
    $find = $_GET['find']; 
} 

、あなたが使用することができます。

$find = $_REQUEST['find']; 

$ _REQUESTは$ _GET、$ _POSTおよび$ _COOKIEの組み合わせです。

0

どの方法が使用されても気にしない場合は、$_REQUESTスーパーグローバルを使用してください。

それが使用された方法は問題場合:答えを

$find = isset($_GET['find']) ? $_GET['find'] : false; 
if ($find === false) { 
    $find = isset($_POST['find']) ? $_POST['find'] : ''; 
    // do a POST-specific thing 
} 
else { 
    // do a GET-specific thing 
} 
関連する問題