Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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 带有报告功能的html中的404页错误_Php_.htaccess - Fatal编程技术网

Php 带有报告功能的html中的404页错误

Php 带有报告功能的html中的404页错误,php,.htaccess,Php,.htaccess,我一直试图让一个错误页面(404)工作,它确实工作,但我无法让它报告用户试图访问的文件 在脚本中,我调用了REQUEST_URI $requri=getenv(“请求URI”); 我也试过了 $requri=($_服务器['REQUEST_URI']) 他们似乎都报告了“404.php”,这是错误页面本身,而不是他们写的错误地址 我不知道为什么它认为错误页面是请求的页面。。。 除非使用.htaccess命令; 错误文档404 有故障,但我不认为有故障。您应该(1)使用路由器处理应用程序中的404

我一直试图让一个错误页面(404)工作,它确实工作,但我无法让它报告用户试图访问的文件

在脚本中,我调用了REQUEST_URI

$requri=getenv(“请求URI”); 我也试过了 $requri=($_服务器['REQUEST_URI'])

他们似乎都报告了“404.php”,这是错误页面本身,而不是他们写的错误地址

我不知道为什么它认为错误页面是请求的页面。。。 除非使用.htaccess命令; 错误文档404
有故障,但我不认为有故障。

您应该(1)使用路由器处理应用程序中的404,而不是使用
ErrorDocument
,或者(2)使用
重写规则,如中所示

一旦您完成上述操作,
$\u服务器['REQUEST\u URI']
确实是您想要的。但你不应该以原始的形式重复它。它很容易控制攻击。相反,假设您只是在屏幕上显示它(而不是在HTML标记的参数中),您将使用
htmlentities()
,如中所示

echo htmlentities($_SERVER['REQUEST_URI']);

实际上,您希望使用
$\u服务器[“重定向URI”]
。 我只是查了一下,有时候我会使用
htmlspecialchars(strip\u标记(stripslashes($\u SERVER[“REQUEST\u URI”]))


但是请注意,我建议您使用
ErrorDocument 404/404.php
(本地而不是完整的url)进行重定向(或者甚至使用单个
/error.php
进行多个状态代码,例如401和403,并评估
$\u服务器[“REDIRECT\u status”]

哪个框架,可能有一些代码?可能重定向到404.php页面。试试
$\u服务器['HTTP\u REFERER']
.Frameworks?我对这一点很陌生xss不是一个问题(我认为),实际上我对这一切都很陌生,但我基本上希望系统发送一封包含错误信息的邮件。@JoBe xss绝对是一个问题;它是最普遍的攻击媒介之一。一般来说,你不应该信任任何类型的用户输入,请求的URL绝对是用户输入。好吧,我不是想说xxs不是问题,我甚至不知道它是什么,但不管它是什么,它肯定不会干扰php通过邮件将字符串发送给我?@JoBe it肯定会引起问题。XSS在电子邮件中的问题要比在网页中少,但这并不意味着你可以忽略它。还有其他类型的注入可以在电子邮件上下文中使用。同样,规则总是将数据视为危险的,即使你不知道如何在攻击中使用它。好吧,我从来没有听说过,我想我需要查找它,thx的提示。这个很好,分类l显然,如果你写完整的路径(),服务器会将错误404 php文件作为Uri调用,但正如Hagen von Eitzen(/404.php)所建议的那样,在本地调用是有效的!