2014-07-25 80 views
0

我有一个简单的HTML表单POST/GET在PHP

<!DOCTYPE html> 
<html> 
<form action="trial2.html" method="get"> 
<input type="text" name="name"> 
<input type="submit"> 
</form> 
</html> 

,然后运行该trial2.html

<!DOCTYPE html> 
<html> 
<?php 
$val = $_GET["name"]; 
echo($val); 
?> 
</html> 

我不能工作了,为什么回声不会打印出“名”,虽然它可以打印出通用字符串

我一直在使用w3schools作为参考,但我认为我只是在某个地方愚蠢/完全忽略了这一点。

+0

你的文件是.html而不是.php,我怀疑你已经为.html文件设置了PHP,因为它效率很低。 – t3chguy

+0

是你的服务器设置为在HTML文件中处理PHP?默认情况下,它不会。尝试更改扩展名并查看会发生什么。另外,如果'name'为空将会发生什么? – serakfalcon

+0

**危险**:此代码[易受XSS影响](https://www.owasp.org/index.php/Cross-site_Scripting_(XSS))。用户输入需要在插入HTML文档之前进行转义! – Quentin

回答

4

A .html文件通常不包含PHP代码。

文件重命名为.php延伸和调整你的代码,以重命名的文件,并更改echo到:

echo $val; 
+2

a .html文件*** CAN ***包含PHP代码,很多,但它不会被处理,除非您将服务器配置为处理.html文件扩展名。 – t3chguy

+0

好吧,你总是可以告诉Apache将html文件作为php文件处理,但这就是要点... – serakfalcon

+0

感谢您的快速回复!我将它重命名为.php,但我仍然没有任何回声输出 – Aaron

0

大多数托管公司在HTML文档中没有启用嵌入PHP。因此,请将该文件保存为trial2.php并将其上传到您的服务器。服务器将看到PHP扩展并执行它。 PHP文件中的HTML代码呈现为HTML。

0

我们不能在.html文件中运行PHP,因为除非我们告诉它运行,否则我们的服务器不会运行它。要做到这一点,我们需要在你的web根目录下创建一个的.htaccess文件这行添加到它:

AddType application/x-httpd-php .htm .html 

否则只是从改变你的文件扩展的.html.PHP