- ベストアンサー
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に代入というかデータの受け渡しが必要になるかと思うのですがそれはどのように記述すればいいのでしょうか? ご教授よろしくお願いいたします。
- みんなの回答 (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.しか手法がありませんが。
お礼
sessionですか。なるほど。これから試してみます ありがとうございます!!