0

私が作成している別のWebサイトにPHPセッションを実装する必要があるため、PHPセッションの使用方法を理解しようとしています。とにかく、私は 3 つの質問を含む非常に基本的なフォームを作成しました。質問に答えてから Web ページを離れると、以前にどの質問をしていたかが記憶されます。

セッションの部分は機能します。問題は、質問が 2 回表示され、次の質問に進むと前の回答が下に表示されることです。意味を確認したい場合は、Simple Form Sessionsにアクセスしてください。

一度に1つの質問しか表示されず、セッションがまだ機能するように変更する方法を知っている人はいますか. ここに私がこれまでに得たすべてのコードがあります。

<?php
session_set_cookie_params(2592000); //Sets cookie to last for 30 days
session_start();
?>

<html>
<head>
<title> Using Sessions with Buttons </title>
</head>
<body>
<p> This is the start</p>
<form method='POST' action='SessionButtons.php'>
<input type='submit' name='start' value='start' />
</form>

<?php
$q1 = 'This is question 1';
$q2 = 'This is the second question';
$q3 = 'This is question, number 3';

$answer1 = "This is the first answer";
$answer2 = "This is the answer to the second question";
$answer3 = "Third answer, this is ";
$answer4 = "This is the mighty fourth answer";

$start = "<form method='POST' action='SessionButtons.php'>
<input type='submit' name='yes1' value='yes' />
<input type='submit' name='no1' value='no' />
</form>";

$form1 = "<form method='POST' action='SessionButtons.php'>
<input type='submit' name='yes2' value='yes' />
<input type='submit' name='no2' value='no' />
</form>";

$form2 = "<form method='POST' action='SessionButtons.php'>
<input type='submit' name='yes3' value='yes' />
<input type='submit' name='no3' value='no' />
</form>";

if (!isset($_POST['start'])){
if (isset($_SESSION['question'])){
echo $_SESSION['question'];
echo $_SESSION['form'];
}

} //If start button has been pressed, display questions
else
{
echo $q1;
echo $start;
}

if ($_POST['yes1']){
echo $q2;
echo $form1;
$_SESSION['question'] = $q2;
$_SESSION['form'] = $form1;
}

if ($_POST['no1']){
echo $q3;
echo $form2;
$_SESSION['question'] = $q3;
$_SESSION['form'] = $form2;
}

if ($_POST['yes2']){
echo $answer1;
$_SESSION['answer'] = $answer1;
}

if ($_POST['no2']){
echo $answer2;
$_SESSION['answer'] = $answer2;
}

if ($_POST['yes3']){
echo $answer3;
$_SESSION['answer'] = $answer3;
}

if ($_POST['no3']){
echo $answer4;
$_SESSION['answer'] = $answer4;
}

?>
</body>
</html>
4

1 に答える 1

0

説明をするためにコードの一部を取らなければならなかった

if (!isset($_POST['start'])){
if (isset($_SESSION['question']) && $_POST['yes1'] && $_POST['no1']){
echo $_SESSION['question'];
echo $_SESSION['form'];
}

} //If start button has been pressed, display questions
else
{
echo $q1;
echo $start;
}

if ($_POST['yes1']){
echo $q2;
echo $form1;
$_SESSION['question'] = $q2;
$_SESSION['form'] = $form1;
}

質問が存在する場合は、2 番目の if ステートメントをスキップするようにコードを再調整しました。このようにしてみてください。

于 2012-06-01T11:34:28.120 に答える