$ _POST不会回显html的原因是什么?

时间:2015-11-21 04:40:29

标签: php html post echo

我是PHP的新手并试图解决这个问题。我一直无休止地在互联网上寻找答案,但我发现的任何内容,即使在这个网站上也没有帮助。发布了大量类似的问题,但我没有看到任何已解决问题的答案。一般的问题是我的php文件不会回显我的HTML代码。

我直接从在线教程中获取此代码(它在该网站上运行)但是当我尝试从我的计算机运行它时,它不起作用。调用php代码,但echo部分为空。我从我的AppServ www目录运行它(Windows,如果这有任何区别)。

HTML文件" Testing.html":

<html> 
<body>

<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>

</body>
</html>

PHP文件&#34; welcome.php&#34;:

<html>
<body>

Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>

</body>
</html>

我尝试的事情:

  1. 将两者保存为.php文件
  2. 使用$ _REQUEST而不是$ _POST
  3. 将ids和名称添加到html文件中的输入项
  4. 从其他目录运行
  5. 我没有想法!有什么建议吗?

2 个答案:

答案 0 :(得分:2)

在页面

上打印之前,您需要首先检查天气是否已设置$_POST

您可以使用isset()功能执行此操作,如下所示

isset($_POST["name"])

您的代码容易受到 XSS

的攻击
  

在渲染回浏览器之前,您必须清理任何用户输入

只需使用htmlspecialchars();

 htmlspecialchars($_POST["name"], ENT_QUOTES, 'UTF-8');

好读:

  1. XSS cheat sheet
  2. PHP the right way

答案 1 :(得分:0)

啊,解决了。我将端口号放入url(例如localhost:8080),现在一切都很顺利。感谢大家的帮助!