我的第一个代码如下。 请告诉我这是什么问题 的 test.php的
<html>
<title>Speaker</title>
<body>
<form action="welcome.php" method="post" enctype="multipart/form-data">
Name: <input type="text" name="name">
Number: <input type="text" name="number">
<input type="submit">
</body>
</html>
的welcome.php
<?php
if(isset($_POST["number"]))
{$_POST["number"]=$number;}
if(isset($_POST["name"]))
{$_POST["name"]= $name;}
if($number<33)
{echo "hello" "$name" "you have been failed" ;
}
?>
此脚本无效。请告诉我问题出在哪里。
答案 0 :(得分:4)
您正在向后设置变量。它应该看起来像:
if( isset($_POST["number"]) ){
$number = (int) $_POST["number"];
}
if( isset($_POST["name"]) ){
$name = $_POST["name"];
}
if( isset($number) && $number<33 ){
echo "hello {$name} you have been failed";
}
我还建议使用更标准的if/else
样式,就像在我的示例中一样,在较大的语句中更容易阅读。您的echo
中还有一个错误,您需要将字符串与.
连接起来,或者使用花括号将变量放在双引号内。您需要检查$number
是否已设置(如果它不在$_POST
中,那么它将在您的if语句中生成警告。)
最后,您要确保将输入转换为正确的类型,并对它们进行清理以防止SQL注入,跨站点脚本和其他攻击(这在我的示例中未显示)。
答案 1 :(得分:1)
您没有设置变量,这就是您无法打印的原因。要设置任何变量,您应首先声明cariable本身,然后给它一个值。所以它应该是
if(isset($_POST["number"])){
$number = $_POST["number"];
}
if(isset($_POST["name"])){
$name = $_POST["name"];
}
if($number<33) {
echo "hello".$name." you have been failed" ;
}
答案 2 :(得分:1)
未定义$ number或$ name 我想你打算这样做:
if(isset($_POST["number"]))
{$number=$_POST["number"];}
if(isset($_POST["name"]))
{$name=$_POST["name"];}
答案 3 :(得分:0)
试试这个...另外,只有$number
设置为$_POST
并且不为空时才检查<?php
if( !empty($_POST) )
$number = $_POST["number"];
$name = $_POST["name"];
if($number<33) {
echo "hello $name you have been failed" ;
}
}
?>
...回声也是错误的。
{{1}}