2016-08-21 50 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

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