PHP koden ser slik ut:
$sql .= " AND passord = PASSWORD('" . $_POST['passord'] . "') ";
I mysql tabellen ser det slik ut:
+-----+------------+------------+
| kid | brukernavn | passord |
+-----+------------+------------+
| 4 | Karl | *0F49D25CF |
+-----+------------+------------+
Jeg kan iklke logge inn i det hele tatt ved bruk av PASSWORD.
Jeg bruker PHP 5.2.6
og Mysql 5.0.51b
Er det noe feil i linja $sql=...?
Karl
> PHP koden ser slik ut:
> $sql .= " AND passord = PASSWORD('" . $_POST['passord'] . "') ";
[..]
> Er det noe feil i linja $sql=...?
Ja. Echo eller print $sql så kanskje du ser det du også. Noe du forøvrig
burde ha gjort før du startet forige tråd...
--
Regards/mvh Joachim Mæland
If everything seems under control, you're just not going fast enough.
-Mario Andretti
Ja, jeg har prøvd det, men ser ikke feilen.
Kjører jeg SELECT * FROM brukere WHERE passord = PASSWORD("123hka1");
i mysql-klienten returnerer det intet resultat...
Koden er nøye fulgt og kontrollert med eksemplet i boka "Beginning
PHP5, Apache, MySQL, Webdevelopment"
Karl
> Ja, jeg har prøvd det, men ser ikke feilen.
Tre hete tips:
1. Test alltid $sql i en MySQL-klient, (noe du forteller at du gjør)!
Test også funksjoner slik at du vet at disse benyttes riktig og faktisk
returnerer forventede verdier. Tipper jeg ville gjort en SELECT PASSWORD
('123hka1') i MySQL-klienten og sammenlignet resultatet med hva som
faktisk er lagret i tabellen...
2. Manualen til MySQL sier klart av PASSWORD() ikke skal benyttes for å
"kryptere" rader i egne tabeller, selv om det fungerer utmerket her hos
meg. SHA1() og MD5() er bedre. Jeg blir ikke plagsomt overasket om
resultatet av PASSWORD() kan endres mellom ulike versjoner av MySQL. Da
står du plutselig uten gyldige brukere etter en oppgradering og boka di
har gjort seg fortjent til en plass i Hall of Shame... :-P
3. Les hva manualen skriver om typer for resultatet av MD5 og SHA1. Det
er ikke vilkårlig hvordan dataene lagres, eller hva du uforvarende
fjerner på eget initiativ.. (Tipper dette er en variant av pkt 1) ;-)