yamata.programmer.blog

HSPに向けた情報を発信中!

【PHP初心者必見】session関数で次のページに情報を渡すやり方【超簡単な方法】

今回の記事を読んで欲しい方

  • PHP学習中の方
  • やり方をググって調べる方

今回はPHPにてフォームから次のページに値を渡すやり方について書いていこうと思います。

フォームタグを使用する場合

HTMLのフォームタグはPHPを使う場合でも使われ、一番メジャーな値渡しの方法です。

フォームタグのactionの渡す先で、使えるようになります。

例えば、

index.php

<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>

hoge.php

<?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()関数を利用します。

<?php

  session_start();

?>

この宣言をすれば、セッションを開始できます。

セッションを切る場合は、

<?php

  session_start();

  session_destroy();

?>

session_start();を宣言した上で、session_destroy();を宣言すればOKです。

セッション変数の登録

セッション変数に登録する記述方法はこちらとなります。

$_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の学びを書いていきます。