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



请知道,我确实对此进行了研究,但没有一个答案有效,我正在进行一个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()函数下面:------include("index.php")//导致加载索引页的infinate循环。。。------include("_nav.php");//从而产生了对上述问题的模拟。。。------index.php和_nav.php//result的includeonce()-一个额外的索引和nav,在当前索引中,但不在中缀循环中。------与头有关的东西(位置:index.php);导致浏览器崩溃,并在我重新启动页面时将我锁定在页面之外。。。_nav.php:------与上面相同,只是不是额外的页面加载到导航栏中加载的页面。。。------定位脚本的尝试导致错误,并停止了页面加载。。。_loggedout.php和_logedin.php:------在这里尝试了同样的操作,在我不得不关闭浏览器并重新打开之前,只有一件事是有效的,那就是标题(位置…),它运行得很好,但当我从新的浏览器加载中重新加载页面时,页面在加载时停止,并给出了关于页面加载标题的错误(此调用存在已知问题)------include和includeonce的请求与nav.php的问题相同。。。

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

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

Jesse Fender

我想好了该怎么做。。。在另一个stackoverflow网站上发现的。。。尽管当你登录时它会有点冒泡,但它会决定做什么……它很有效,我现在还可以。。。

SO php页面使用元标签重新加载。

//_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

最新更新