我的PHP脚本看起来应该可以工作,那么为什么';不是吗?

我的PHP脚本看起来应该可以工作,那么为什么';不是吗?,php,Php,我正在为我的网站制作一个留言簿。我现在有一个基本的HTML表单: <form action="submit.php" method="post"> Name: <input type="text" value="Julian Davis" name="name"readonly><br> E-mail (Not published) <input type="text" name="email"><br> Message:

我正在为我的网站制作一个留言簿。我现在有一个基本的HTML表单:

<form action="submit.php" method="post">
  Name: <input type="text" value="Julian Davis" name="name"readonly><br>
  E-mail (Not published) <input type="text" name="email"><br>
  Message: <input name="message" rows="5" cols="40"><br>
  <input type="submit">
</form>

名称:
电子邮件(未发布)
信息:
(只读的名称字段是gag的一部分)。它使用HTTP POST将结果发送到submit.php,如下所示:

<?php

if strlen($_POST["message"]) = 0 {
  echo "You didn\'t type a message. Don't you want people to hear 
  what you have to say?";
}

else if strlen($_POST["message"]) > 499 {
  echo "Messages are limited to 500 characters. Try again.";
}

else{
  echo "Your response has been received. Cheers!";
}
?>

许多问题:

<?php
    if (strlen($_POST["message"]) == 0) {
        echo "You didn\'t type a message. Don't you want people to hear what you have to say?";
    }

    elseif (strlen($_POST["message"]) > 499) {
        echo "Messages are limited to 500 characters. Try again.";
    }

    else {
        echo "Your response has been received. Cheers!";
    }
?>
  • 所有语句中都应该包含
    (…)
    ,整个语法都是错误的!学好PHP

    if (expr)
      statement
    
  • 第一个应该是
    =
    ,而不是
    =

    有很多问题可以回答这个问题。看

    • =
      是赋值运算符。这意味着,将为左侧变量分配一个新值
    • ==
      是您需要的,它是一个比较运算符。检查左侧和右侧是否相等
    • =
      是严格的比较运算符,它检查数据的值和类型
  • 如果
  • ,最好使用而不是

    如评论中所述,请注意,仅当使用上述示例中的花括号时,elseif和elseif才会被视为完全相同。使用冒号定义if/elseif条件时,不能将else if分隔为两个单词,否则PHP将因解析错误而失败。”

    更正代码:

    <?php
        if (strlen($_POST["message"]) == 0) {
            echo "You didn\'t type a message. Don't you want people to hear what you have to say?";
        }
    
        elseif (strlen($_POST["message"]) > 499) {
            echo "Messages are limited to 500 characters. Try again.";
        }
    
        else {
            echo "Your response has been received. Cheers!";
        }
    ?>
    

    您在第一个条件语句中赋值。在
    if
    中,您缺少围绕条件的括号。您不是从代码中得到语法错误吗?不使用此命令,显然@Darragh可能是我一整天看到的最有用的PHP命令。“如果“-”,最好使用elseif而不是elseif”注意:请注意,仅当使用上述示例中的花括号时,elseif和elseif才会被视为完全相同。当使用冒号定义if/elseif条件时,不能将else if分隔为两个单词,否则PHP将因解析错误而失败。“@Fred ii-好吧,那很好。我们在这里使用大括号,对吗?此外,我要求OP仅使用
    elseif
    。它们当然是。这只是未来访问者的旁注。然而,”第一个应该是
    =
    ,而不是
    =
    “如果我的评论恰好消失了,添加他们是分配而不是比较的事实将改进答案;-)做得很好,干杯,没问题。我可能认为我错了。我自己有时确实喜欢使用较大的按钮来输入某些内容。但在这种情况下,很明显他们应该/想要使用
    ,给定“消息”。要写出一条长消息作为输入是很困难的。哎呀!
    <textarea rows="4" cols="50">
    
    <input type="text" name="input_name" maxlength="4" size="4">