2013-04-10 105 views
1

我有这样的形式和我的$ _ POST数据不通过驶来的问题(空($ _ POST)!):如果不工作

形式:

<form action="" id="contact-form" method="post"> 

      <input id="nombre" size="16" type="text" placeholder="Nombre"> 

      <input id="email" size="16" type="text" placeholder="Email"> 

      <textarea id="texto"></textarea> 

      <input type="submit" value="Enviar"> 

PHP:

<?php 

if(!empty($_POST) { 

echo "YES"; 

} else { 

echo "NO"; 

} 

?> 

当我完成并提交所有字段时,它总是回应“否”。

+2

您需要为您的输入字段指定'name'属性 – Ejaz 2013-04-10 21:33:39

+0

您还应该检查您的语法,在'if'子句中错过了右括号。 – 2013-04-10 21:34:34

+0

感谢您的帮助! :) – user1925226 2013-04-10 21:54:53

回答

3

您错过了输入字段的name属性。改变你的HTML,并将它们添加:

<form action="" id="contact-form" method="post"> 
    <input id="nombre" name="nombre" size="16" type="text" placeholder="Nombre"> 
    <input id="email" name="email" size="16" type="text" placeholder="Email"> 
    <textarea id="texto" name="texto"></textarea> 
    <input type="submit" value="Enviar"> 

注意,id属性不是必需的。如果你不需要它来用于其他目的,比如在样式表或javascript中使用它,你可以忽略它。只需发送表格name属性是必需的

+0

哦,我的天啊..它太简单了,就在我眼前...我是一个新手,你应该明白..嘿..非常感谢。 .everyone帮助我.. :) – user1925226 2013-04-10 21:48:13

+0

级别完成。进入下一个错误! :)快乐的编码! :) – hek2mgl 2013-04-10 21:49:48

0

您的输入应该有name属性设置,它将它们设置在$ _POST数组中。在发布表单中忽略id

<input id="nombre" size="16" type="text" placeholder="Nombre" name="nombre"> 

,你会得到它$ _ POST [ '农布雷']

1

如果你想要一个特定的领域,尝试:

if(isset($_POST['field']{0})){ 

如果要检查多个字段POST,尝试:

if(count($_POST)>0){ 
+0

总是一个白痴谁来这里赚“分数”,为什么其他负面答复。唯一的原因是帮助和分享,而不是与导入'分数'。 – 2013-04-10 22:17:49

+0

对不起Guilherme ......我对此无能为力......我还没有投票权......但令人难以置信的是,网站上有那么多愚蠢的人被用来帮助其他人而不是拿他们失望......你的回答也是有效的..我刚刚尝试过...... – user1925226 2013-04-10 23:28:34

+0

感谢您回复我的评论。 我真的不关心选票,但不担心这不是你的责任。祝你好运。 – 2013-04-11 13:14:33

0

这是一个替代的解决方案,如果添加“命名”属性对您的输入,它应该工作:

if (count($_POST) == 0) { 

     echo "YES"; 
    } 
    else { 

     echo "NO"; 

     } 
-1

你需要指定一个变量,所以$_POST['email']例如。对于所有的领域尝试;

if(!empty($_POST['Nombre']) && !empty($_POST['email']) && !empty ($_POST['texto'])) { ...

对不起,我在移动设备上,这样的痛苦让所有拼写正确。