0
<html>
<head>
<title> GRADE DETAILS </title>
</head>
<body>

<?php
$myname=$_GET ['myname'];
$mygrade=$_GET ['mygrade'];

if(($myname=='@' or $myname=='!'))
{
    echo "Special character not allowed.";
}

else if($myname==" ")
{
    echo "Please enter your name";

}


else
{
    switch($mygrade)
{
case "";
echo "you did not enter grade";
break;

case A;
echo "Increment 30% of basic salary";
break;

case B;
echo "Increment 10% of basic salary";
break;

default;
echo"Wrong Grade";
break;
}
}

?>
</body>
</html>

if else ステートメントで複数の条件を設定したい..多くの方法を試してみましたが、それでもうまくいきませんでした.誰かが私を助けてくれることを願っています..Switch Case とは関係ありませんが、問題は IF ELSE だけです..PLS HELP.Thanks.

4

3 に答える 3

1

いくつかの引用符が欠落しておりAB定数として解釈されます

<?php
$myname= trim($_GET ['myname']);
$mygrade= trim($_GET ['mygrade']);

if(strstr('@',$myname) or strstr('!',$myname) )
{
    echo "Special character not allowed.";
}

else if(empty($myname))
{
    echo "Please enter your name";

}


else
{
    switch($mygrade)
{
case "":
echo "you did not enter grade";
break;

case 'A':
echo "Increment 30% of basic salary";
break;

case 'B':
echo "Increment 10% of basic salary";
break;

default:
echo"Wrong Grade";
break;
}
}
于 2012-07-02T08:26:11.577 に答える
1

基本的には問題ありませんが、「CASE」ステートメントの後のセミコロンをコロンに置き換え、次にテキスト文字列 (A、B など) を引用符で囲む必要があります。

switch($mygrade) {
    case "":
        echo "you did not enter grade";
    break;

    case "A":
        echo "Increment 30% of basic salary";
    break;

    case "B":
        echo "Increment 10% of basic salary";
    break;

    default:
        echo "Wrong Grade";
    break;
}
于 2012-07-02T08:23:59.197 に答える
1

これはプレーンな PHP ですか? 以下に私の答えがあります。ただし、これを続けることはお勧めしません。検証に役立つ他のクラスまたはフレームワークを検索できます。これは注射でも起こりやすいかもしれません。

あなたの質問に答えるには:(基本的に)

$invalid = array("@", "!");
if (in_array($myname, $invalid)) {
    echo 'Special character not allowed.';
}

if (empty($myname)) {
    echo "Please enter your name";
}

if (!empty($mygrade)) {
    switch($mygrade) {
       case "":
        echo "you did not enter grade";
        break;

    case "A":
        echo "Increment 30% of basic salary";
        break;

    case "B":
        echo "Increment 10% of basic salary";
        break;

    default:
        echo "Wrong Grade";
        break;
    }
}
else {
    echo 'Grade was empty';
}
于 2012-07-02T08:31:16.833 に答える