2016-12-04 6 views
0

特定のセッションが設定されている場合にフォームスタイルを非表示にするにはどうすればよいですか? 私はそのようにセッションの値にアクセスする

<form action="" method="post" <?php if ((isset($_SESSION['start']))|| (isset($_SESSION['visitor']))){ echo 'style="display:none;"'; } ?>> 
    <input type="radio" name="log" id="viso" value="vis" checked onclick="javascript:yesnoCheck();"> Visitor<br> 
    <input type="radio" name="log" id="uso" value="use" onclick="javascript:yesnoCheck();" > User<br> 
    <label name="frm" id="frm" style="display:none" ><b>Password</b></label> 
    <input type="password" style="display:none" name="pw" id="pw" placeholder="Enter Password" > 
    <input type="submit" > 
</form> 
<?php 
    if (isset ($_POST['log'])&& $_POST['log']=="vis") 
    { 
     $_SESSION["visitor"]="true"; 
     unset($_SESSION["start"]); 
    } 
    else if (isset ($_POST['log'])&& $_POST['log']=="use") 
    { 
     if (isset($_POST['pw']) && $_POST['pw']!="1111") 
      echo "Wrong password"; 
     else if (isset ($_POST['pw'])&& $_POST['pw']=="1111") 
     { 
      $_SESSION['start']="Welcome"; 
      unset($_SESSION["visitor"]); 
     } 
    } 
?> 


それをしなかったが、唯一の私が初めて

答えて

2

から2回送信ボタン上にない押した場合は。あなたがあなたの前に、セッションのためにチェックしている、単純な論理的な欠陥を持って隠されていますそれらを設定.Whenユーザーがフォームを記入し、提出し、あなたのPHPは、この時点で何のセッションが設定されていないので、フォームがdisplay:noneを持っていないと表示されますことを、この

<form action="" method="post" id="lol" <?php if ((isset($_SESSION['start']))|| (isset($_SESSION['visitor']))){ echo 'style="display:none;"'; } ?>> 

注意さえ目**走りますユーザーが彼の詳細を正しく入力しています。フォームの表示コードの前にセッションチェックを移動してください。

<?php 
if (isset ($_POST['log'])&& $_POST['log']=="vis") 
{ 
    $_SESSION["visitor"]="true"; 
//....more stuff 

//... 
} ?> 

<form action="" method="post" id="lol" <?php if ((isset($_SESSION['start']))|| (isset($_SESSION['visitor']))){ echo 'style="display:none;"'; } ?>> 
+0

ありがとうございます。 –

関連する問題