Avean Skrevet 15. desember 2010 Del Skrevet 15. desember 2010 Sliter med å finne ut noe her. Får feilmelding når jeg prøver å logge inn med dette: mysql_num_rows() expects parameter 1 to be resource Går jeg tilbake på siden så registrerer den faktisk sessionet med brukernavnet selv om du taster et brukernavn som ikke finnes i databasen. Så tydeligvis sjekken av brukernavn og passord også feiler. Her er sjekken min: $Login=$_POST['Login']; if($Login){ // Hvis du har klikket Login knappen $brukernavn=$_POST['brukernavn']; $_SESSION['brukernavn']=$brukernavn; $md5_password=md5($_POST['passord']); // Krypter med md5 // Matche brukernavn og passord $result=mysql_query("select * from users where brukernavn='$brukernavn' and passord='$md5_password' "); if(mysql_num_rows($result)!='0'){ // Hvis det stemmer session_register("brukernavn"); // Lager session brukernavn Header("Location: index.php"); exit; }else{ // Hvis ikke stemmer $loginfail="Ugyldig brukernavn eller passord"; } } ?> Lenke til kommentar
Warz Skrevet 15. desember 2010 Del Skrevet 15. desember 2010 Det er ikke så rart at den registrerer brukernavnet i session, du setter jo den session rett etter at bruker har trykt login ($_SESSION['brukernavn']=$brukernavn;), altså FØR du sjekker om passord i det hele tatt stemmer. Og IKKE bruk session_register! Den er deprecated. Så er spørsmålet, hvorfor funker ikke SQLen? Ser ikke ut som du er koblet til riktig eller noe. Men! Du må teste slik, se hva spørringen sier: $sql = "select * from users where brukernavn='$brukernavn' and passord='$md5_password' "; echo $sql; $result=mysql_query($sql);; Lenke til kommentar
Avean Skrevet 16. desember 2010 Forfatter Del Skrevet 16. desember 2010 Kun variabelen, jeg registrerer ikke session før brukernavn og passord stemmer. if(mysql_num_rows($result)!='0'){ // Hvis det stemmer session_register("brukernavn"); // Lager session brukernavn Lenke til kommentar
Warz Skrevet 16. desember 2010 Del Skrevet 16. desember 2010 Her registrerer du session FØR brukernavn og passord stemmer. $_SESSION['brukernavn']=$brukernavn; Lenke til kommentar
Avean Skrevet 16. desember 2010 Forfatter Del Skrevet 16. desember 2010 Det er da akkurat samme hvor jeg sier at Session variabel = brukernavn variabelen. Jeg bruker akkurat samme oppsett på en annen side hvor det funker. Sessionet brukernavn blir ikke startet før ETTER sjekken. Tror jeg har funnet ut av problemet, skal teste når jeg kommer hjem. Lenke til kommentar
Warz Skrevet 16. desember 2010 Del Skrevet 16. desember 2010 Når du skriver $_SESSION['brukernavn']=$brukernavn; da er denne session opprettet. Hvis du skriver: session_start(); $brukernavn = 'test'; $_SESSION['brukernavn']=$brukernavn; echo $_SESSION['brukernavn']: Vil første besøk på siden ikke vise noen ting. Neste derimot vil vise "test". Tilsvarende. Når du skriver $_SESSION['brukernavn']=$brukernavn; og du etterpå skriver session_register("brukernavn"); vil denne ikke fungere. Du bør også unngå bruk av session_register da den er deprecated. Uansett, feilen ligger her i MySQLen og det blir umulig å hjelpe dersom du ikke kan si hva SQLen sier. Men bra du får det til, husk å post hva som løste problemet her. Lenke til kommentar
Ernie Skrevet 16. desember 2010 Del Skrevet 16. desember 2010 (endret) Et tips som ikke er direkte relatert til problemet: SQL-spørringen du har der er sårbar for noe som heter «SQL injection». I korte trekk: Hva skjer hvis brukeren skriver inn brukernavnet admin'# ? For å unngå problemet bør du se på funksjonen mysql_real_escape_string(). Ja, og problemet kommer av at SQL-spørringen ikke er gyldig. Verdien du får tilbake fra mysql_query er ganske garantert false. Funksjonen mysql_error() kan brukes for å finne ut hvilken feilmelding som genereres. Endret 16. desember 2010 av Ernie Lenke til kommentar
nwinger Skrevet 15. januar 2011 Del Skrevet 15. januar 2011 Hei, Lurer på en ting ved bruk av $_SESSION['brukernavn']. Kan man like gjerne bruke session_destroy() for å stanse denne? Nicklas Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå