0

こんにちは、問題が発生しています。セッションの設定を解除できません。誰でもエラーを見つけることができますか? アイデアは、セッションが設定解除されたアレイ 4 までプロセスを実行してから、アレイ 3 に戻り、アレイ 4 で削除されたセッションがなくなるはずです....しかし、それはなくなっていません。これが理にかなっていることを願っています、ありがとうすべての助けのために。

HTML

    <form action="array2.php" method="post"> 
    <select name="tickets">
    Select amount of tickets you require.
        <option value=""></option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
        <option value="9">9</option>
        <option value="10">10</option>
    </select>
    Select the acomidation you require.
    <select name="accom">
        <option value=""></option>
        <option value="camping">Camping</option>
        <option value="caravan">Caravan</option>
    </select>
    <input name="submit" type="submit" value="submit">
</form>

配列2

<?php
session_start();
if(isset($_POST['submit'])){
    if($_POST['tickets'] == "" || $_POST['accom'] == ""){
        header("Location: error.html");
        exit; 
    }else{
        $tickets = $_POST['tickets'];
        $accom = $_POST['accom'];
        $_SESSION['tickets'] = $tickets;
        $_SESSION['accom'] = $accom;
        header('Location: array3.php');
    }
}

?>

配列3

<?php
session_start();
$tickets = $_SESSION['tickets'];
$accom = $_SESSION['accom'];
?>

    <form method="post" action="array4.php">
    <input type="submit" value="remove" />
</form>
<?php
    for($i=0; $i < count($tickets); $i++){
        echo "You have selected to recive " . $tickets[$i] . " tickets<br/>";
    }
    for($i=0; $i < count($accom); $i++){
        echo "And you have selected to recive " . $accom[$i] . " for accommodation are you sure? <br/>";
    }
?>

配列4

<?php
session_start();
if(isset($_POST['remove'])){
    unset($_SESSION['accom']);
}
$tickets = $_SESSION['tickets'];
?>

<form method="post" action="array3.php">
    <input type="submit" value="go back?" />
</form>
<?php
    for($i=0; $i < count($tickets); $i++){
        echo "You have selected to recive " . $tickets[$i] . " tickets<br/>";
    }
    for($i=0; $i < count($accom); $i++){
        echo "And you have selected to recive " . $accom[$i] . " for accommodation are you sure? <br/>";
    }
?>
4

2 に答える 2

0

これを変える

value="remove"

で(またはこれを追加するだけで)

name="remove"

そして、forを使用しないでください。配列を取得するには、単純なforeachを使用してください。

foreach($tickets as $ticket){
    echo "You have selected to recive $ticket tickets<br/>";
}
于 2013-03-03T23:36:36.120 に答える
0

これの代わりに:

if(isset($_POST['remove'])){
    unset($_SESSION['accom']);
}

これが必要になります:

if(isset($_POST['submit']) && $_POST['submit'] == 'remove'){
    unset($_SESSION['accom']);
}

$_POST変数は、値ではなく、フォーム変数の名前をキーとして使用します。

于 2013-03-03T23:36:42.350 に答える