Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.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页面的PHP_Php_Html_Mysql - Fatal编程技术网

阻止直接访问PHP页面的PHP

阻止直接访问PHP页面的PHP,php,html,mysql,Php,Html,Mysql,links.php,其中包含以下代码: $ipaddress = $_SERVER["REMOTE_ADDR"]; <p><a href="track.php?page=http://www.google.co.uk" target="_blank">google.co.uk</a></p> <p><a href="track.php?page=http://www.bbc.co.uk" target="_blank">bb

links.php,其中包含以下代码:

$ipaddress = $_SERVER["REMOTE_ADDR"];
<p><a href="track.php?page=http://www.google.co.uk" target="_blank">google.co.uk</a></p>
<p><a href="track.php?page=http://www.bbc.co.uk" target="_blank">bbc.co.uk</a></p>
<p><a href="track.php?page=http://www.cnn.com" target="_blank">cnn.com</a></p>
<p><a href="track.php?page=http://www.yahoo.co.uk" target="_blank">yahoo.co.uk</a></p>
是否有任何方法阻止某人直接访问track.php

非常感谢您的帮助,谢谢



我对补充问题表示歉意: 如果我想去掉
http://www.
url的一部分我可以修改track.php代码如下:

mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("mydb1") or die(mysql_error());

$redirect = mysql_real_escape_string($_GET['page']);
$redirect2 = parse_url($redirect, PHP_URL_HOST);
$redirect2 = preg_replace('/^(www\.)/i', '', $redirect2);
$ipaddress = $_SERVER["REMOTE_ADDR"];

$page_insert = mysql_query("INSERT INTO link_track (myurl, myip1, mydate) VALUES ('$redirect2', '$ipaddress', now())") or die(mysql_error());

header("Location: $redirect");

您可以通过
session

    session_start();
    $_SESSION['user'] = 1;

    if(!isset($_SESSION['user'])) {
    header("location:links.php");
    }else {
// your insert query
}

您可以通过
session

    session_start();
    $_SESSION['user'] = 1;

    if(!isset($_SESSION['user'])) {
    header("location:links.php");
    }else {
// your insert query
}

你不能阻止别人直接访问它,因为你的链接需要可以通过网络访问,但是你可以处理URL查询字符串不包含页面参数的异常情况

范例

if (empty($_GET['page'])) {
   header("HTTP/1.0 400 Bad Request", true, 400);
   exit('400: Bad Request');
} else {
   // code from current track.php

}

你不能阻止别人直接访问它,因为你的链接需要可以通过网络访问,但是你可以处理URL查询字符串不包含页面参数的异常情况

范例

if (empty($_GET['page'])) {
   header("HTTP/1.0 400 Bad Request", true, 400);
   exit('400: Bad Request');
} else {
   // code from current track.php

}

不,一切都有办法。你可以把它弄糊涂。但是你不能阻止它。你的track.php加载在任何类型的模板中吗?例如:如果你加载正确,它会有一个标题,或者如果它直接加载,它会包含一些东西,而这个标题等不会包含在内?不,任何事情都有办法。你可以把它弄糊涂。但是你不能阻止它。你的track.php是否加载在任何类型的模板中?例如:如果你加载正确,它会包含一个标题,如果它直接加载,则会包含一个标题或其他内容,但不包含该标题等?我为其他问题道歉:我为其他问题道歉:这很危险,因为用户会话可能会被其他用户破坏。这是危险,因为用户会话可能会被其他用户破坏