プロが教える店舗&オフィスのセキュリティ対策術

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に代入というかデータの受け渡しが必要になるかと思うのですがそれはどのように記述すればいいのでしょうか?

ご教授よろしくお願いいたします。

A 回答 (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.しか手法がありませんが。
    • good
    • 3
この回答へのお礼

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

お礼日時:2008/01/17 12:53

#1さんの補足



セッションやクッキーをつかう手もあります
    • good
    • 1

page1.phpでは


<input type="hidden" name="名前" value="<?php echo $name; ?>">
とすればいいんじゃないでしょうか?
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/01/17 12:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!