Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-重定向请求\u URI-正确的方法?_Php_Redirect_Web - Fatal编程技术网

PHP-重定向请求\u URI-正确的方法?

PHP-重定向请求\u URI-正确的方法?,php,redirect,web,Php,Redirect,Web,我创建了一个网站(纯粹的爱好)。我基本上是使用jquery在后台调用所有ajax。是的,它不受SQL注入的影响,所以不会造成任何伤害,但是我不希望用户检查firebug/developer工具并尝试使用URI,然后手动将其输入URL工具栏并获得结果。我该如何去阻止它 例如,用户在URL框中的输入: www.something.com/datapull.php?get=Data&Person=Sean 我有点像: if(strpos($_SERVER['REQUEST_URI'],'/datapu

我创建了一个网站(纯粹的爱好)。我基本上是使用jquery在后台调用所有ajax。是的,它不受SQL注入的影响,所以不会造成任何伤害,但是我不希望用户检查firebug/developer工具并尝试使用URI,然后手动将其输入URL工具栏并获得结果。我该如何去阻止它

例如,用户在URL框中的输入: www.something.com/datapull.php?get=Data&Person=Sean

我有点像:

if(strpos($_SERVER['REQUEST_URI'],'/datapull.php') !== false) { header('Location: /'); }
但当我这样做的时候,我的网络陷入了一个无限循环。我基本上希望网络在任何时候都是:www.something.com

在没有用户手动输入的情况下,我如何将其保存在该地址

我基本上是在后台使用 jquery。是的,它不受SQL注入的影响,所以不会造成伤害

很抱歉,如果我说这无助于阻止SQL注入

不过,我不希望用户检查firebug/developer工具和 尝试使用URI并在URL工具栏中手动输入它,然后获取 结果


如果web浏览器无法访问某个链接,那么您的AJAX也是如此。

要详细说明我的评论,您可以尝试以下内容

在ajax请求文件中,您可以检查是否设置了
$\u服务器['HTTP\u REFERER']
,并包含您自己的域名

这里有一个简单的例子

index.php

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>Ajax Test</title>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
    </head>
    <body>
        <div class="ajax_receiver">

        </div>
        <script>

            $('.ajax_receiver').load('data.php');

        </script>
    </body>
</html>

希望您可以用它来开始。

我认为您应该使用绝对路径而不是相对核心来解释更多内容?类似于
header('Location:http://www.something.com)
您可以在ajax结果页面中检查是否设置了
$\u服务器['HTTP\u REFERER']
。如果没有设置,这意味着他们可以通过键入地址直接访问页面。很好,这正是我需要的。想不出我在哪里/怎样才能做到这一点。一旦我成功地实现了这个或失败了LOL,我会回复你。。再次感谢!
<?php

    print_r($_SERVER);
<?php
    if ( ! isset($_SERVER['HTTP_REFERER']) || strpos($_SERVER['HTTP_REFERER'], $_SERVER['SERVER_NAME']) === false)
    {
        exit;
        // or take whatever exit action you want here
    }
    print_r($_SERVER);