我是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新手
答案 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));
}
}
}