我需要重定向用户,如果我不想让他们能够访问某个页面。例如header('Location: ../acc/login.php');
有多可靠?浏览器可以忽略302错误,这是正确的吗?提前致谢!PHP header();可靠性
1
A
回答
4
这取决于你想要做的很多事情。技术上说,header()
是有点可靠。只是在一定程度上,因为许多PHP用户有问题,并没有得到它的工作。
如果输出已经发送到浏览器,PHP将阻止它工作。一个激烈的例子:
<protected page content here>
<?php
header('Location: login-first.php');
exit();
?>
这根本行不通。你甚至最终会看到一条带有警告的错误消息。
头部 - 由设计 - 需要在任何其他内容(响应主体)之前发出。如果响应主体已经启动,那么它们不能再发送,PHP在这种情况下不能帮助你。
但是,如果您在响应正文前发送头文件,该函数将起作用。显然也搞乌龙的危险不在于激烈的任何更长的时间,太:
<?php
header('Location: login-first.php');
exit();
?>
<protected page content here>
4
0
浏览器可忽略header('Location: ');
转发。
这就是为什么你应该总是返回一个header()转发后,所以如果浏览器不遵守转发,你的代码的其余部分不会执行。
这是做事情的正确方法。
0
在显示页面的其余部分之前,我会发送header命令然后退出命令“exit()”(以停止在服务器上运行php代码)。这样,即使用户忽略了302重定向,也永远不会发送页面内容。
是的,用户可以忽略302重定向:
+0
谢谢 - 您的回答解释了很多。谢谢! – Andrey
0
header
是100%可靠。
但是header('Location: ../acc/login.php')
将在浏览器中评估到您网站上的真实位置,而../acc/login.php无法形成有效的网址!
相关问题
- 1. 可靠性PHP的$ _ SERVER [“REMOTE_ADDR”]
- 2. Xeround可靠性
- 3. PHP - 会话安全性和可靠性
- 4. SqlDependency可靠性?
- 5. 流可靠性
- 6. Qpid可靠性
- 7. Optimizely可靠性
- 8. RAMDisk可靠性
- 9. Kryonet可靠性
- 10. Logback可靠性
- 11. Mimetypes在上传中的可靠性(PHP)
- 12. 可靠性和WCF
- 13. FirebaseInstanceId.getInstance()。getToken()可靠性
- 14. Lucene docID可靠性
- 15. AndroidBillingLibrary的可靠性
- 16. C2DM的可靠性
- 17. S3高可用性+备份可靠性
- 18. $ _SERVER ['REQUEST_URI']的可靠性?
- 19. noexcept和可靠性保证
- 20. 可靠性在localhost通信
- 21. Content-Type的可靠性:image?
- 22. 快照的可靠性
- 23. Elasticsearch单节点可靠性
- 24. HttpCapabilitiesBase.Type物业 - 可靠性
- 25. NuGet饲料的可靠性
- 26. Android ID及其可靠性
- 27. InvokeAsync为了可靠性
- 28. Microsoft.Expression.Encoder.MediaItem的可靠性如何?
- 29. 范围可靠的属性
- 30. Fluentd td-agent的可靠性
如果不退出该重定向后,脚本,搜索引擎可以忽略它和索引以下内容。 – DCoder
302不是错误,它是正面的回应码。 – Ozerich
这是正确的方式,所有现代浏览器都支持它。 – Serge