如果在PHP中没有给出正确的输出

时间:2016-03-06 06:22:28

标签: 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”,否则,如果它不是空白,它将返回名称的输入。

但输出总是“请bla bla”

我是PHP新手

6 个答案:

答案 0 :(得分:1)

=用于分配而非比较 将if ($_POST["name"] = " ")更改为if ($_POST["name"] == "") 所以你的if / else变成了

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

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

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

进行如下所示的更正:

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

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

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

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

如果用户输入多个空格或特殊字符,这再次无法达到预期效果。

注意:

\0表示空字符。

答案 3 :(得分:0)

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

还有一个问题$var == " "不正确,它会将空格空间视为值"" != " "

您还可以在示例中使用empty()

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

答案 4 :(得分:0)

检查您是否在POST参数中传递了一些数据,如下所示。

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

}

请勿忘记trim以避免空白字符提交。

您的代码中有两个错误

  • 您必须使用==运算符而不是=运算符来检查用户输入。

  • 您正在将用户输入与" "进行比较,即空白字符,只有当用户在输入字段中添加一个空格字符时才会生效。

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

因此,您必须检查用户是否按下了submit按钮,然后才需要显示错误消息。

希望它能运作。

答案 5 :(得分:0)

1.在“文本”字段中用“名称”更改“名称”属性
2.在提交字段中添加“value”属性,其中value =“submit”并在同一个中更改name =“Form” 3.现在你的php代码检查表单是否已提交 然后只检查是否有空名称

Graph<MyNode, MyEdge> graph = new DirectedSparseGraph<>();

for (i = 0; i < num_nodes; i++) {
  // you can skip this if you have no isolated nodes in your graph
  graph.addNode(new MyNode(i));
  for (j = 0; j < num_nodes; j++) {
    if (matrix[i][j] != 0) {
      graph.addEdge(new MyEdge(), new MyNode(i), new MyNode(j));
    }
  }
}