[ bluesman @ 24.12.2002. 21:52 ] @
Imam jedan problem.

Poslao mi lik mail gde kaze da ne moze da se registruje, taman sam hteo da ga napljujem kada sam provalio da covek nije kriv a ja ne znam sta se desava.

Dakle, lik je pokusao da se registruje kao "david". Imam pored ostalih promena i deo gde proveravam da li postoji izabrani username i e-mail koji izgleda otprilike ovako
Code:

// now check if username or e-mail already exists in the database
$sQuery  = "SELECT mem_username, DECODE(mem_email,\"".$this->encodeString."\") as eml FROM members WHERE (mem_username=\"".$username."\" OR ENCODE(\"".$email."\",\"".$this->encodeString."\") = mem_email) ";


a onda radi proveru
Code:

if ($this->dbClass->records[0]["mem_username"] == $username)
    $arrErrors[] = "The username \"".$username."\" is already in use. Please enter another username!".$strLostPassword;
elseif ($this->dbClass->records[0]["eml"] == $email)
    $arrErrors[] = "The email address \"".$email."\" already exists in our database!".$strLostPassword;


Sta se desilo? 'Ladno je propustio "david" iako u bazi ima "David" ali ga nije dodao u tabelu. Napominjem da polje nije BINARY vec VARCHAR(15) i kada covek pokusa da se loguje naravno invalid password jer cita password za "David".

Jel' ima neko ideju zasto se to dogadja?
[ -zombie- @ 25.12.2002. 06:20 ] @
u bre. gde bre nalazish takve probleme. prosto se uzelim onih "ne radi mi phpTriad" i "prikazuje mi php kod umesto da ga izvrsi"

elem, tvoj problem je sto iako je polje text (a ne binary) i mysql zna da su david i David isto, za php nisu. znaci, mysql vrati uredno red sa Davidom, ali tebi ova linija ne valja:

Code:

if ($this->dbClass->records[0]["mem_username"] == $username)


bolje koristi (ja uvek tako radim):

Code:

if ($this->dbClass->recordCount > 0) 
  error!!!
}

[ chupcko @ 25.12.2002. 07:58 ] @
Zar ovo dole nije cudno ?

Code:

mysql> select * from users where name = 'CHUPCKO';
+----+---------+----------+-----------+
| id | name    | password | groups_id |
+----+---------+----------+-----------+
|  1 | chupcko |          | 1         |
+----+---------+----------+-----------+
1 row in set (0.00 sec)


Ali posle citanje dokumentacije (jelte RTFM)

Code:

mysql> select * from users where binary name = 'CHUPCKO';
Empty set (0.03 sec)


Dakle nadam se da je ovo slucaj i kod tebe, ako nije traganje dalje ...
[ bluesman @ 25.12.2002. 11:27 ] @
nije cudno jer poljen niije binary. Po defaulty mysql uporedjuje polja case INsensitive, osim ako polje nije deklarisano kao BINARY ili u queriju nije uneto BINARY. Znaci da je polje

username VARCHAR(15) BINARY NOT NULL
ili da je kao u tvom queriju uneto BINARY

onda bi bilo "cudno".

cudno je sto sam ja mamlaz pa nisam uradio strtolower, ocigledno sam bio previse umoran nocas, i bio sam ubedjen da je greska negde u query-ju. Hvala zombie, ipak moram s vremena na vreme malo i da odspavam. :-)
[ -zombie- @ 25.12.2002. 13:15 ] @
ko kaze? pogledaj vreme kada sam ja postovao odgovor...
[ chupcko @ 09.01.2003. 08:15 ] @
Eh ova tema je osakacena bas :)
imam isti problemi znam da je ovde bilo resenje, ali ga vise nema, jel moze neko da postuje ponovo, cisto da ne gubim vreme tragajuci za resenjem :).