Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 登录后隐藏表单_Php_Session - Fatal编程技术网

Php 登录后隐藏表单

Php 登录后隐藏表单,php,session,Php,Session,我在PHP开发中遇到了一个障碍,我正在基于会话变量的存在打印表单。如果有一个名为username的会话变量,我不想打印登录表单,但是此代码仅在刷新页面时有效 是否有任何方法可以仅使用PHP来克服此问题,以便在用户登录时立即隐藏表单,而不必刷新表单 相关代码: <?php if(isset($_SESSION['username'])) { print "Hello, " . $_SESSION['username']; } else { echo '<

我在PHP开发中遇到了一个障碍,我正在基于会话变量的存在打印表单。如果有一个名为username的会话变量,我不想打印登录表单,但是此代码仅在刷新页面时有效

是否有任何方法可以仅使用PHP来克服此问题,以便在用户登录时立即隐藏表单,而不必刷新表单

相关代码:

<?php

  if(isset($_SESSION['username'])) {

    print "Hello, " . $_SESSION['username'];

  } else {

    echo '<form method="post" action="' ?> <?php echo htmlentities($_SERVER['PHP_SELF']); ?>

    <?php 

      echo '">

      Username: <input type="text" name="username" class="username" />
      Password: <input type="password" name="password" class="password" />
                <input type="submit" value="Log in" class="submit_btn" />

      </form>';

}

?>

...

<?php

  ...

  if ($final_hash == $db_pass) {

$_SESSION['logged-in'] = true;  
    $_SESSION['username'] = $username;

  } else {

print "wrong pass!";

  } 

...

您可以使用Ajax提交表单,设置会话变量,然后使用java脚本隐藏表单。因为PHP是一种服务器端语言,所以不能只使用PHP。除非您将客户端发送到服务器(以某种方式重新加载页面),否则在没有客户端语言的情况下无法隐藏它

旁注:如果您还没有加载
session_start()任意位置;做否则,你的回音会话将无法回音。为什么不使用两个单独的页面检查会话并根据该页面重定向它们?@Fred ii-是的,我是Fred,谢谢。不客气;只是检查一下。它不在你的代码中。(不得不问);-)@Chitowns24此页面不是专门的登录页面,登录表单将出现在网站的每个单页上,允许用户从任何地方登录,所以我不确定这是否有效?