【问题标题】:PHP form hides after page refresh instead of just after submission?PHP表单在页面刷新后隐藏而不是在提交后隐藏?
【发布时间】:2015-01-17 06:31:26
【问题描述】:

这是我用来隐藏表单的代码

<div class="col-lg-4 col-md-4 col-sm-6 col-xs-12" <?php if(!$_SESSION['login']) echo 'style="display:none;"'; else echo 'style="display:block;"';?>/>
<form method="post" action="">
<p>Hey, <?php echo ''.$_SESSION['user'].''; ?></p>
<input style="border: none; padding: 8px 15px; background: #BAFF00; box-shadow: 0px 0px 3px #757875;" type="submit" name="submit" value="Logout">
</form>
<?php
if ($_POST['submit'] == 'Logout'){
session_destroy();
$_SESSION['login'] = false;
}
?>

但是,我必须刷新页面才能隐藏表单。据我所知,我认为 $_SESSION['login'] 变量是在表单提交后设置的。我第一次单击注销时,页面会刷新,但是某些显示的 html 没有被刷新(我不确定)。然后,在我再次单击注销按钮或刷新页面后。注销部分会自行隐藏。

【问题讨论】:

  • 避免从教程中复制和粘贴或尝试更改您不太了解的内容。
  • 我知道我在写什么,你为什么认为我是复制粘贴的?
  • 那为什么你不能解决你的问题?
  • 因为我在学习,我一定会遇到问题。每个人都会在某个时刻卡在某个地方。
  • 您的表单是纯 html。如果你想在某些条件下隐藏它,即。 login 将其包装在 php 条件语句中。或者使用 javascript 或 jquery。

标签: php mysql database forms session


【解决方案1】:

使用此代码

<?php
session_start();
$_SESSION['user']='abc';
?>
<div class="col-lg-4 col-md-4 col-sm-6 col-xs-12" <?php if(isset($_SESSION['login'])) echo 'style="display:none;"'; else echo 'style="display:block;"';?>/>
<form method="post" action="">
<p>Hey, <?php echo ''.$_SESSION['user'].''; ?></p>
<input style="border: none; padding: 8px 15px; background: #BAFF00; box-shadow: 0px 0px 3px #757875;" type="submit" name="submit" value="Logout">
</form>
</div>
<?php

if(isset($_POST['submit'])){
session_destroy();
$_SESSION['login'] = false;
}
?>

【讨论】:

    猜你喜欢
    • 2019-03-25
    • 2013-10-02
    • 2012-11-05
    • 1970-01-01
    • 2019-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多