- ベストアンサー
PHPで受け取ったパラメータを別のPHPに移す
フォーム用HTMLから受け取ったパラメータを処理用PHPで処理したあと、表示用PHPにパラメータを持たせたまま処理を移したいと考えております。 たとえば、form.htmlで受け取ったパラメータをa.phpで処理し、表示用のb.phpに移すには、どのような方法をとるのが効率的なのでしょうか? smartyなどのテンプレートエンジンを使わない形で考えております。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
初めまして。 プログラマ見習いをやっておりますので、 そこまで詳しくはありませんが、一例をお書きします。 仮に名前・メルアド・パスワード・文章の 送信フォームだと仮定してみますね。 --------------------------------------------- ▼from.html --------------------------------------------- <!--←このコメントタグは削除してお使い下さい。 <form action="a.php" method="POST"> <input type="text" name="name"> <input type="password" name="pass"> <input type="text" name="mail"> <textarea name="message" rows="8" cols="50"> </textarea> <input type="submit" name="sub" value="submit"> </form> -->←このコメントタグは削除してお使い下さい。 --------------------------------------------- ▼a.php --------------------------------------------- <?//←全角にて記しました半角にして下さい。 //▼Sessionデータの初期化 session_start(); //▼データ受け取り $name=$_POST['name']; $pass=$_POST['pass']; $mail=$_POST['mail']; $text=$_POST['message']; //上記変数に何らかの処理 //▼処理後の変数をSessionに格納 $_SESSION['name']=$name; $_SESSION['pass']=$pass; $_SESSION['mail']=$mail; $_SESSION['text']=$text; //▼b.phpへ移動 header("Location: b.php");//同階層にあると仮定 ?>//←全角にて記しました半角にして下さい。 --------------------------------------------- ▼b.php --------------------------------------------- <?//←全角にて記しました半角にして下さい。 session_start(); print "NAME:".$_SESSION['name']."<br>"; print "PASS:".$_SESSION['pass']."<br>"; print "MAIL:".$_SESSION['mail']."<br>"; print "MESSAGE:".$_SESSION['text']."<br>"; ?>//←全角にて記しました半角にして下さい。 --------------------------------------------- こんな感じになるのではないでしょうか? 投稿の際問題が発生するといけませんので、 ところどころ、全角・コメント化致しました。 上記プログラムには書きませんでしたが、 Sessionは使用し終わったらちゃんとunsetして 開放してあげましょう。 初心者プログラマ故、間違いなどがあった場合は、 どなたか補足にて指摘して下さると助かります。 参考程度にご覧下さいませ^^;
その他の回答 (1)
- shu_a
- ベストアンサー率87% (14/16)
仮にもこの場合では smarty を使う必要はないと思いますが。 b.php に「移す」方法と、form.html でのデータ量や内容にもよると思いますので、その辺りを詳しく書いていただけると回答しやすいと思います。 もっとも柔軟性があるのは、セッションだと思いますが、どうでしょう。
補足
早速の回答ありがとうございます。 form.htmlからは10程度の変数をa.phpに送ります。 a.phpからb.phpへのデータの受け渡しに関しては、どのような形で送ることが出来るのかが分からずに質問をいたしました。 仮にセッションで送る際もa.phpで処理したデータを、どのようにしてb.phpに送るかが良く分かりません。 htmlでフォームの表示させた場合は送信ボタンを押せば、PHPファイルにデータを送ることが出来ますが、PHPファイルで処理したデータをそのまま保持して表示用のPHPファイルに送る方法を知りたいのですが... よろしくお願いいたします。
お礼
わざわざサンプルを書いていただきありがとうございました。 セッションにした場合はLocationでもセッション情報が保持されるのですね。 本当にありがとうございました。