-2

我的第一个代码如下。请告诉我 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>

欢迎.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" ;
    } 
?>

此脚本不起作用。请告诉我问题出在哪里。

4

4 回答 4

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,您需要将字符串与 a 连接.或使用花括号将变量放在双引号内。你会想要检查是否$number被设置(如果它不在,$_POST那么它会在你的 if 语句中生成一个警告)。

最后,您要确保将输入转换为正确的类型,并对它们进行清理以防止 SQL 注入、跨站点脚本和其他攻击(这在我的示例中未显示)。

于 2013-04-28T20:47:42.130 回答
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" ;
} 
于 2013-04-28T20:49:50.140 回答
1

$number 或 $name 都没有定义我认为你打算这样做:

if(isset($_POST["number"]))
{$number=$_POST["number"];}
if(isset($_POST["name"]))
{$name=$_POST["name"];}
于 2013-04-28T20:50:09.710 回答
0

试试这个......另外,检查$number唯一的 if 是否$_POST已设置并且不为空......回显也是错误的。

<?php
    if( !empty($_POST) )
        $number = $_POST["number"];
        $name = $_POST["name"];
        if($number<33) {
            echo "hello $name you have been failed" ;
        } 
    }
?>
于 2013-04-28T20:50:57.900 回答