Php 服务器端验证
嗨,我已经创建了一个reg.php。我需要包括使用php的服务器验证。我已经在浏览器中编写了代码并禁用了java脚本。但它显示“即使我不提供任何字段,您也已成功注册。这是我的代码。”Php 服务器端验证,php,validation,Php,Validation,嗨,我已经创建了一个reg.php。我需要包括使用php的服务器验证。我已经在浏览器中编写了代码并禁用了java脚本。但它显示“即使我不提供任何字段,您也已成功注册。这是我的代码。” <?php $hostname = "xxxx"; $username = "xxx"; $password = "xxx"; $dbName = "xxx"; $conn = mysql_connect($hostname,$username,$passw
<?php
$hostname = "xxxx";
$username = "xxx";
$password = "xxx";
$dbName = "xxx";
$conn = mysql_connect($hostname,$username,$password) or die(mysql_error());
mysql_select_db($dbName);
if(isset($_POST["submit"]))
{
$username=$_POST['usr'];
$address1=$_POST['addr1'];
$address2=$_POST['addr2'];
$password=$_POST['pswd'];
$email=$_POST['email'];
$errormsg;
if($_POST['usr']=="")
{
$errormsg='enter the name S';
echo $errormsg;
}
elseif(trim($address1)=="")
{
$errormsg="entre the address1 S";
}
elseif(trim($address2)=="")
{
$errormsg="entre the address2 S";
}
elseif(trim($password)=="")
{
$errormsg="entre the password S";
}
elseif(trim($email)=="")
{
$errormessage="enter the email S";
}
mysql_query("INSERT INTO `xxx` ( `id` , `Name` , `Address1` , `Address2` , `password` , `email` )
VALUES (
'', '$username', '$address1', '$address2', '$password', '$email'
)")or die(mysql_error()); ;
echo "you have successfully registered ";
}
?>
<html>
<head>
<script type="text/javascript">
function fun()
{
valid=true;
if(document.reg1.usr.value =="")
{
alert("fill the name");
valid=false;
}
if(document.reg1.addr1.value =="")
{
alert("fill the address");
valid=false;
}
if(document.reg1.addr2.value =="")
{
alert("fill the address2");
valid=false;
}
if(document.reg1.pswd.value =="")
{
alert("fill the password");
valid=false;
}
if(document.reg1.email.value =="")
{
alert("fill the email id");
valid=false;
}
return valid;
}
</script>
</head>
<body>
<form name="reg1" action="try.php" method="post">
<table border="0" cellpadding="2" cellspacing="2" width="1000" align="centre">
<tr>
<th>Registration form</th></tr>
<tr><TD align="left">username<TD/>
<TD><input type="text" name= "usr"></TD></tr>
<tr>
<td align="left">address1<td/>
<td><input type="text" name="addr1"></td>
</tr>
<td align="left" width="15%">address2<td/>
<td><input type="text" name=addr2></td></tr>
<tr>
<td align="left">password<td/>
<td><input type="password" name="pswd"></td>
</tr>
<tr>
<td align="left">emailaddress<td/>
<td><input type="text" name="email"></td>
</tr>
<tr>
<tr><TD></TD>
<td><input type="submit" name="submit" value="submit" onclick="return fun();"></td></tr>
</table>
</form>
</body>
</html>
验证结束后,如果脚本的另一部分结束,则需要将所有内容分开
if (empty($errormsg))
{
mysql_query("INSERT INTO `xxx` ( `id` , `Name` , `Address1` , `Address2` , `password` , `email` )
VALUES (
'', '$username', '$address1', '$address2', '$password', '$email'
)")or die(mysql_error()); ;
echo "you have successfully registered ";
}
其他提示:
- 您应该将错误消息保存在数组中,并在列表中显示它们
- 您可以为成功消息使用不同的脚本
如果任何条件失败,则需要结束脚本
现在的方式将显示错误,但继续查询部分
您可以在查询部分周围放置一个else{}来解决此问题。无论是否设置了错误消息,插入代码都会运行。您可以添加
if (empty($errormessage)) {
mysql_query...
}
好吧,你必须把你的
mysql_query("INSERT INTO `xxx` ( `id` , `Name` , `Address1` , `Address2` , `password` ,`email` )
VALUES (
'', '$username', '$address1', '$address2', '$password', '$email'
)")or die(mysql_error()); ;
在最后一个elseif之后的else语句中:
[...]
elseif(trim($email)=="")
{
$errormessage="enter the email S";
}
else
{
mysql_query("INSERT INTO `xxx` ( `id` , `Name` , `Address1` , `Address2` , `password` , `email` )
VALUES (
'', '$username', '$address1', '$address2', '$password', '$email'
)")or die(mysql_error()); ;
echo "you have successfully registered ";
}
首先-与变量保持一致。您似乎无法在$errormsg
和$errormessage
之间做出决定
第二,想一想。如果设置了错误消息,则显示它否则
进行SQL查询
第三-看在上帝的份上,.注入漏洞??其中:-D+1因此,只有一个点存在SQL,因此很容易找到(特别是使用链接问题中的信息)hi thanx作为您宝贵的建议。除了查询,我已经做了所有事情。但我仍然得到了同样的结果