这是我写的代码
<HTML>
<TITLE> "Student Details" </TITLE>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
STUDENT NAME:<input type="text" name="sname">
<?php
class student
{
public static $name="";
public static $sclass=0;
//settype($sclass , "integer");
}
if($_SERVER["REQUEST_METHOD"]=="POST")
{
student::$name=$_POST['sname'];
student::$name=trim(student::$name);
if(!empty(student::$name))
{
if(student::$name != "GOUTAM")
{
echo "WRONG NAME ENTERED";
}
}
else
{
"NAME IS EMPTY";
}
}
?>
<br>
STUDENT CLASS:<input type="text" name="sclass">
<?php
if ($_SERVER["REQUEST_METHOD"]=="post")
{
student::$sclass=filter_input(INPUT_POST,'sclass',FILTER_VALIDATE_INT);
if(empty(student::$sclass))
{
echo " CLASS IS EMPTY";
}
if(student::$sclass != 10)
{
echo "WRONG CLASS ENTERED";
}
}
?>
<br>
<input type="submit"><br>
<?php echo student::$name;?>
<br>
<?php echo student::$sclass;?>
<br>
<input type="reset" name="RESET"><br>
<?php
var_dump(student::$name);
var_dump(student::$sclass);
?>
</form>
</body>
</HTML>
在这个程序中,我接受学生的名字和他的班级,然后我将它与一些常数进行比较,这些常数将根据条件返回一些值。
但是,当我运行此代码并输入一个类(例如10)时,$ sclass的值不会改变,它仍为0.
`
答案 0 :(得分:0)
你应该写
FILTER_VAR($_POST['sclass'],FILTER_VALIDATE_INT);
student::$sclass=$_POST['sclass'];
然后你应该做
答案 1 :(得分:0)
将if ($_SERVER["REQUEST_METHOD"]=="post")
行更改为
if ($_SERVER["REQUEST_METHOD"]=="POST")
$_SERVER["REQUEST_METHOD"]
此变量返回大写POST
。这就是为什么不执行条件块的原因。
答案 2 :(得分:0)
if ($_SERVER["REQUEST_METHOD"]=="post")
应该是
if ($_SERVER["REQUEST_METHOD"]=="POST")
因为$_SERVER["REQUEST_METHOD"]
始终包含UPPER CASE值。我想建议的其他事情是将int代码移到第一个if语句中。