2013-03-03 6 views
0

안녕하세요. 문제가 발생했습니다. 세션을 설정 해제 할 수 없으므로 오류를 발견 할 수 있습니까? 아이디어는 세션이 설정되지 않은 상태에서 배열 3으로 돌아가고 array4에서 제거 된 세션이 사라져야하는 배열 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'); 
    } 
} 

?>

array3

<?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/>"; 
    } 
?> 

array4

<?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/>"; 
    } 
?> 
+0

당신은'$ _SESSION [ 'accom']'을 설정하지 않았지만, 결코 업데이트되지 않은'$ accom'을 사용하고 있습니다 ... – aaaaaa123456789

+0

그는 두 번째 페이지에서 세션 변수를 설정하고 있습니다. – BenOfTheNorth

답변

0

변경이

value="remove" 

(또는이 추가)

name="remove" 

그리고 간단한 foreach 문을 사용하여 위해를 사용하는 배열을하지 않는

foreach($tickets as $ticket){ 
    echo "You have selected to recive $ticket tickets<br/>"; 
} 
+0

안녕하세요, 답장을 보내 주셔서 감사합니다. 이전 페이지로 돌아 가면 아직 설정되지 않은 세션의 문제가 여전히 남아 있습니다.이 문제를 해결할 수있는 사람이 있습니까? 아이디어는 장바구니입니다. 물건을 꺼내어 다시 꺼내면 항목이 제거되지만 현재는 그대로 있습니다. 다시 돌아 가면 여전히 존재합니다. – jphillip724

0

대신 :

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

이 필요합니다 :

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

$_POST 변수는 키로서, 형태 변수가 아닌 값의 이름을.

+0

안녕하십니까, 답장을 보내 주셔서 감사합니다. 그러나 이전 페이지로 돌아 가면 아직 설정되지 않은 상태로 세션의 내 문제가 여전히 남아 있습니다.이 문제를 해결할 사람이 있습니까? 아이디어는 장바구니입니다. 물건을 꺼내어 다시 꺼내면 항목이 제거되지만 현재는 그대로 있습니다. 다시 돌아 가면 여전히 존재합니다. – jphillip724

+0

어떻게 이전 페이지로 돌아갈 수 있습니까? 뒤로 버튼을 사용 하시겠습니까? – BenOfTheNorth

+0

사용 중 그냥 버튼을 사용하면 이전 페이지로 이동합니다 – jphillip724

관련 문제