PHP脚本未返回变量


PHP script not returning a variable

我已经获取了以下代码,并将它们放在各自的文件中。我在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>