2014-07-25 113 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