Php 检查空文本框帮助错误的验证

Php checking validation for empty textboxt help error

我需要帮助。代码似乎有一个错误:它说我没有定义 index:number,但我已经用名称编号为我的文本框声明了一个名称。我还写了 if $_POST['number'] == '' 的代码,但似乎没有解决这个问题。请帮助我。

<html>
        <head>
            <title>SUBMIT</title>
        </head>
        <body>
        <form action="" method='post'>
            <input type='text' name='number'><br><br>
            <input type='submit' name='celsius' value='celsius'>
            <input type='submit' name='fahrenheit' value='fahrenheit'>
            </form>
            <?php
                function celsius($x){
                        $cel=($x -32) * 5/9;
                        return $cel;


                }
                function fahrenheit($x){
                        $far=$x * 9/5 + 32;
                        return $far;


                }

                if($_POST['number']== ""){
                        echo 'plese input a number';

                }
                else if($_POST['number'] != is_numeric($_POST['number'])){

                    echo 'type only numbers';

                }
                else if(isset($_POST['celsius'])){
                        $x=$_POST['number'];
                        if($_POST['celsius']){

                            echo $x.' Fahrenheit is '.celsius($x);

                        }





                }else if(isset($_POST['fahrenheit'])){
                    $x=$_POST['number'];
                        if($_POST['fahrenheit']){

                            echo $x.' Fahrenheit is '.fahrenheit($x);

                        }

                }


            ?>
        </body>
    </html>

我认为您应该检查 $_POST['number'] 是否已设置,所以:

if(isset($_POST['number'])==""){
// do some stuff
} else {
// do some more stuff
} etc ...

尝试在整个 php 代码中包含一个 if 语句来检查 post 是否已设置

<?php
   if (isset($_POST['number'])) {

      // all the php code

   }
?>

这是更新后的工作版本:D

<html>
    <head>
        <title>SUBMIT</title>
    </head>
    <body>
    <form action="" method='post'>
        <input type='text' name='number'><br><br>
        <input type='submit' name='celsius' value='celsius'>
        <input type='submit' name='fahrenheit' value='fahrenheit'>
        </form>
        <?php
            function celsius($x){
                    $cel=($x -32) * 5/9;
                    return $cel;


            }
            function fahrenheit($x){
                    $far=$x * 9/5 + 32;
                    return $far;


            }

            if(isset($_POST['number'])){


             if($_POST['number']==''){
                 echo 'please input a number';

             }
            else if($_POST['number'] != is_numeric($_POST['number'])){

                echo 'type only numbers';

            }
            else if(isset($_POST['celsius'])){
                    $x=$_POST['number'];
                    if($_POST['celsius']){

                        echo $x.' Fahrenheit is '.celsius($x);

                    }





            }else if(isset($_POST['fahrenheit'])){
                $x=$_POST['number'];
                    if($_POST['fahrenheit']){

                        echo $x.' Fahrenheit is '.fahrenheit($x);

                    }

            }
            }


        ?>
    </body>
</html>

我仍在学习 PHP 我自己所以使用了您的代码并尽力修复它。我也改变了一些东西。看起来好像函数的数学设置错误但可能是我(我改变了一点)而且我不太喜欢使用 "else if" 语句所以我只使用 "if" 和 "else",本来打算尝试使用 catch and switch,但改变了主意。

如果有人让我知道他们对我为自己的学习而对他的文件所做的更改的看法,我将不胜感激。 (我本可以做不同的事情,或者即使我做错了。)

此处为工作示例 --> projects/calculatetemp/

<form action="" method='post'>
<input type='text' name='number'><br><br>
<input type='submit' name='Celsius' value='Celsius'>
<input type='submit' name='Fahrenheit' value='Fahrenheit'>
</form>
<?php
error_reporting(-1);
ini_set('display_errors', 'On');
function celsius($x){
    $cel=$x*9/5+32;
    return $cel;
}

function fahrenheit($x){
    $far=5/9*($x-32);
    return $far;
}

if(isset($_POST['number'])){
    if(!empty($_POST['number'])){
        if($_POST['number'] != is_numeric($_POST['number'])){
            echo 'type only numbers';
        }else{
            if(isset($_POST['Celsius'])){
                $x=$_POST['number'];
                if($_POST['Celsius']){
                    echo $x.' Celsius = '.celsius($x).' Fahrenheit';
                }
            }
            if(isset($_POST['Fahrenheit'])){
                $x=$_POST['number'];
                if($_POST['Fahrenheit']){
                    echo $x.' Fahrenheit = '.fahrenheit($x).' Celsius';
                }
            }
        }
    }else{
        echo 'You have to input a value';
    }
}else{
    echo 'Please input a temperature to have it converted';
}
?>