2016-08-21 49 views
-1
<?php 
if(isset($_SESSION['id'])==null){ 


    header("Location: login.html"); 
} 
?> 
<script> 
$(function(){ 
$(document).on("click", ".button", function(e) { 
e.preventDefault(); 
{  
//This will capture all the inputs from the form 
var infom = $("#myform").serialize(); 
     //$("#showresult").addClass('loader');     
     $.ajax({    
      beforeSend: function() { },   
      type: "POST", 
      url: "login.php", 
      data:infom,   
      success: function(result){  
      //$("#showresult").removeClass('loader'); 
      $('#showresult').html(result); 
      } 
     });  
     e.preventDefault(); 
} 
}); 
}); 
</script> 

內的login.php過程文件中的文件的login.php我放置在,但它確實沒有什麼用戶仍然能夠把login.php中的瀏覽器導航內仍去實現它。我想阻止他們這樣做。我希望該文件只在我嘗試登錄登錄html頁面時調用。以上是用於顯示錯誤消息,如果有任何來自php的ajax代碼。當我將它與if post或http reffer結合使用時,它會重定向到連續加載的空白頁面。防止用戶訪問瀏覽器的導航欄

+0

'if(isset($ _ SESSION ['id'])== null){'順便提一句,是給你一個誤報。你需要將它們分成兩個不同的條件。很難說,如果你甚至在任何地方開始會議。 –

+0

你無法阻止它。 – Barmar

+0

是的,我確實開始了會話。 –

回答

0

你可以用這個

if($_SERVER['HTTP_REFERER']=="complete URL/login.html") 

檢查URL必須像http://www.example.com/login.html

,如果你是從提交登錄你必須檢查$ _ POST形式。

+1

'$ _SERVER ['HTTP_REFERER']'不可靠。在這裏,請自己閱讀http://stackoverflow.com/a/6023980/1415724 –

+0

獲取此錯誤「注意:未定義索引:HTTP_REFERER in」。 ($ _ SERVER ['HTTP_REFERER'] ==「{http:// localhost} /login.php」){ header(「Location:login.html」); } –

+0

@ Fred-ii-感謝您提供的信息 –

0

的login.php

// check if form has been submitted 
IF (!isset($_POST)) { 
    Header('Location: login.html'); 
    die(); 

} 

這將是明智的使用形式,而不是令牌。

+0

我不知道它是否因爲我使用ajax提交表單,所以我可以在同一頁面上獲得錯誤消息。它的作品,但當我嘗試提交表單,它給了我一個空白頁面,並不會重定向到所需的頁面。 –

+0

這些是我們需要知道的細節。請更新您的問題。 – Brian

+0

只是更新了它。你現在支票 –