MySQL: Problem att läsa från databas *Löst*

Elektronik- och mekanikrelaterad mjukvara/litteratur. (T.ex schema-CAD, simulering, böcker, manualer mm. OS-problem hör inte hit!)
Användarvisningsbild
JimmyAndersson
Inlägg: 26417
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

MySQL: Problem att läsa från databas *Löst*

Inlägg 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?
Senast redigerad av JimmyAndersson 5 september 2007, 13:46:59, redigerad totalt 1 gång.
sodjan
EF Sponsor
Inlägg: 43231
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Inlägg 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 ?
Användarvisningsbild
Micke_s
EF Sponsor
Inlägg: 6741
Blev medlem: 15 december 2005, 21:31:34
Ort: Malmö

Inlägg 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.
Användarvisningsbild
speakman
Inlägg: 4838
Blev medlem: 18 augusti 2004, 23:03:32
Ort: Ånge

Inlägg 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?
Användarvisningsbild
JimmyAndersson
Inlägg: 26417
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg 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
Användarvisningsbild
JimmyAndersson
Inlägg: 26417
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg 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.
Användarvisningsbild
maha
EF Sponsor
Inlägg: 1685
Blev medlem: 22 november 2005, 09:47:02
Ort: Jakobstad, Finland

Inlägg av maha »

Behövs det inga "haratassar" som vi säger här i Österbotten, alltså citattecken runt själva SQL-strängen?
Användarvisningsbild
JimmyAndersson
Inlägg: 26417
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Aha, där var problemet. Nu fungerar det. Tack! :) :tumupp:

Då förstår jag lite mer hur man skriver MySQL-strängar i php. Trevligt!
Skriv svar