2016-07-29 8 views
-1

何らかの理由で、セッション変数を設定し、if/elseを使用して値が特定のものかどうかを確認する際に問題が発生します。ここに関連するコードです:if/elseを使用したPHPセッション変数

function ask_name(){ 
    return "What is your name?\n\n"; 
    $_SESSION['status'] = "name"; 
} 

if (!isset($_SESSION["name"])||!isset($_SESSION['status'])) { 
    $message = ask_name(); 
} 
elseif ($_SESSION["status"]==="name"){ 
$message = hello_name(); 
} 
else{ 
    $message = respond_to_answer(); 
} 

私は$_SESSION["name"]が確実に設定されていることを知って、私は$_SESSION['status']が設定されていないことになっていないので、私のif/elseif/elseelseifに移動することができません。

私はここで何が欠けていますか?

+0

試し' && ' "返信"を読むhttp://php.net/manual/en(ifset($ _ SESSION ["name"]))&&(!_ isset($ _ SESSION ['status']))){' – Manikiran

+2

/function.return.php ;-) –

+0

@ Fred-ii- Yep ...それが問題でした。私はいくつかのコピーと貼り付けを行ったときにそれらを並べ替えることを全く忘れてしまった。 – jonmrich

答えて

1
function ask_name(){ 
    return "What is your name?\n\n"; 
    $_SESSION['status'] = "name"; 
} 

return呼び出し先に現在の関数とリターンを終了し、これはあなたの$_SESSION['status'] = "name";コードが実行されることはありませんことを意味し、それを切り替える:代わりに `||`すなわち、 `の

function ask_name(){ 
    $_SESSION['status'] = "name"; 
    return "What is your name?\n\n"; 
} 
+1

うん...それだった。私はそれを逃したとは信じられません。私ができる時は受け入れます。ヘルプをよろしくお願いいたします。 – jonmrich

関連する問題