我在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!";
}
感谢您提前提供任何帮助。
答案 0 :(得分:1)
您可以使用Ajax提交表单,设置会话变量,然后使用java脚本隐藏表单。你不能只用PHP来做,因为PHP是一种服务器端语言。除非您将客户端发送到服务器(以某种方式重新加载页面),否则无法使用客户端语言隐藏它。