我有一個由多個步驟組成的管理表單,可以前後移動。我決定使用會話,因爲如果有人來回發送,我不必擔心發送所有變量,因爲它們保存在會話中。使用php和會話的多步表單形式
在第一步中,我刪除會話(如果有的話)。我這樣做是因爲如果某人之前已經註冊並且想要爲其他人重新註冊,那麼之前的所有輸入都會出現在輸入框中。因此,這是起始頁step1.php:
<?php isset($_SESSION))session_destroy(); ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head> ... </head>
<body>
<form action='step2.php' enctype="multipart/form-data" method='post'>
...
</form>
</body>
</html>
然後,我保存了$ _SESSION陣列中step2.php所有輸入:
<?php
$_SESSION['var1']=$_POST['var1']
$_SESSION['var2']=$_POST['var2']
...
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head> ... </head>
<body>
<form action='step3.php' enctype="multipart/form-data" method='post'>
...
</form>
</body>
</html>
的問題是,如果有人註冊並上頁面step2.php,並意外地打開step1.php在一個新的選項卡,然後從step1.php($ _SESSION ['var1'],$ _ SESSION ['var2'],..)所有保存的變量都將丟失。
有沒有可能防止這種情況發生?
非常好!謝謝。 – Adam 2014-09-06 10:31:36