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
はサーバー側に保存されるということです。