sunucu tarafı doğrulama

5 Cevap php

Merhaba ben bir reg.php oluşturduk. Ben php kullanarak sunucu doğrulamasını eklemeniz gerekir. Ben kodu yazılmış ve benim tarayıcıda java script dissabled var. Ama başarıyla i herhangi field.This vermeyin bile kayıtlı "kodumu olduğunu gösteren bir

<?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>

Herkes plz yardım edebilir???

5 Cevap

İlk - Lütfen değişkenleri ile tutarlı olması. Sen $errormsg ve $errormessage arasındaki aklını makyaj gibi olamaz.

İkinci - Biraz düşünce geçerlidir. if Eğer bir hata mesajı belirledik, sonra da else SQL sorgusu yapmak görüntüler.

Üçüncü - Allah aşkına, fix your huge SQL injection vulnerability.

Herhangi sıkça koşullar başarısız if komut bitirmek gerekir.

şimdi olduğu yolu bir hata gösterecektir, ancak sorgu kısmında devam edecektir.

Bu çözmek için sorgu parçası etrafında bir else {} koyabilirsiniz.

Sizin insert kodu ne olursa olsun, bir hata mesajı verilir eğer çalışır. ekleyebilirsiniz

if (empty($errormessage)) {


mysql_query...


}

Peki, sen koymak zorunda senin

mysql_query("INSERT INTO `xxx` ( `id` , `Name` , `Address1` , `Address2` , `password`     ,`email` )
VALUES (
'', '$username', '$address1', '$address2', '$password', '$email'
)")or die(mysql_error()); ;

son elseif sonra bir başka açıklamada:

[...]
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 ";
}

Siz komut farklı bir bölümüne biterse doğrulama sonra her şeyi ayırmak gerekir.

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 ";
}

Diğer ipuçları:

  • Eğer bir dizi hata iletileri tutmak ve bunları bir liste halinde göstermek gerekir
  • Eğer başarı iletisi için farklı bir komut kullanabilirsiniz