こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

ファイル間のデータの受け渡しについて hidden? session?

1.php
(フォームを表示)
2.php
(入力内容の確認ページ)
3.php
(最後のページ、送られた値を使用し、メール送信やデータベースに書き込むなどの処理をしたい。)
とhiddenを使い、3つのファイルを作成しました。

ファイル"1.php"
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title></title>
</head>
<body>

<form action="2.php" method="post">
<input type="text" name="data1" value="データその1">
<input type="hidden" name="data2" value="隠しデータ">
<input type="submit" name="" value="送信">
</form>

</body>
</html>

ファイル"2.php"
<?php
echo "<h1>確認ページ</h1>";
echo $_POST[data1]."<BR>";
echo $_POST[data2];

print<<<_HOGE_
<form action="3.php" method="post">
<input type="hidden" name="data1" value="$_POST[data1]">
<input type="hidden" name="data2" value="$_POST[data2]">
<input type="submit" name="" value="送信">
</form>
_HOGE_;
?>

ファイル"3.php"
<?php
echo $_POST[data1]."<BR>";
echo $_POST[data2];
?>



2.phpの(入力内容の確認ページ)を見ているときに、他の人が2.phpにアクセスして入力内容を盗み見る事は出来るのでしょうか?
(2.phpに直接アクセス出来ないように、リダイレクト処理はするつもりですが。)


2.phpから3.phpに値を渡す場合、このようなhiddenの使い方は間違っていますか?
セッションを使った方が良いのでしょうか?

投稿日時 - 2009-10-26 19:52:12

QNo.5398800

暇なときに回答ください

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

hiddenの利用方法に関しては、常套手段です。

>2.phpの(入力内容の確認ページ)を見ているときに、他の人が2.phpにアクセスして入力内容を盗み見る事は出来るのでしょうか?
誰かが入力した値を第三者が見ることは通常出来ません。(通信内容を盗聴されていれば別ですが)
2.phpに直接アクセスしてみたところで、第三者が入力した値が表示されてしまっている、なんてことはありえません。

尚、hiddenにいれて確認画面が出た後、3.phpでデータベースに格納する前に、再度入力に不備が無いかチェックする機構は作成されておりますでしょうか。
そうしないと、2.phpと同様な内容のHTMLファイルをローカルに作成して、hidden値を適当に入れたものをPOSTされた場合、どのような値もデータベースに格納することになってしまったりします。

フォームの受け渡しなど、セキュリティに関しては
http://www.phppro.jp/school/security/
こちらで、「がる先生」が詳しく説明されてます。
一度読んでみてはいかがでしょうか。

投稿日時 - 2009-10-27 00:49:40

補足

ありがとうございます!

チェック機構というのは、バリデーションチェックというやつでしょうか。
正しいメールアドレスなのか、XSS対策などは行っています。

ご紹介して頂いたページで勉強させて頂きます。

投稿日時 - 2009-10-27 11:29:11

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問