Php 服务器端验证

Php 服务器端验证,php,validation,Php,Validation,嗨,我已经创建了一个reg.php。我需要包括使用php的服务器验证。我已经在浏览器中编写了代码并禁用了java脚本。但它显示“即使我不提供任何字段,您也已成功注册。这是我的代码。” <?php $hostname = "xxxx"; $username = "xxx"; $password = "xxx"; $dbName = "xxx"; $conn = mysql_connect($hostname,$username,$passw

嗨,我已经创建了一个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>

验证结束后,如果脚本的另一部分结束,则需要将所有内容分开

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作为您宝贵的建议。除了查询,我已经做了所有事情。但我仍然得到了同样的结果