私は複数ページのフォームを持っていて、データベース内の最後のフォームページの[送信]ボタンをクリックした後に、すべてのフォームの挿入をセッションに保存したいと思います。セッション変数を2ページ以上に渡って保存する方法は?
質問1: すべてのフォーム変数をこのようなセッション変数に保存していますか? この例のように、現在のページの最後のページから変数を保存する必要がありますか?これが機能するのでしょうか、それとももっと簡単に保管することができますか?
のPage1:
<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>form1</title>
</head>
<body>
<form method="post" action="form2.php">
<p><input type="text" name="sname"> Name</p>
<p><input type="text" name="semail_address"> Email</p>
<p><input type="submit" value="form 2"></p>
</form>
</body>
</html>
ページ2:
session_start();
$_SESSION['name'] = $_POST['sname'];
$_SESSION['email_address'] = $_POST['semail_address'];
?>
<form method="post" action="form3.php">
<p><input type="radio" value="Free" checked="checked"name="smembership_type">Free</p>
<p><input type="radio" name="smembership_type" value="Normal">Normal</p>
<p><input type="radio" name="smembership_type" value="Deluxe">Deluxe</p>
<p><input type="checkbox" name="sterms_and_conditions">I agreee</p>
<input type="submit" value="Form 3"></p>
</form>
</body>
</html>
ページ3:
<?php
session_start();
$_SESSION['membership_type'] = $_POST['smembership_type'];
$_SESSION['terms_and_conditions'] = $_POST['sterms_and_conditions'];
?>
....
質問2: そして、それらをデータベースに保存するにはどうすればよいですか?構文は正しいですか?
$query = "INSERT into subscriptions(name,email_address,membership_type,terms_and_conditions,name_on_card, credit_card_number, credit_card_expiration_date)".
"VALUES(" . $_SESSION['name'] . ",
" . $_SESSION['email_address'] . ",
" . $_SESSION['membership_type'] . ",
" . $_SESSION['terms_and_conditions'] . ",
" . $_SESSION['name_on_card'] . ",
" . $_SESSION['credit_card_number'] . ",
" . $_SESSION['credit_card_expiration_date'] . ")";