HTML环境中PHP脚本运行的程序选择与配置问题咨询
解决PHP运行环境与表单提交问题
兄弟,我太懂你这种感受了——刚学PHP的时候,环境配置确实比语法本身难多了!我来一步步帮你理清这些问题:
一、为什么提交表单会弹出“选择程序打开PHP文件”?
这是因为PHP是服务器端脚本语言,不能直接用浏览器打开本地的.php文件。浏览器本身没有解析PHP代码的能力,直接打开的话,它只会把PHP文件当成普通的未知格式文件,所以会让你选择程序打开。
你需要通过Web服务器(比如Apache、Nginx)来运行PHP——服务器会先解析PHP代码,把结果转换成纯HTML再发送给浏览器。
最快的解决办法:用集成环境
新手最推荐用XAMPP或WAMP这类集成环境,它们会帮你一键装好Apache(Web服务器)、PHP、MySQL,不用手动配置各种参数:
- 安装完成后,把你的所有PHP/HTML文件放到集成环境的网站根目录:
- XAMPP的根目录是
htdocs文件夹 - WAMP的根目录是
www文件夹
- XAMPP的根目录是
- 启动集成环境里的Apache服务(比如XAMPP控制面板里点Start Apache)
- 打开浏览器,输入
http://localhost/你的文件名.php,就能正常访问并运行PHP代码了
二、你的表单代码有个小问题!
看你写的表单:
<!DOCTYPE html> <html> <head> </head> <body> <form action="welcome.php" method="get"> Name: <input type="text" name="name"> <br> E-mail: <input type="text" name="email"> <br> <input type="submit"> </body> </form>
表单用的是method="get",但你的welcome.php里用的是$_POST来获取数据:
<html> <body> Welcome <?php echo $_POST["name"]; ?><br> Your email address is: <?php echo $_POST["email"]; ?> </body> </html>
这会导致你拿不到提交的数据!你需要二选一:
- 把表单的
method改成post:<form action="welcome.php" method="post"> - 或者把PHP里的
$_POST改成$_GET:echo $_GET["name"]
三、关于“HTML环境中运行PHP+隐藏PHP后缀”的细节
1. 让HTML文件能运行PHP代码
默认情况下,.html文件不会被服务器解析成PHP。如果想在HTML里写PHP代码,有两种方式:
- 最简单的:把HTML文件的后缀改成
.php,比如把index.html改成index.php,这样里面的PHP代码就能被服务器解析了 - 进阶配置(不推荐新手):修改Web服务器的配置文件,让
.html文件也能解析PHP。比如Apache里,在httpd.conf里添加:
然后重启Apache即可。AddType application/x-httpd-php .html .htm
2. 隐藏浏览器地址栏的PHP后缀
可以用Web服务器的URL重写功能来实现,以Apache为例:
- 先确保Apache开启了
mod_rewrite模块:打开XAMPP的httpd.conf文件,找到#LoadModule rewrite_module modules/mod_rewrite.so,把前面的#删掉,保存后重启Apache - 在你的网站根目录创建一个
.htaccess文件(注意文件名前面有个点),写入以下内容:
这样访问RewriteEngine On # 比如想把welcome.php变成/welcome RewriteRule ^welcome$ welcome.php [NC,L] # 如果想把所有.php后缀都隐藏,比如xxx.php变成/xxx RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.phphttp://localhost/welcome就会实际指向welcome.php,地址栏里看不到.php后缀了。
按照上面的步骤来,你的PHP程序应该就能正常运行啦!
内容的提问来源于stack exchange,提问作者AkaLee
相关产品推荐
相关产品推荐

