2017-02-04 12 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);' –