我已经获取了以下代码,并将它们放在各自的文件中。我在Firefox中打开了register.html,在表单中输入所需的详细信息后,它会加载welcome.php,尽管没有输入信息。加载的页面简单地写道:"欢迎!你已经岁了!"
两个文件都存储在同一个文件夹中。
关于我做错了什么,有什么建议吗?
register.html
<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="fname" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>
welcome.php
Welcome <?php echo $_POST["fname"]; ?>!<br />
You are <?php echo $_POST["age"]; ?> years old.
</body>
</html>
对于Apache:
1) 确保mime
模块打开。
2) 尝试在同一目录中制作一个.htaccess
文件,其中包含以下内容:
AddType application/x-httpd-php .php
只有当rewrite
模块打开时,这才会起作用。
3) 否则,如果您有权访问httpd.conf
文件,请尝试在其中的某个位置添加该行,而不添加.htaccess
文件。
请确保在对httpd.conf
进行更改时重新启动服务器。
编辑:
我还应该提到查看页面的源代码,看看PHP代码是否在其中。这将使这些步骤变得必要。
另一种故障排除技术是在页面顶部添加<?php error_reporting(E_ALL); ?>
,以防PHP实际上正在运行,并且没有错误。如果它被禁用,它将启用报告Undefined index
通知。这种情况似乎极不可能发生,但这似乎也是一个有用的步骤,可以帮助我们准确地了解发生了什么。再说一遍,我很确定PHP只是没有执行。
关闭您的body标签。
<body>
不是
<body
我使用了您发布的代码,即使使用了损坏的body标记,它仍然有效。
您应该查看一下您的apache安装,并检查它是否正常工作。
我建议您运行一个简单的phpinfo测试,它基本上是一个文档(以.php结尾),其中只有以下内容:
<?php phpinfo(); ?>
您可以使用此
<?php
if ($_POST) {
extract($_POST);
if (!empty($fname) || !empty($age)) {
echo 'First Name: '.$fname.' Age: '. $age;
} else {
echo 'Enter first name and age';
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Form</title>
</head>
<body>
<form action="" method="post">
Name: <input type="text" name="fname" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>