简体   繁体   English

注册表格的SQL问题

[英]sql issue with registration form

I have created a registration form ( see code below ). 我已经创建了一个注册表(请参见下面的代码)。 There are two fields for the password, the second serving as a check and upon form submission I check if the input in the fields matches. 密码有两个字段,第二个用作检查,提交表单后,我检查这些字段中的输入是否匹配。 If they don't a message is successfully sent that the passwords do not match but the new user record is still inserted into the database. 如果未成功发送消息,则密码不匹配,但是新的用户记录仍会插入数据库中。 How can I prevent record insertion if the password fields do no match? 如果密码字段不匹配,如何防止记录插入?

Here is the code: 这是代码:

<?php

    $username = isset( $_POST["username"] ) ? $_POST["username"] : "";
    $password = isset( $_POST["password"] ) ? $_POST["password"] : "";
    $confirm = isset( $_POST["confirm"] ) ? $_POST["confirm"] : "";

    if( !empty( $username ) && !empty( $password ) ) {

        if( $password != $confirm )
            header( "location:registration.php?msg = Password does not be match." );

        $host = "localhost";
        $user = "i have put my username here";
        $pass = "i have put my pass here";

        $link = mysql_connect( $host,$user,$pass ) or die( mysql_error() );   
        mysql_select_db( "web_db",$link );   
        $query = "SELECT * FROM users WHERE username = '".mysql_escape_string( $username )."'";   
        $result = mysql_query( $query );   
        $count = mysql_num_rows( $result );

        if( $count =  = 1 ) {
            header( "location:registration.php?msg = username already exists" );
        } else {  
            $qry = "INSERT INTO users( username,password )VALUES( '".mysql_escape_string( $username )."', '".mysql_escape_string( $password )."' )";  
            mysql_query( $qry );

            echo "You are successfully registered.";
        }

        mysql_close( $link );    
    } else {
        header( "location:registration.php?msg = Username or password cannot be blank." );
  }

Try this: 尝试这个:

if($password != $confirm){
    header("location:registration.php?msg=Password does not be match.");
    exit;
}
else {
    // rest of the code goes here
}
if ($password != $confirm) {
   header("location:registration.php?msg=Password does not be match.");
   exit();
}

Try using the above code it might help. 尝试使用上面的代码可能会有所帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM