2013-12-07 3 views
-1

Я пытаюсь установить лимиты символов для страницы регистрации, и независимо от того, что говорит, что имя пользователя слишком длинное, вы можете сказать мне, что случилось? see the error for your selfПочему этот фрагмент кода не работает?

if(mb_strlen($uname) >= 20){ 
    if(mb_strlen($uname) <= 6){ 
    if(mb_strlen($pass1) <= 8){ 
    if(mb_strlen($pass1) >= 16){ 
    if((mb_strlen($email)) > 5 && strstr(($email1), "@") && strstr(($email1),".")){ 
     $pass = md5(md5("47Jdfio209".$pass1."4jfhioJasify3")); 
     $pass = hash('sha512',$pass); 


    $sql = $mysqli -> query("SELECT * FROM `archewor_users`.`users` WHERE `uname` = '$uname'"); 
    if(mysqli_num_rows($sql) > 0){ 
     echo"Sorry, that user already exists."; 
    exit(); 

    } 
    $mysqli -> query("INSERT INTO `archewor_users`.`users` (`id`, `name`, `lname`, `uname`, `email`, `pass`) VALUES (NULL, '$name', '$lname', '$uname', '$email1', '$pass')") or die(mysqli_error()); 
    }else{echo 'Your email must be valid.';} 
    }else{echo 'This password is too long';}  
    }else{echo 'This password is too short';} 
    }else{echo 'This username is too short';} 

    }else{echo 'This username is too long';} 

}else{ 
    echo "Sorry, your passwords do not match.<br />"; 
    exit(); 
    } 
}else{ 
    echo "Sorry, your emails do not match. <br /> <br />"; 
} 




}else{ 
+0

просто вставить свою ошибку здесь –

+0

Ошибка «Это имя пользователя, чтобы долго», даже если это не – user3053564

+0

Где вы устанавливаете значения для своих переменных? Кроме того, то, как вы пытаетесь проверить условия, довольно странно. – mic4ael

ответ

0

Логика, написанное вами неправильно. Проверьте условия для проверки имени пользователя и пароля. Письменный код имеет очень низкий уровень. Используйте условные операторы вместо вложенных условий.

+0

Ответ, данный вами @ pkeidel, более ясен, и логики могут быть понятны всем. Это ваши требования - @ user3053564 – ursitesion

0

Это только логическая ошибка

// 1. Here you check, if your username is to LONG 
// So your -else- is called, if your username is to SHORT 
if(mb_strlen($uname) >= 20){ 
    // all the rest 
} else {echo 'This username is too long';} // This message should be "Username is to short" 


Может быть лучше:

if(mb_strlen($uname) >= 20) 
    die("Username is to long"); 

if(mb_strlen($uname) <= 6) 
    die("Username is to short"); 
Смежные вопросы