我是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!";
}
}
?>