我用POST创建了一个不起作用的脚本

时间:2013-04-28 20:46:07

标签: php post

我的第一个代码如下。 请告诉我这是什么问题 的 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" ;
    } 
?>

此脚本无效。请告诉我问题出在哪里。

4 个答案:

答案 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}}