您好我已经创建了一个reg.php。我需要使用php包含服务器验证。我编写了代码并在浏览器中解压缩了java脚本。但它显示“即使我没有给任何字段你已成功注册。这是我的代码
<?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>
任何人都可以帮助PLZ ?????
答案 0 :(得分:1)
首先 - 与你的变量保持一致。您似乎无法在$errormsg
和$errormessage
之间下定决心。
第二 - 应用一点思考。 if
您已设置错误消息,然后显示else
进行SQL查询。
第三 - 为了上帝的缘故,fix your huge SQL injection vulnerability。
答案 1 :(得分:0)
如果结束了脚本的不同部分,则需要在验证后将所有内容分开。
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 ";
}
其他提示:
答案 2 :(得分:0)
如果任何if条件失败,则需要结束脚本。
现在的方式将显示错误,但继续查询部分。
你可以在查询部分周围添加一个else {}来解决这个问题。
答案 3 :(得分:0)
无论是否设置了错误消息,您的插入代码都会运行。你可以添加
if (empty($errormessage)) {
mysql_query...
}
答案 4 :(得分:0)
好吧,你必须把你的
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 ";
}