2016-03-06 104 views
-1

我是PHP新手,所以我为练习做了第一个练习,并且我无法确定我的代码中存在问题。如果其他在PHP中没有给出正确的输出

<!DOCTYPE html> 
<html> 
<head><title>PHP activity</title></head> 

<form action="act1.php" method="post"> 
Name: <input type="text" name="name"><input type="submit"> 

</form> 
    <?php 

if ($_POST["name"] = " ") { 
    echo "Please Enter Your Name!"; 
} 
else { 
echo $_POST["name"]; 
} 
?> 
</html> 

它不给我我的预期输出。我期待如果表单为空,它必须返回“Please bla bla”,否则,如果它不是空白的,它将返回名称的输入。

但产量始终是 “请喇嘛喇嘛”

我真的很新,以PHP

+0

如果尤尔问题解决接受最好的答案 – devpro

回答

1

=是分配不比较 变化if ($_POST["name"] = " ")if ($_POST["name"] == "") 所以你的if/else变得

if ($_POST["name"] == "") { 
    echo "Please Enter Your Name!"; 
} 
else { 
echo $_POST["name"]; 
} 
+0

如果你不知道关于这一点,那很好。我认为。 –

1

更改此行if ($_POST["name"] = " ") {

对此if ($_POST["name"] == "") {

0

因为您使用了错误的运算符进行比较。

  • =用于将值赋予变量。 $x=5;表示x的值已设置为5.
  • ==用于比较。 $x==5;将返回true如果$x的值是5

改正的,如下图所示:

if ($_POST["name"] ==" ") 
{ 
echo "Please Enter Your Name!"; 
} 
else 
{ 
echo $_POST["name"]; 
} 

而且我想,你是检查是否$_POST["name"]为空或不在if条件。但只有在$_POST["name"]的值为空格时才会输入您的if block。它可能不适用于多个空间,并且根本没有输入。

您可能需要的条件更改为:

if ($_POST["name"] =="\0" || ($_POST["name"] ==" ")

这又是行不通的期望,如果用户输入多个空格或特殊字符。

注:

\0意味着空字符。

0

您在示例中未使用比较来分配值。

还有一个问题$var == " "其不改正将考虑空的空间价值"" != " "

您还可以使用empty()在你的榜样是:

if (empty($_POST["name"])) { 
    echo "Please Enter Your Name!"; 
} else { 
    echo $_POST["name"]; 
} 
0

检查您的传入POST参数像一些数据下面。

if (trim($_POST["name"]) == "") { 

} 

不要忘记trim,以避免空白字符提交。

你在你的代码

  • 两个错误您可以选择使用==运营商,而不是运营商=检查用户输入。

  • 您正在比较用户输入和" "即空白字符,只有当用户在输入字段中添加一个空格字符时才会成立。

注意:每次访问该页面时都会执行此条件。

所以,你必须检查用户是否按下submit按钮,然后只有你必须显示错误信息。

希望它能工作。

0

1.更改为“姓名”,在“文本”字段中的“名称”属性
2.加“值”属性在提交场下value =在同一
“提交”,并更改名称=“表单” 3.Now在你的PHP代码检查表单是否已经提交,如果提交 然后只检查是否存在空的名字或不

Name:<input type="text" name="Name"/> 
    <input type="submit" name="Form" value="submit"/> 
<?php 
    if($_POST["Form"]) 
    { 
     if ($_POST["Name"]) { 
      echo $_POST["Name"]; 
     } 
     else { 
      echo "Please Enter Your Name!"; 
     } 
    } 
?> 
相关问题