2009-12-06 4 views
0

문제는 세션을 사용하고 싶지만 사용자가 피자를 선택한 경우 세션을 구현하는 데 문제가 있습니다. 그 또는 그녀에게 샌드위치를 ​​제안하십시오, 마찬가지로 사용자가 샌드위치를 ​​선택하는 경우에, 나는 사용자에게 피자를 제안하지 않는다.PHP 세션 및 x 값이 세션을 통해 선택되었는지 확인

또한 사용자가 이미 피자 또는 샌드위치를 ​​선택했는지 알고 싶습니다.

$food = array("Pizza" => $_POST["pepperoni"], "Sandwitch"=>$_POST["chickensandwitch"]); 

//How do I set up each $food element such that it gets its own session? 
// In addition to checking if $food["Pizza"] has been selected or not? 
if (isset($_SESSION('$food["Pizza"]'))) 
{ 
$_SESSION('$food["Pizza"]') = $_SESSION('$food["Pizza"]') 
echo "You have already selected Pepperoni"; 
} 
else 
{ 
echo "Please select a Pizza"; 
} 

위의 코드의 구조에 관해서 PS, 및 구문은 내가 도움을 요청하고 그 이유는, 많은 문제가다시피, Newb 불타는하지 주셔서 감사합니다. 사실

$_SESSION['food']['pizza'] = 'pepperoni'; 
$_SESSION['food']['sandwich'] = 'chicken sandwich'; 

// checking if food[pizza]has been selected/defined 
if(isset($_SESSION['food']['pizza'])) { 
    echo "You've already selected " . $_SESSION['food']['pizza']; 
} else { 
    echo "Please select a Pizza"; 
} 

답변

2
//How do I set up each $food element such that it gets its own session? 

구조는 다음과 같이해야한다. 이것은 제가 생각하는 것의 예입니다.

if(!isset($_SESSION['food'])) { 
    if(isset($_POST['food'])) { 
     $_SESSION['food'] = $_POST['food']; 
    } else { 
     die("You'll have to select whicht type of food you want."); 
    } 
} 

if($_SESSION['food']=="Pizza") { 
    // User selected pizza 
    if(isset($_POST['pizza'])) { 
     // User selected a type of pizza 
     $_SESSION['pizza'] = $_POST['pizza']; 
    } else if(!isset($_SESSION['pizza'])) { 
     // No pizza selected by user and also none in session 
     die("You'll have to select a pizza."); 
    } else { 
     // User selected type of pizza previously 
     echo htmlspecialchars("You selected pizza '{$_SESSION['pizza']}'.") . "<br />\n"; 
    } 
} else if($_SESSION['food']=="Sandwhich") { 
    // Same as above just for sandwhiches.. 
} else { 
    echo "No pizza or other food selected."; 
} 
1

귀하의 코드는 몇 가지 문제를 가지고 나는 또한 문제를 이해하지 않았다

+0

감사합니다. – Newb