如何拒绝访问url参数的一部分?

时间:2014-03-25 16:37:06

标签: php .htaccess url parameters url-redirection

例如。说我有这个网址。

http://www.mywebsite.com/posts.php?id=54

如何确保我无法访问该页面?

http://www.mywebsite.com/posts.php

另外,如果有人输入了不存在的ID,我该如何阻止/重定向?

4 个答案:

答案 0 :(得分:1)

在PHP中使用逻辑。

如果未提供id,则会发出404状态和错误消息,而不是常规页面。

如果您从数据库查询中得不到任何结果,我假设您正在制作,那么请执行相同操作。

答案 1 :(得分:0)

首先,检查$_GET['id']是否为空。如果是,则显示“您无权访问该页面”之类的消息,或者只是发送404 HTTP标头 然后查询您的数据库以查找提供的Id是否存在。小心!因为Id是由用户输入的,所以使用PDO或类似的东西来防止SQL注入 如果数据库中不存在Id,请执行header("location: ...");将用户重定向到某个页面,或者再次发送404 HTTP标头。
注意:您应该在任何echo调用之前执行此操作或使用输出缓冲(ob_*函数)。

答案 2 :(得分:0)

如果ID不存在:

header('HTTP/1.x 404 Not Found');
header("Status: 404 Not Found");
include_once '404.php';

404.php - 自定义404状态页面。

答案 3 :(得分:0)

Manual php.net url_parser()

使用这样的:

` $ url =' http://username:password@fernandohcorrea.com.br/path?arg=value#anchor';

的print_r(parse_url($ URL));

echo parse_url($ url,PHP_URL_PATH);