PHP で次のページに変数を渡す方法
PHP 変数は、値と同等の記号または名前です。値、数値、文字、メモリアドレスなどの値を格納するために使用されているため、プログラムのどの部分でも使用できます。シンプルな変数はプログラムのどの部分でも使用できますが、HTML フォーム、session、または cookie を介して GET および POST を使用して渡されない限り、変数の外部からはアクセスできません。
HTML フォームによる GET および POST の使用
HTML フォームは、PHP の最も強力な機能の 1つです。すべてのフォーム要素は、フォームの action 宛先で自動的に使用可能になります。
POST リクエスト
<form action="nextPage.php" method="POST">
<input type="text" name="email">
<input type="text" name="username">
<input type="submit" name="submit">
</form>
nextPage.php にデータを取得しています
$username = isset($_POST['username']) ? $_POST['username'] : "";
$email = isset($_POST['email']) ? $_POST['email'] : "";
echo "Username: ".$username;
echo "Email: ".$email;
スクリプトのサンプル出力は次のようになります:
Username: johndoe
Email: johndoe@gmail.com
上記の例は、HTML フォームを通じて POST を使用して変数を渡す方法を示しています。フォーム要素には、action 属性と method 属性が必要です。action には次のページが含まれます。この場合は nextPage.php です。メソッドは POST または GET です。次に、$_POST または $_GET を使用して、nextPage.php の要素にアクセスできます。
GET リクエスト
<?php
$phpVariable = "Dog";
?>
<a href="nextPage.php?data=<?=$phpVariable?>">Bring me to nextPage</a>
この例では、GET 変数を作成し、nextPage.php でアクセスできます。
例:
echo $phpVariable = $_GET['phpVariable'];
//output: Dog
GET は $_GET を使用してアクセスできます
別の方法は、次のページに送信する HTML フォームに非表示要素を追加することです。
例:
<form action="nextPage.php" method="POST">
<input type="hidden" name="phpVariable" value="Dog">
<input type="submit" name="submit">
</form>
nextPage.php
//Using POST
$phpVariable = $_POST['phpVariable'];
//Using GET
$phpVariable = $_GET['phpVariable'];
//Using GET, POST or COOKIE;
$phpVariable = $_REQUEST['phpVariable'];
メソッドを POST から GET に変更して、GET リクエストを使用できます。POST と GET はボットに対して安全ではありませんが、GET はフロントエンドから利用できるため、ハッキングが簡単です。
$_REQUEST はどちらも GET、POST または COOKIE を受け入れることができます。検証用の自己参照フォームで $_REQUEST を使用するのは良いことです。
session と cookie の使用
session と cookie は使いやすいですが、session は cookie よりはるかに安全ですが、完全に安全ではありません。
action
//page 1
$phpVariable = "Dog";
$_SESSION['animal'] = $phpVariable;
//page 2
$value = $_SESSION['animal'];
session を使用する場合、$_SESSION 配列にアクセスする前に、必ず両方のページに session_start() を追加してください。cookie
//page 1
$phpVariable = "Dog";
$_COOKIE['animal'] = $phpVariable;
//page 2
$value = $_COOKIE['animal'];
cookies と session の最も明らかな違いは、cookies がクライアント側をストレージとして持つのに対して、session はサーバー側に保存されるということです。