今回の記事を読んで欲しい方
- PHP学習中の方
- やり方をググって調べる方
今回はPHPにてフォームから次のページに値を渡すやり方について書いていこうと思います。
フォームタグを使用する場合
HTMLのフォームタグはPHPを使う場合でも使われ、一番メジャーな値渡しの方法です。
フォームタグのactionの渡す先で、使えるようになります。
例えば、
<form action="hoge.php" method="post">
<input type="text" name="mail" value="yamata@programmer.blog" />
<input type="text" name="pass" value="hogefuga" />
<input type="submit" value="submit" />
</form>
<?php
echo $_POST['mail']; // ←中身はyamata@programmer.blogとなります。
echo $_POST['pass']; // ←中身はhogefugaとなります。
?>
PHPで値を受け取るには
$_POST['前ページのinputタグのnameで指定した名前'];
となります。
この中に入ってくるのがinputタグで指定したvalueの値となります。
あまり使用しないですが、formのmethod属性でGETを指定した場合は
$_GET['前ページのinputタグのnameで指定した名前'];
となります。気をつけて使いましょう。
セッションを使用する場合
PHPでwebアプリケーションや掲示板、メールフォームを制作する場合は、セッションを理解する必要があります。
私自身も使い始めたばかりなので、間違っていたら恐縮です。
セッションを使う場合は、必ずsession_start()関数を利用します。
この宣言をすれば、セッションを開始できます。
セッションを切る場合は、
セッション変数の登録
セッション変数に登録する記述方法はこちらとなります。
$_SESSION['キー名'] = 値;
キー名は入れる値が何を示すのかがわかれば、何でもOKです。
何を作ったかは省略しますが、実際に自分が使ったコードをご紹介します。
<?php
session_start();
if(!isset($_SESSION["hundle_name"]) && !isset($_SESSION["number_of_times"])){
$_SESSION["hundle_name"] = $_POST['hundle_name'];
$_SESSION["number_of_times"] = $_POST['number_of_times'];
}
?>
前ページから遷移してきた前提で、$_SESSION["hundle_name"](ハンドルネーム)と、$_SESSION["number_of_times"](回数)に値がなければ前ページからPOSTされた値をセッションに入れて下さいという命令です。
余談:セッションの有効期限を設定
セッションの有効期限を設定する場合は、以下のように記述します。
<?php
session_set_cookie_params(times() + 60 * 30);
session_start();
?>
この記述の場合は、セッションが30分有効となります。
session_set_cookie_params関数は、必ずsession_start();の前に記述してください。
PHPで次ページに情報を渡すやり方まとめ
フォームで次ページに値を渡す場合
<form action="hoge.php" method="post">
<input type="text name="mail" value="hoge" />
コードは省略しますが、これで渡した場合は
$_POST['mail'];
キー名にはmailを指定し、valueで設定したhogeが次のページで取得できます。
セッションを使用する場合は、
<?php
session_start();
$_SESSION['count'] = 1;
?>
セッションのキー名にcountを入れました。
セッションの有効期限を指定しなければ、ページが遷移しても$_SESSION['count']の情報が維持されます。
今回は以上です。
次回以降もPHPの学びを書いていきます。