Gå til innhold

passord funker på localhost men ikke på server


Anbefalte innlegg

Jeg har satt opp en nettbutikk på localhost som har default brukernavn og passord. Dette funker bra på localhost.

Problemet er at den samme nettbutikken og databasen, etter at disse er overført til server på nettet ikke godtar brukernavn/passord.

Noen som har en åpenbar løsning på problemet?

Lenke til kommentar
Videoannonse
Annonse
Det er databasebrukeren som ikke funker? Det er ikke satt opp med at brukeren bare kan logge seg på fra localhost, at du enten må lage en ny bruker eller grante brukeren din tilgang fra "ikke-localhost"

 

Webshopen er helt OK. config.php er selvfølgelig endret slik at den oppgir korrekt info for å få tilgang til databasen ute på nettet. (Så grønn er jeg da heller ikke :) ).

Nei, det er når jeg skal logge inn i admin at brukernavn/passord ikke blir godtatt.

Dette brukernavnet/passordet funker fint på localhost men altså ikke på serveren. php-skriptene er de samme,-databasen er den samme.

Lenke til kommentar
Webshopen er helt OK. config.php er selvfølgelig endret slik at den oppgir korrekt info for å få tilgang til databasen ute på nettet. (Så grønn er jeg da heller ikke :) ).

Nei, det er når jeg skal logge inn i admin at brukernavn/passord ikke blir godtatt.

Dette brukernavnet/passordet funker fint på localhost men altså ikke på serveren. php-skriptene er de samme,-databasen er den samme.

 

Men har du som Ekko sier sjekket at brukeren i databasen også har tilgang fra annet enn localhost?

 

Om det er MySQL vi snakker om her så skiller den på 'admin'@'localhost' og 'admin'@'%'.

 

Husker ikke om default adminbruker er 'admin'@'localhost' eller 'admin'@'%', men...

 

Om det er MySQL, prøv "SELECT User, Host FROM mysql.user;", så kan du se selv.

Lenke til kommentar

Var slik jeg opprinnelig tenkte, men slik han forklarer nå så har webshopen hans databasetilgangen i orden, det er brukeren som logger inn i webshopen som ikke får tilgang til webshoppen. Det er altså ikke databasebrukeren, men webshop-brukeren han har problem med.

 

 

Men om du kan kjøre en spørring mot brukertabellen i webshoppen, evt lage deg en ny bruker med et kjent passord direkte vha. sql så kan du kanskje finne ut av ting eller komme deg rundt det.

Lenke til kommentar
Men har du som Ekko sier sjekket at brukeren i databasen også har tilgang fra annet enn localhost?

 

Om det er MySQL vi snakker om her så skiller den på 'admin'@'localhost' og 'admin'@'%'.

 

Husker ikke om default adminbruker er 'admin'@'localhost' eller 'admin'@'%', men...

 

Om det er MySQL, prøv "SELECT User, Host FROM mysql.user;", så kan du se selv.

 

 

Jada, dette vet jeg godt,-som jeg sier, jeg er ikke så grønn.

Webshopen har en config-fil hvor en endrer påloggingen til mysql-serveren, og dette er selvfølgelig endret slik at det ikke prøver å logges på med localhost sitt host/user/password, men logger på med host/user/password som serveren på nettet krever.

 

Webshopen er lastet ned fra nettet, og vedkommende som har skrevet den har lagt inn et default passord i admin-delen. Brukernavnet er "admin", og passordet er "1234". Dette funker på localhost, men ikke på serveren på nettet.

Vi snakker altså IKKE om at webshopen prøver å logge på mysql-serveren og feiler, men at user/pass til admin-delen funker på localhost men ikke på nettet. Når en prøver å logge på mysql-servere med feil user/pass, så får en den typiske mysql-feilmeldingen. Den feilmeldingen jeg får er generert av log-in skriptet i webshopen, så glem alt om at problemet ligger i mysql-user/pass,-det er ikke det som er problemet. I så fall hadde jeg fått opp en mysql-feilmelding når skriptet hadde forsøkt å hente gyldig passord fra databasen for å sammenligne. Skriptet klarer å få tilgang til databasen, men finner isteden ut at user/pass jeg skriver inn er feil.

 

Det er altså innloggingen til webshopens admin som feiler, selv om user/pass er det samme på localhost som på serveren på nettet.

 

Jeg har sammenlignet det krypterte passordet i localhost sin database med det krypterte passordet i serveren på nettet sin database, og de er identiske. Så her har dere noe å bryne dere på.

Lenke til kommentar
Jeg har sammenlignet det krypterte passordet i localhost sin database med det krypterte passordet i serveren på nettet sin database, og de er identiske. Så her har dere noe å bryne dere på.

Da tror jeg at jeg må legge inn årene.

 

Er det ikke databaserelatert så har jeg lite å fare med :)

 

Lykke til videre med feilsøkingen!

Lenke til kommentar
Det eneste jeg kan tenke meg er at mysql-versjonen på localhost og mysql på serveren har forskjellige krypteringsnøkler???

Jeg får bryne meg videre :)

 

Hva med å sku av krypteringen litt og bruke det krypterte passordet til å logge inn med? F.eks står det kanskje md5($password) et sted bare fjern md5() funksjonen... en annen kjent en er sha1()... Det kan selvsagt også være mysql som krypterer, men da må du endre litt i spørringen...

Lenke til kommentar
Er du sikker på at brukeren "admin" ligger i tabellen "users"? - at når du flyttet databasen, at du også flyttet med innholdet i databasen, og ikke bare tabellene og radene?

 

Problem løst!

Løsningen var å fjerne passwordhashing-funksjonen i login-skriptet (skriptet brukte mysql-funksjonen PASSWORD), og legge inn bruker/pass direkte i databasen v. hj. a. SQL. -Slik fikk jeg tilgang til admin-delen.

Så endret jeg php-skriptet og la inn php sin md5 hashing funksjon istedenfor og opprettet ny bruker og nytt passord.

mysql (PASSWORD) i versjoner før 4.1 er forskjellig fra nyere versjoner, og det var dette som var problemet.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...