blir så trött... har kikat på massa inlägg men hittar inget som funkar.
kör webbservern på en linux burk. använder "varchar" på kolumnen.
sql-sats... none case sensitive... vill ju kunna blanda små och stora bokstäver vid en inloggning för att passa alla. för vissa användare reggar med små och stora bokstäver sen kanske dom loggar in med bara små eller stora så det blir fel i inloggningen...
fick ett tips om http://se.php.net/strcasecmp men det vill inte heller funka eller jag kanske gör fel när jag inplanterar "strcasecmp".
I php kan du använda strtoupper() för att göra om en sträng till versaler. I MySQL heter motsvarigheten UCase(). Om du jämför inmatat värde konverterat till endast versaler med fältinnehållet konverterat på motsvarande sätt borde du alltså få en jämförelse som är icke skiftlägeskänslig.
Om jag var du skulle jag ha med både användarnamn och lösenord i WHERE-delen av frågan, och sedan bara kontrollera om den gav något svar eller inte. SQL-frågan kan se ut så här:
$sql = mysql_db_query("filip", "SELECT * FROM mingla WHERE UCase(username) = '" . strtoupper($login_user) ."' AND UCase (password) = '" . strtoupper($login_pass) . "'", $open);
Jag hoppas att jag fick dit strängkonkateneringarna rätt, jag använder egentligen inte vare sig php eller MySQL. :)
men när jag provade det så blev resultatet som innan case-sensitive.
Du provade alltså med mitt kodexempel ovan? Då kan jag inte för mitt liv förstå resultatet.
Fördelar med att göra jämförelsen i SQL-frågan:
* Mindre kod.
* Du sparar prestanda, eftersom du inte behöver loopa igenom ett resultatset och göra jämförelser på varje post.
* Du sparar nätverkstrafik eftersom du egentligen inte behöver skicka någon data tillbaka från MySQL-servern till webservern. Det räcker egentligen med SELECT 1 FROM... och kontrollera om du får något tillbaka.
Mvh
271 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e