我需要帮助在php页面上获取表单以在提交时强制刷新页面

时间:2017-02-04 00:26:39

标签: php html refresh page-refresh

请知道我对此进行了研究,但没有一个答案有效,我正在研究PHP项目并遇到了一个奇怪的错误。好吧,这不是一个错误,而是一个奇怪的,我真的不喜欢......

我有一个index.php页面,其中包含一个具有登录表单的导航栏页面,当您成功登录时,它需要您按两次登录按钮以使页面最终刷新并显示您的事实登录工作...它与注销按钮相同。我有几个几乎成功但是所有这些都最终崩溃我的页面或将我的页面扔进一些永不停止的循环,或者再次崩溃页面。

我会添加我能提供的代码,请注意,有很多代码,所以请耐心等待......

//From the index page//
          <!-- Log out commands -->
      <?php
        if (isset($_POST["logoffuser"])){
          set_Logout();
          $_POST = array();
          include_once("index.php");
        }
      ?>

此时上面的代码片段应该运行函数来清除在Users.php中设置的$ _SESSION变量,这有效......有些,它应该通过表单提交重新加载页面。如下所示:

<form class='navbar-form navbar-right' method='POST'>
  <div class="form-group">
    <div class='alert alert-success'>
      Logged in as <?php echo $_SESSION['fullname']; ?>! <?php echo $_SESSION['lastTimeLoggedIn'];?>
      <input type='submit' name='logoffuser' value='Log Off' class='btn btn-primary' />
    </div>
  </div>
</form>

如果设置了$ _Session并且具有数组值,则在加载索引时包含上述内容。这将显示在下面...但首先是注销表单(显示用户从站点注销时的表单...):

<form class="navbar-form navbar-right" method="post">
<?php if (isset($_POST["logIn"])){
  if (!empty($login_out_message)){
    echo "<p class='alert alert-danger'> $login_out_message </p>";
    $_POST = array();
  }else{
    set_Login();

  }
}else{

}?>
<div class="form-group">
  <label for="">Username:</label>
  <input type="text" name="Username" value="" class="form-control">
</div>
<div class="form-group">
  <label for="Password">Password:</label>
  <input type="password" name="Password" value="" class="form-control">
</div>
<button type="submit" name="logIn" class="btn btn-primary">Login</button>
<button type="submit" name="Register" class="btn btn-primary">Register</button>
</form>

和_Nav.php表单加载代码,我将其包含在内,以便您可以看到如何加载内容...而且我也尝试从此处重新加载页面...

<?php
//dubug purposes
//  var_dump($_SESSION);
//
  if (isset($_SESSION) && sizeof($_SESSION) > 0) {
    include("partial/_loggedin.php");
  } elseif (sizeof($_SESSION) == 0) {
    include("partial/_loggedout.php");
  }
?>

就像我之前提到的那样,我已经到处尝试使代码承诺重新加载索引页面,我得到的只是一个崩溃的浏览器,还有一些光头......

到目前为止我尝试过的事情::我将确定我在哪里以及我在树上做了什么......

的index.php: ----在set_Logout()函数下面:: ------包括( “的index.php”); //导致索引页面的无限循环加载... ------包括( “_ nav.php”); //结果与上面相似... ------ index_php和_nav.php的include_once()// result - 当前索引中的额外索引和导航,但不在infinate循环中。 ------与header有关的东西(location:index.php);导致浏览器崩溃,并在重新启动时将我锁定在页面外... _nav.php: ------与上面相同,除了加载他们在导航栏中加载的页面的额外页面... ------位置脚本的尝试导致错误并停止页面加载... _loggedout.php和_loggedin.php: ------在这里尝试过同样的事,只有一件事情有点工作,直到我不得不关闭我的浏览器并重新打开,标题(位置......)它工作得很好但是当我重新加载页面时浏览器加载页面在加载时暂停,并提供有关正在加载标题的页面的错误(此调用已知问题) ------ include和include_once的请求与_nav.php的问题相同......

我想我已经看到了一些关于重定向到PHP的自我的一些脚本,我当时不需要它但是还没有尝试过,我仍在调查它。而且我想知道你们是否能看到我失踪的东西。

非常感谢您提出的任何帮助

Jesse Fender

1 个答案:

答案 0 :(得分:1)

我想出了该怎么做...在另一个stackoverflow网站上发现它...虽然当你登录时它确定要做什么但是它会失败但是它很有用但是我可以现在...

SO php page reload using meta tags.

//_loggedout.php (used to press log in button.)
<?php if (isset($_POST["logIn"])){
  if (!empty($login_out_message)){
    echo "<p class='alert alert-danger'> $login_out_message </p>";
    $_POST = array();
  }else{
    set_Login();
    //tests
    $page = $_SERVER['PHP_SELF'];
    echo '<meta http-equiv="Refresh" content="0;' . $page . '">';
  }
}else{

}?>

//from index.php to check if $_SESSION is set... 
<?php
        if (isset($_POST["logoffuser"])){
          set_Logout();
          $_POST = array();
          //tests
          $page = $_SERVER['PHP_SELF'];
          echo '<meta http-equiv="Refresh" content="0;' . $page . '">';
          //include_once("index.php");
        }
      ?>

以上就是我所做的纠正我的问题...感谢已经发布的那个人......很抱歉占用了你的时间......

Jesse Fender