<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 语句中设置多个条件。我尝试了很多方法,但仍然没有奏效...我希望有人可以帮助我..与我的开关盒无关,但问题仅在 IF ELSE..请帮忙。谢谢。
基本上没问题,但是您需要将"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;
}
缺少一些引号的地方,A
和B
被解释为常量
<?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;
}
}
这是一个
普通的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';
}