-1

私はこのPHPコードを持っています:

<?php
    $score11 = $_POST['passmarks12'];

    if($_POST['passmarks12'] > 100){
        $grade11 = "";
    }
    elseif ($_POST['passmarks12'] < 45){
        $grade11 = "Fail";
    }
    $strg = " $grade11";

    echo $strg;

?>

送信内容に関係なく、コードは常に「失敗」と出力されます。

空白または無効な入力を渡すと失敗するようにしたい。

また、入力を適切にクレンジングするにはどうすればよいですか?

4

4 に答える 4

1

これを試して:

<?php

    //$_POST['passmarks12'] = '';

    if(empty($_POST['passmarks12']) || $_POST['passmarks12'] > 100)
    {
        $grade11 = "";
    }

    else if ($_POST['passmarks12'] < 45){

        $grade11 = "Fail";
    } else{
            $grade11 = "Pass";
    }
    $strg = " $grade11" ;

    echo $strg;

    ?>
于 2013-05-19T08:52:49.600 に答える
1

ポイント:

  1. $_POST['key']を使用して存在するかどうかを確認しissetます。
  2. $_POST['key']有効なデータ型stringを持っているかどうかを確認します。それは配列
    として来るかもしれません。
  3. $_POST['key']有効な数値形式がある かどうかを確認します。
  4. $_POST['key']を使用して(String)45(Integer)を比較しintvalます。

例:

<?php

switch (true) {

    case !isset($_POST['passmarks12']):
    case !is_string($score = $_POST['passmarks12']):
    case !is_numeric($score):
        $result = 'Error (Invalid parameter)';
        break;
    case (intval($score) < 45):
        $result = 'Fail (Less than 45)';
        break;
    default:
        $result = 'Success (No less than 45)';

}

echo $result;
于 2013-05-19T08:53:47.577 に答える
0

私はあなたが欲しいと思います

elseif ($_POST['passmarks12'] < 45 && !empty($_POST['passmarks12']))
于 2013-05-19T08:48:14.707 に答える
-1

この PHP コードは$_POST、100 と比較する前に が空でないことを確認します。

<?php
    $score11 = $_POST['passmarks12'];

    if(empty($_POST['passmarks12']) || $_POST['passmarks12'] > 100)
        $grade11 = "";

    elseif ($_POST['passmarks12'] < 45)
        $grade11 = "Fail";

    $strg = " $grade11" ;

    echo $strg;

?>
于 2013-05-19T08:49:34.557 に答える