Sida 1 av 1
MySQL: Problem att läsa från databas *Löst*
Postat: 4 september 2007, 23:17:15
av JimmyAndersson
Jag har fixat en ftp-server (Linux Debian) som hämtar login-information från en MySQL-databas. På samma dator ligger en PHP-sida för att administrera användarna. Denna sida går jag in på med en annan dator i det lokala nätverket.
Om jag skapar en användare och fyller i namn, lösen osv där så kan inte den användaren logga in på sitt konto. Men om jag gör samma sak i PHPmyAdmin (på samma dator som jag använder för att gå in på PHP-sidan) så kan användaren logga in.
Databasen har dessa privilegier:
Kod: Markera allt
USER HOST PASSWORD PRIVILEGIES GRANT
pureftpd localhost yes select, insert, update, delete, create, drop no
pureftpd localhost.localdomain yes select, insert, update, delete, create, drop no
Databas-tabellens fält fylls i likadant oavsett om jag använder PHPmyAdmin eller min egen admin-sida. Så varför blir det såhär?
Postat: 4 september 2007, 23:42:01
av sodjan
Så du har två metoder att få in user/pw i databasen ? Och båda fungerar ?
Och det går inte i efterhand att se från vilket verktyg som user/pw kom från ?
Sen har du ett tredje verktyg som *läser* och använder denna info ?
I så fall har jag svårt att se hur det skulle kunna spela någon roll
för det tredje verktyget *hur* user/pw info't har hamnat i database...
EDIT: Är du *säker* på att båda verktygen verkligen lägger data i
databasen och commit'ar ?
Postat: 5 september 2007, 09:33:25
av Micke_s
Inte så enkelt att det verktyget som ej fungerar använder den gamla typen av password hash internt i sig och postar det.
Postat: 5 september 2007, 09:51:49
av speakman
Om det ser helt identiskt ut så *kan* det inte spela någon roll. Enda logiska är att det *inte* ser identiskt ut om man undersöker det noggrant!
Hur ser resultatet ut i databasen?
Postat: 5 september 2007, 13:45:39
av JimmyAndersson
Jag tog en sista titt i databasen igår natt innan jag somnade.
Förväntade mig inte att hitta något jag inte sett tidigare, men det gjorde jag.
Testade en egen databas-visare som jag jobbat på ett tag. Den är mer överskådlig än PHPmyAdmin, så det räckte med en snabb titt för att se att lösenordet sparades i fel format med mitt verktyg. Ändrade till MD5 och då fungerade det direkt.
Att jag inte såg detta med mitt "visa användare"-verktyg beror på att lösenordet inte visas där.
Så problemet är löst.
Svarar ändå på Sodjas frågor:
Helt rätt. Det är två metoder för att få in user/pw i databasen.
Båda fungerade vad jag kunde se, dvs båda lade till data i databasen.
"Och det går inte i efterhand att se från vilket verktyg som user/pw kom från ?"
Tyvärr inte. Så länge man inte kommer ihåg att t.ex användare Nisse lades till med mitt verktyg och Putte med PHPmyAdmin. Det var så jag kollade när jag upptäckte felet.
"Är du *säker* på att båda verktygen verkligen lägger data i
databasen och commit'ar ?"
Yes sir. 100% säker. Det kollade jag väldigt noga innan jag skapade tråden. Att lösenordet stod i klartext i databasen för de användare som jag lagt till med mitt verktyg reflekterade jag inte över förrän jag såg alla användares lösenord samtidigt. Dvs:
Kod: Markera allt
User Password
Nisse nissepw <--- Skapat med mitt verktyg
Putte 3f34G4r9vv3m <---- Skapat med phpMyAdmin
Postat: 5 september 2007, 16:28:43
av JimmyAndersson
Lägger till en till liten fråga:
Jag ska ta bort en rad i en tabell. Koden är såhär:
Kod: Markera allt
mysql_query(DELETE LOW_PRIORITY FROM $tabell
WHERE user='$deluser'
LIMIT 1);
Men det fungerar inte. Jag får:
Parse error: syntax error, unexpected T_STRING in /var/www/ftp-admin/tabort_anvandare.php on line 68
Rad 68 är den översta i koden jag klistrade in här över.
Har även provat att ta bort mysql_query() men jag får samma felmeddelande.
Syntaxen ska vara såhär:
Kod: Markera allt
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name
[WHERE where_condition]
[ORDER BY ...]
[LIMIT row_count]
Enligt
den här sidan.
Jag är iofs inte helt säker på att jag har version 5, men jag vet inte heller hur man kollar det.
Postat: 5 september 2007, 16:48:19
av maha
Behövs det inga "haratassar" som vi säger här i Österbotten, alltså citattecken runt själva SQL-strängen?
Postat: 5 september 2007, 16:51:37
av JimmyAndersson
Aha, där var problemet. Nu fungerar det. Tack!
Då förstår jag lite mer hur man skriver MySQL-strängar i php. Trevligt!