PHP echo函数在Safari中失效及源码显示问题求助
问题分析与解决
1. 请求方法不匹配(核心问题)
你的HTML表单用的是method="post",但PHP代码里却在读取$_GET["query"]——两者请求方式不对应,自然拿不到输入的查询内容。
解决办法二选一:
- 改表单请求方法为GET:将
<form action="Searching.php" method="post">修改为<form action="Searching.php" method="get">,这样PHP里的$_GET["query"]就能正常获取值。 - 改PHP代码读取POST数据:把
$_GET["query"]替换成$_POST["query"],保持表单的POST方法不变。
2. PHP文件直接显示源码的问题
如果执行后PHP文件直接输出源码,说明你的服务器没有配置PHP解析功能,常见原因包括:
- 未搭建PHP运行环境(比如没装XAMPP、WAMP这类集成环境);
- 服务器(如Apache)未设置将
.php文件交给PHP处理器解析; - 文件后缀错误(比如写成
.html,即使里面有PHP代码,服务器也只会按纯HTML解析)。
先确保你已搭建正常运行的PHP环境,比如用XAMPP启动Apache和PHP服务,再把文件放到服务器根目录(如XAMPP的htdocs文件夹)中访问。
修改后的测试代码示例
方案一:表单用GET方法
HTML文件:
<html> <head> <title>Search Test</title> </head> <body> <form action="Searching.php" method="get"> Search: <input type="text" name="query"> <input type="submit"> </form> </body> </html>
Searching.php文件:
<html> <body> <p> Search: </p> <?php echo htmlspecialchars($_GET["query"]); ?><br> </body> </html>
方案二:表单用POST方法
Searching.php文件修改为:
<html> <body> <p> Search: </p> <?php echo htmlspecialchars($_POST["query"]); ?><br> </body> </html>
注:htmlspecialchars()用于防止XSS攻击,正式开发和测试阶段都建议加上,养成安全编码习惯。
内容的提问来源于stack exchange,提问作者Slothscript
相关产品推荐
相关产品推荐

