2009-07-22 11 views
0

こんにちは私は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

を助けることができる私はどんなfield.thisを与えるいけない場合でも、あなたが正常に登録されています」と表示されますスクリプトの別の部分に終了

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

その他のヒント:。

  • あなたは、エラーメッセージを維持する必要があります配列、そしてあなたがどんなしばしばもし条件が失敗した場合、スクリプトを終了する必要が成功メッセージ
0

のための別のスクリプトを使用することができ、リスト

  • に表示します。

    これでエラーは表示されますが、クエリの部分は続行されます。

    これを解決するには、クエリ部分にelse {}を付けることができます。

  • 0

    エラーメッセージが設定されているかどうかにかかわらず、挿入コードが実行されます。あなたは

    if (empty($errormessage)) { 
    
    
    mysql_query... 
    
    
    } 
    
    0

    まあを追加することができ、あなたは最後のelseif後else文であなたの

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

    を配置する必要があります:

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

    まず—があなたの変数と一致しています。あなたは$errormsg$errormessageの間にあなたの心を作り上げることはできません。

    第2 —少し考えてください。 ifエラーメッセージを設定したら、elseを表示してSQLクエリを作成します。

    第3 —天国のためfix your huge SQL injection vulnerabilityです。

    +1

    注射の脆弱性?どこに:-D +1そのため –

    +0

    どこにもSQLがあるので、簡単に見つけることができます(特にリンクされた質問の情報があります) – Quentin

    +0

    貴重な提案のための高等角..私はquerry以外のすべてを行っています。しかし、私は同じことをやっている –

    関連する問題