2017-02-04 49 views
0

请知道我研究过这个问题,但没有任何答案有效,我正在开发一个PHP项目并遇到了一个奇怪的问题错误。以及不是真正的错误,但我真的不喜欢一个错误...我需要帮助在php页面上获取表单来强制页面刷新时提交

我有一个index.php页面,其中包括一个navbar页面有一个登录窗体,当你登录成功它需要你按登录按钮两次以获取页面以最终刷新并显示事实,即您的登录工作......这与注销按钮相同。我有几乎几乎成功,但他们最终崩溃我的网页或扔我的网页到一个永无止境的循环,或再次崩溃的页面。

我会添加代码,我可以,你要知道有很多,所以请多多包涵......

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

此时片段上方应该运行功能来清除$ _SESSION变量在Users.php中设置,这个工作...有点,然后它应该通过表单提交重新加载页面。下所示:

<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"); 
    } 
?> 

就像我提到我一直都在发生之前尝试代码承诺,使索引页重新加载,我得到的是一个崩溃的浏览器,和一些秃斑...

T我已经尝试到目前为止::我将确定我做了什么和我做了什么ina树像结构....

index.php: ----低于set_Logout()函数:: - ----包括( “的index.php”); //导致无限循环的索引页正在加载... ------ include(“_ nav.php”); //导致与上述相似... ------ index.php和_nav.php的include_once()//结果 - 在当前索引中有一个额外的索引和nav,但不在infinate中循环。 ------东西必须做的标题(位置:index.php);这会导致浏览器崩溃,并在我重新启动时将我锁定在页面外... _nav.php: ------与上述内容相同,只不过是用多余的页面加载它们加载的页面在导航栏中... ------位置脚本的尝试导致错误并终止页面加载... _loggedout.php和_loggedin.php: ------试过同样的地方并且很快只有一种工作,直到我不得不关闭我的浏览器并重新打开,它的头(位置...)它的工作,以及当我重新加载页面从新浏览器加载页面停止负载,并给了有关正在加载标题的页面的错误(此调用的已知问题) ------请求包含和include_once与_nav.php的问题相同...

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

任何帮助,您可能会建议将不胜感激

杰西·芬德

+0

只是好奇,有表单行为属性已经被使用 - '

'? –

+0

我有(现在),没有它没有工作,我用 action =“index.php” –

+0

既没有做以下(提到的主要文章...)'“method =”post“>' –

回答

1

我想通了,该怎么办...发现它的另一个计算器网站...借机WEEL即使它fizzles一个littlebit时您登录,而其决定做什么?它的工作原理和Im OK与现在...

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"); 
     } 
     ?> 

上面的是我做过什么来纠正我的问题...感谢谁已经张贴...我很抱歉,占用了你的时间一个人...

杰西·芬德

+0

已经开始在你的答案出现之前编写上面的文本,所以认为不妨发布它,如果它可能无论如何有用。很好,你找到了你的修复!祝你好运! :) –

+0

谢谢,谢谢你的回复:) –

+0

顺便说一句,该程序不一定必须tip手into脚将HTML代码重定向到另一个位置的PHP代码。看看'header()'函数。对于最简单的用法,它可以被编码为:'header('Location:new_page.php');'或者根据您的回答:'header('Location:'。$ page);' –