PHP で次のページに変数を渡す方法

  1. HTML フォームによる GET および POST の使用
  2. sessioncookie の使用

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: [email protected]

上記の例は、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 リクエストを使用できます。POSTGET はボットに対して安全ではありませんが、GET はフロントエンドから利用できるため、ハッキングが簡単です。

$_REQUEST はどちらも GETPOST または COOKIE を受け入れることができます。検証用の自己参照フォームで $_REQUEST を使用するのは良いことです。

sessioncookie は使いやすいですが、session は cookie よりはるかに安全ですが、完全に安全ではありません。

action

//page 1
$phpVariable = "Dog";
$_SESSION['animal'] = $phpVariable;

//page 2
$value = $_SESSION['animal'];
注意

session を使用する場合、$_SESSION 配列にアクセスする前に、必ず両方のページに session_start() を追加してください。

//page 1
$phpVariable = "Dog";
$_COOKIE['animal'] = $phpVariable;

//page 2
$value = $_COOKIE['animal'];

cookiessession の最も明らかな違いは、cookies がクライアント側をストレージとして持つのに対して、session はサーバー側に保存されるということです。

関連記事 - PHP form

comments powered by Disqus