логин проблем с малки и големи букви

bgmafiabitka

Registered
Код:
$lacc=$_POST['lacc'];
							$lpass=md5($_POST['lpass']);
							$li=mysql_query("select pname and password from players where pname='$lacc' and password='$lpass'") or die(mysql_error(""));
							$li=mysql_fetch_array($li);
							if($li) {
								print"(y)";
								$_SESSION['acc']=$lacc;
							} else {
								print"NO";
							}

Проблема е, че като сравнява въведеното името (например) gagaga и го сравни с това от базата данни GaGaGa те не са идентични
Как да направя така, че gagaga==GaGaGa при положение, че няма как в базата данни да има друго има от рода на gAgAgA, gAGAgA и т. н.

Днес след като си отпочинах се поразрових малко и открих решение на проблема ми :)

http://web-tourist.net/forum/viewtopic.php?p=585864#585864
 
По принцип това не се налага, тъй като би трябвало MySQL да не прави разлика между големи и малки букви.
Да не си сложил някакъв указател, който да казва на MySQL да прави въпросните проверки?
Дай структура на таблицата с типа на полетата.
 
PHP:
$lacc=$_POST['lacc'];
                     $lpass=md5($_POST['lpass']);
                     $li=mysql_query("select pname and password from players where pname LIKE BINARY '$lacc' and password='$lpass'") or die(mysql_error(""));
                     $li=mysql_fetch_array($li);
                     if($li) {
                        print"(y)";
                        $_SESSION['acc']=$lacc;
                     } else {
                        print"NO";
                     }
:?:
 
Ev0luti0N каза:
PHP:
$lacc=$_POST['lacc'];
                     $lpass=md5($_POST['lpass']);
                     $li=mysql_query("select pname and password from players where pname LIKE BINARY '$lacc' and password='$lpass'") or die(mysql_error(""));
                     $li=mysql_fetch_array($li);
                     if($li) {
                        print"(y)";
                        $_SESSION['acc']=$lacc;
                     } else {
                        print"NO";
                     }
:?:

така НЕ става!
 
Код:
$username = strtolower("bgmafiabitkA");
//$username = strtolower($_POST['lacc']);
$query = mysql_query("SELECT * FROM `users` WHERE LOWER(lacc)='$username'") or die(mysql_error());

strtolower

PHP:
<?php
$one = strtolower("bgmafiabitkA");
echo "$one"; // ще изкара bgmafiabitka

$two = strtolower("GaGaGaGa");
echo "$two"; // ще изкара gagagaga


?>
 
nom3r1 каза:
Код:
$username = strtolower("bgmafiabitkA");
//$username = strtolower($_POST['lacc']);
$query = mysql_query("SELECT * FROM `users` WHERE LOWER(lacc)='$username'") or die(mysql_error());

strtolower

PHP:
<?php
$one = strtolower("bgmafiabitkA");
echo "$one"; // ще изкара bgmafiabitka

$two = strtolower("GaGaGaGa");
echo "$two"; // ще изкара gagagaga


?>

знам... нали казах, че съм го направил така :D lol...
 
[sql]CREATE TABLE players (
id bigint(21) not null auto_increment,
pname varchar(255) not null,
password varchar(255) not null,

PRIMARY KEY(id)
) ENGINE=myisam default charset=utf8 collate utf8_bin;
[/sql]


===>

[sql]CREATE TABLE players (
id bigint(21) not null auto_increment,
pname varchar(255) not null,
password varchar(255) not null,

PRIMARY KEY(id)
) ENGINE=myisam default charset=utf8 collate utf8_general_ci;[/sql]
 
Доколкото разбрах искаш ако има потребител с име GaGaGa и той е написал gagaga да му изкарва, че е грешно. Ако е това този код трябва да е точно това което ти трябва :idea:
PHP:
$lacc=$_POST['lacc'];
                     $lpass=md5($_POST['lpass']);
                     $li=mysql_query("select pname and password from players where pname LIKE BINARY '$lacc' and password='$lpass'") or die(mysql_error(""));
                     $li=mysql_fetch_array($li);
                     if($li) {
                        print"(y)";
                        $_SESSION['acc']=$lacc;
                     } else {
                        print"NO";
                     }
 
Ev0luti0N каза:
Доколкото разбрах искаш ако има потребител с име GaGaGa и той е написал gagaga да му изкарва, че е грешно. Ако е това този код трябва да е точно това което ти трябва :idea:
PHP:
$lacc=$_POST['lacc'];
                     $lpass=md5($_POST['lpass']);
                     $li=mysql_query("select pname and password from players where pname LIKE BINARY '$lacc' and password='$lpass'") or die(mysql_error(""));
                     $li=mysql_fetch_array($li);
                     if($li) {
                        print"(y)";
                        $_SESSION['acc']=$lacc;
                     } else {
                        print"NO";
                     }

точно обратното!
 

Back
Горе