javascript - 访问 session 值

标签 javascript php jquery html ajax

如果设置了特定 session ,如何隐藏表单样式? 我就是这样做的

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


但只有当我按提交按钮两次而不是第一次时它才会隐藏

最佳答案

你有一个简单的逻辑缺陷。你在设置 session 之前检查 session 。当用户填写表单并提交时,你的 php 运行这个

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

请注意,此时未设置 session ,因此表单不会有 display:none 并将显示**即使用户已正确输入其详细信息,当响应到来时表单仍可见。现在要解决此问题,请在表单显示代码之前移动 session 检查

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

关于javascript - 访问 session 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40958384/

相关文章:

javascript - 通过 ID 切换元素的类

php - Laravel 验证在验证之前修改请求。失败返回原件

jquery - 如何动态获取jquery数据表中行的特定单元格的详细信息

javascript - 使用javascript或jquery手动触发输入框中的验证错误

javascript - 如何使用javascript只允许将数字填充到带有类名的输入引用中?

javascript - Angular 2 : issue with rest api

javascript - webkit 能做什么?

javascript - css 和 javascript 文件未链接

php - Laravel eloquent where 方法给出不区分大小写

php - 如何避免多对多查询中的 "Using temporary"?