PHPでセッションの取得方法について、困っています。
■ファイル構成
・index.php
・mailsend.php
・thanks.php
【index.php】
php
1<form action="mailsend.php" method="post" id="mail" target="_blank"> 2<?php 3print "<input type="hidden" name="mailadress" value="$mailadress">"; 4?> 5<input type="submit" name="mail" id="mail" value="送信"> 6</form>
※このindex.phpはテンプレートで、データベースにより、ページ内容の違うものが生成されるようになっています。(index1.php、index2.php、index3.php…のような感じです。)
【mailsend.php】
メールを送る処理と、thanks.phpに移動する処理が書かれています。
【thanks.php】
セッションを削除する処理が書かれています。
php
1// セッションの開始 2 session_start(); 3// セッション変数の初期化 4 $_SESSION = array(); 5// セッションファイルの削除 6 session_destroy();
index.phpからmailsend.phpに$mailadressの値を渡さないといけないのですが、
input type=hidden
でしてしまうと、ソースを見た時にアドレスが分かってしまいます。
そこで、セッションを使ってみたのですが、
php
1session_start(); 2$_SESSION["mailadress"] = "$mailadress";
そうすると、送信ボタンがクリックされずに他のindexページに移った場合、
そのセッションの値がそのままになってしまってしまいます。
つまり、
↓index1.phpを表示
↓セッションでメールアドレス:index1@が取得される
↓index1.phpでは送信ボタンを押さずにindex2.phpへ移動
↓index2.phpで送信ボタンを押すと、index2@ではなくindex1@へ送信されてしまう
例えば、送信ボタンをクリックした時のみセッションを開始するなど…
何か良いやり方をご教授いただけないでしょうか。よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/10/28 10:15