2013-06-22 111 views
0

我有问题。我创建了一个系统,我可以用小写字母和大写字母在昵称中存在的mySQL登录,但如果我尝试用小写或大写字母登录,它说,我的密码不正确,但是当我尝试登录时它注册了正确的昵称,那么问题出在哪里?说密码不正确,但是正确

这里是我的代码:

if(isset($_POST['jungtis'])) { 

    if($_POST['login_slapyvardis'] != "" && $_POST['login_slaptazodis'] != "") { 

     $login_slapyvardis = mysql_real_escape_string($_POST['login_slapyvardis']); 
     $login_slaptazodis = mysql_real_escape_string($_POST['login_slaptazodis']); 
     $apsaugotaslogin_slaptazodis = md5($login_slaptazodis); 

     if($login_sumazintas == $mysqlskc['name']) { 

     $mysql = mysql_query("SELECT * FROM ucp_users WHERE name='$login_slapyvardis'") or die(mysql_error()); 
     $mysqlskc = mysql_fetch_assoc(mysql_query("SELECT * FROM ucp_users WHERE name=LOWER('$login_slapyvardis')")); 
     $login_sumazintas = strtolower($login_slapyvardis); 

      $mysqli = mysql_fetch_assoc($mysql); 

      if($mysqli['password'] == $apsaugotaslogin_slaptazodis) { 

       $_SESSION['Logged'] = $mysqli['id']; 
       $ip = $_SERVER['REMOTE_ADDR']; 
       mysql_query("UPDATE ucp_users SET lastip = '$ip' WHERE id = '$mysqli[id]'"); 
       header('Location: /home'); 

注意:我知道这是更好的,我需要使用PDO或mysqli,但我使用mysql_现在只。

+0

您是否将名称存储为较低的字符串? –

+0

仅供参考,MD5不应该被用于散列密码 –

+0

不想...我的名字存储为Sprunkas,而是试图当这个错误是出现sprunkas或SPRUNKAS登录,但尝试登录Sprunkas将不会出现任何错误时。 P.S bcrypt最好是哈希密码? – user2488773

回答

1

你需要修复您的查询。

$mysqlskc = mysql_fetch_assoc(mysql_query("SELECT * FROM ucp_users WHERE LOWER(name)=LOWER('$login_slapyvardis')")); 
+0

啊...同样的错误:| – user2488773

+1

默认情况下,mysql不区分大小写 – bitWorking

+0

true,除非排序规则设置为'_cs' – DevZer0

相关问题