如何在php中对照表中的数据检查用户输入?
如果用户在表单字段“AddGuestName”中输入数据,我想查询“a_table”,看看是否允许他们添加一个客人。“addguest”列包含一个“Y”,如果他们可以有一个额外的guest,则包含一个“N”。如果不能,我希望显示错误消息,并且在“AddGuestName”字段为空之前不保存数据。不知道我哪里出了问题 我的代码如何在php中对照表中的数据检查用户输入?,php,mysql,Php,Mysql,如果用户在表单字段“AddGuestName”中输入数据,我想查询“a_table”,看看是否允许他们添加一个客人。“addguest”列包含一个“Y”,如果他们可以有一个额外的guest,则包含一个“N”。如果不能,我希望显示错误消息,并且在“AddGuestName”字段为空之前不保存数据。不知道我哪里出了问题 我的代码 $Name = check_name($_POST['name'], " Enter Your First and Last Name....Click Your Bro
$Name = check_name($_POST['name'],
" Enter Your First and Last Name....Click Your Browsers Back Button To Re-Enter ");
$RsvpNum = check_input($_POST['RsvpNum'], " Enter The 3 Digit RSVP Number Located On Your RSVP Card....Click Your Browsers Back Button To Re-Enter ");
$AddGuestName = check_rsvp($_POST['AddGuestName'], "You Are Not Allowed An Additional Guest.....Click your Browsers Back Button To Re-Enter");
function check_rsvp($data, $query, $result, $RsvpNum, $AddGuestName, $problem='')<br />
{
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
if ($problem && strlen($data) > 0)
{
mysql_query($query="SELECT addguest FROM a_table WHERE rsvp_num=$RsvpNum");
$result=mysql_query($query);
}
return $data;
if (($result) == 'N')
{
die($problem);
}
return $data;
}
$Name=检查名称($\u POST['Name'],
“输入您的名字和姓氏……单击浏览器后退按钮重新输入”);
$RsvpNum=检查输入($\u POST['RsvpNum'],“输入RSVP卡上的3位RSVP号码…单击浏览器后退按钮重新输入”);
$AddGuestName=检查\u rsvp($\u POST['AddGuestName'],“您不允许添加其他来宾…..单击浏览器后退按钮重新输入”);
函数检查\u rsvp($data、$query、$result、$RsvpNum、$AddGuestName、$problem='')
{
$data=修剪($data);
$data=条带斜杠($data);
$data=htmlspecialchars($data);
如果($problem&&strlen($data)>0)
{
mysql_query($query=“从rsvp_num=$RsvpNum的_表中选择addguest”);
$result=mysql\u query($query);
}
返回$data;
如果(($result)='N')
{
死亡(问题);
}
返回$data;
}
如果,您的意思是在第一个之后立即返回$data
?我在想不…我应该吗?因为如果没有在“AddGuestName”中键入任何用户输入,则不需要执行任何操作,但是如果“AddGuestName”字符串长度大于0,则我希望运行mysql语句,查看他们是否具有由“Y”表示的权限在数据库中,将return
放在if
后面,每次都会返回该值。现在,在那里放一个,否则
会达到我认为您期望的效果。小心,您有一个SQL注入漏洞。。如果用户传入AddGuestName,例如“1或1=1”,则将返回所有记录。请注意,stripslashes()在这里对您没有帮助。通常,您会使用addslashes(),但由于查询文本中没有引用输入,因此这对您没有任何帮助您使用两个参数调用check_rsvp(),但函数需要6,其中只有一个参数用默认值标记。这段代码实际运行吗?
$query="SELECT addguest FROM guests WHERE rsvp_num=$RsvpNum LIMIT 1";
$result=mysql_query($query);
$row = mysql_fetch_row($result);
if ($row[0] =='y'){
...