【问题标题】:Determine if the user typed an address or clicked a href确定用户是否键入了地址或单击了 href
【发布时间】:2013-11-01 13:58:58
【问题描述】:

好的,所以我有一个基本网站,页面上的 about、contact 和 services 链接通过 about.php、contact.php 和 services.php 的 ajax 内容加载到我页面上的主 div 中。一切正常。

我的编码方式是当有人点击时,比如说,#about 我有以下代码:

  $.address.change(function(event) {  
      $('#main').load('../' + event.value + '.php');  
  });  
  $('a').click(function() {  
      $.address.value($(this).attr('href'));  
  });

在 about.php 我有:

<?php
    // render form
    require("../templates/about_form.php");
?>

一切都很好,但是假设一个狡猾的用户在 domain.com/about.php 中键入然后他们只是得到 about_form.php 的内容而没有我的页面的其余部分。

我能否确定用户是否这样做,如果是,则将页面重定向到 domain.com#about ...

任何建议表示赞赏。

【问题讨论】:

  • 检查后端请求的Referer标头?如果没有referer,则表示这是直接请求,而不是来自您的页面。

标签: php html ajax href


【解决方案1】:

包装您现有的页面
if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
    /*page code goes here*/

}else
{
 header('Location: http://www.domain.com/#yoursection');
}

它的作用是检查请求是否是 ajax 请求,如果没有将用户重定向到正确的页面。

【讨论】:

  • @m0atz 我的荣幸 ^^
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
  • 2012-10-21
  • 1970-01-01
相关资源
最近更新 更多