如果 php 中的其他内容没有给出正确的输出


If else in php does not give a right output

我是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>

它没有给我预期的输出。我期望如果表单为空,它必须返回"请bla bla",否则,如果它不为空,它将返回名称输入。

但输出总是"请呸"

我真的是PHP的新手

=用于分配而不是比较将if ($_POST["name"] = " ")更改为if ($_POST["name"] == "")所以你的如果/否则变成

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

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

到这个if ($_POST["name"] == "") {

您在示例中没有使用比较,而是分配值。

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

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

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

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

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

进行更正,如下所示:

    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表示空字符。

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

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

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

你的代码中有两个错误

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

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

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

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

希望它会起作用。

1.将"文本"字段中
的"名称"属性更改为"名称"2.在提交字段中添加"值"属性,其中值="提交"并更改
名称="表单"3.现在在您的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!";   
         }
     }
 ?>