Php 如何在操作前验证用户输入
我对互联网语言非常陌生,我试图弄清楚如何在方法调用之前验证用户输入,但我只是还不能让它工作Php 如何在操作前验证用户输入,php,html,forms,post,Php,Html,Forms,Post,我对互联网语言非常陌生,我试图弄清楚如何在方法调用之前验证用户输入,但我只是还不能让它工作 <html> <head> </head> <body> <?php $grade = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") { $returned = test_input($_PO
<html>
<head>
</head>
<body>
<?php
$grade = "";
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$returned = test_input($_POST["grade"]);
if(!$returned) ?
}
function test_input($data)
{
if ( !is_numeric($data) || $data>100 || $data<0 )
{
$data = "";
echo 'The input should be a number between 0 and 100 ';
echo "<br>";
echo 'Try again';
return false;
}
return true;
}
?>
<form action = "file_1_2.php" method = "post">
Grade: <input type="text" name="grade">
</form>
</body>
</html>
等级:
除我的评论和其他评论外,您的函数包含不正确的if
子句,特别是您的大于、小于子句。我建议不要回显它的任何字符串,否则您的函数使用有限
function input_valid($data = false)
{
if(empty($data))
return false;
elseif($data && !is_numeric($data))
return false;
else
return (($data <= 100) && ($data > 0));
}
if(isset($_POST["grade"])) {
if(input_valid($_POST["grade"])) {
// Do stuff.
}
else {
echo 'Invalid input. Must be a number between 1 and 100.';
}
}
函数输入\u有效($data=false)
{
if(空($数据))
返回false;
elseif($data&&!是数字($data))
返回false;
其他的
返回($data 0));
}
如果(isset($_POST[“grade”])){
如果(输入有效($_POST[“grade”])){
//做事。
}
否则{
echo“无效输入。必须是介于1和100之间的数字”;
}
}
注意:我觉得重复上面的评论很重要,因为您不应该只依赖客户端验证。用户可以将其关闭,则您没有验证。客户端验证只应被视为“用户体验”功能,而不是“安全”功能。您可以尝试使用jquery
<form action = "file_1_2.php" method = "post">
Grade: <input type="text" name="grade" class="grade" onkeyup="">
</form>
<script type='text/javascript' src="https://code.jquery.com/jquery-2.2.0.min.js"></script>
<script>
$(function(){
$('input.grade').bind("keyup change", function(){
validateGrade( $(this).val() );
});
});
function validateGrade(g){
if(g>100 || g<0){
alert('The input should be a number between 0 and 100');
}
}
</script>
等级:
$(函数(){
$('input.grade').bind(“键控更改”,函数(){
validateGrade($(this.val());
});
});
函数validateGrade(g){
如果(g>100 | | gYou可能应该将此$data>0
更改为此$data您希望执行什么类型的验证?您可以使用jquery进行验证。这非常简单。无论如何,您不应该依赖客户端验证。用户可以关闭它,然后您就没有验证了。您最好坚持使用服务器端验证,然后添加客户端验证-在时间允许的情况下,让你的函数只返回一个bool
值,不要让它回显任何内容。这样你就可以在以后重用函数,而不会返回你不能更改的错误值。