• ベストアンサー

PHPからHTMLへの変数の受け渡し

form.html→page1.php→page2.php というようなページをつくり、form.htmlでテキストエリア等<form>を使いpage1.phpにデータ:nameを送るとします。 その際$name = $_POST['name'];とするとphpでの変数になってしまってpage1のhtml上では認識されませんよね? page1からpage2に移動するときにform.phpでいれたnameのデータも <input type="hidden" name="名前" value="name"> というように使いたいのですがその際page1内でphpでの$nameをhtmlのnameに代入というかデータの受け渡しが必要になるかと思うのですがそれはどのように記述すればいいのでしょうか? ご教授よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • wp_
  • ベストアンサー率54% (132/242)
回答No.3

1.hiddenで値を回す(大抵は「値を引き継ぐ」と呼ばれます) [form.php] <form action="page1.php" method="POST"> <input type="text" name="name" /> <input type="submit" /> </form> [page1.php] <form action="page2.php" method="POST"> ↓そのまま$_POSTの値を突っ込むとxssなどバグの温床になるんだけど。 <input type="hidden" name="name" value="<?php echo htmlspecialchars($_POST['name']); ?>" /> <input type="submit" /> </form> [page2.php] 上記だとHTMLを排除された値が渡ってくることに注意 <?php echo $_POST["name"]; ?> 2.sessionを使って値を保持する [form.php] (snip) [page1.php] <?php session_start(); $_SESSION['name'] = $_POST['name']; ?> [page2.php] <?php session_start(); echo $_SESSION['name']; sessionを使った方がセキュリティ的には強固 かつ 作成者的に負担が少ないので 個人的には2.をお勧めしたいところ。 cookieが使えないのであれば1.しか手法がありませんが。

wasabi0201
質問者

お礼

sessionですか。なるほど。これから試してみます ありがとうございます!!

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

#1さんの補足 セッションやクッキーをつかう手もあります

  • fa-ce
  • ベストアンサー率42% (9/21)
回答No.1

page1.phpでは <input type="hidden" name="名前" value="<?php echo $name; ?>"> とすればいいんじゃないでしょうか?

wasabi0201
質問者

お礼

これでできました!! なるほど。そこだけPHPにしてしまえばいいんですね

関連するQ&A

専門家に質問してみよう