hakonvl Skrevet 7. februar 2009 Del Skrevet 7. februar 2009 (endret) Hei!! Her kommer jeg igjen og maser med alle errorene mine igjen. Denne gangen så gjelder det disse Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in I:\PortableApps\xampp\htdocs\home\logginn.php on line 22 Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in I:\PortableApps\xampp\htdocs\home\logginn.php on line 24 Du er nå logget inn somRockie errorene og denne: <? //inkluderer filer og definerer serverroot $root = $_SERVER['DOCUMENT_ROOT']; $domene = $_SERVER['SERVER_NAME']; include $root . '/home/funksjoner.inc.php'; include $root . '/home/config.php'; //Begynner selve scriptet session_start(); if(isset($_POST['logginn'])) { //henter brukernavn og passord $brukernavn = $_POST['brukernavn']; $passord = $_POST['passord']; //Beskytter mot mysqlinjection $brukernavni = stripslashes($brukernavn); $passordi = stripslashes($passord); $brukernavnii = mysql_real_escape_string($brukernavni); $passordii = mysql_real_escape_string($passord); //Begynner databasebehandlingen kobleTil('fy'); $sql = "SELECT * FROM brukere WHERE brukernavn = '$brukernavnii' AND passord = PASSWORD('$passordii')"; $resultat = mysql_query($sql, $tilkobling); $rad = mysql_fetch_row($resultat); if($rad == 1) $_SESSION['innlogget']=true; echo "Du er nå logget inn som"; echo $brukernavn; } else { echo '<form action="http://'; echo $domene; echo '/home/logginn.php" method="POST">'; echo 'Brukernavn: <input type="text" name="brukernavn" value=Brukernavn><br />'; echo 'Passord: <input type="password" name="passord" value="passord">'; echo '<input type="submit" value="Logg inn!" name="logginn"></form>'; } ?> Edit: Kvitta meg med noen av errorene, men sitter igjen med Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in I:\PortableApps\xampp\htdocs\home\logginn.php on line 27 Du er nå logget inn somBrukernavn Tusen takk til alle som hjelper meg/har hjulpet meg tidligere! Håper jeg blir like god Endret 7. februar 2009 av Rockie Lenke til kommentar
Martin A. Skrevet 7. februar 2009 Del Skrevet 7. februar 2009 $resultat = mysql_query($sql, $tilkobling) OR die( mysql_error() ); Lenke til kommentar
hakonvl Skrevet 7. februar 2009 Forfatter Del Skrevet 7. februar 2009 (endret) You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= 'Rockie' AND passord = PASSWORD('dufårikkevitedet')' at line 1 Skulle jo ikke være noe tull med spørringa. Fikk den jo til rett opp mot databasen. SKal sjekke en gang til for sikkerhets skyld. Kan jo ha skjedd englipp et sted. Edit: La hele spørringa på en rad og da gikk det. Får bare galt brukernavn/passord, men begge deler er riktig. Edit2: bytta ut if($rad == 1) til if($rad == 0) og da ble jeg logga inn, så da er det noe feil med variablene i spørringa eller noe derimkring. Kjører litt mer research. Edit3: Hvis jeg setter if($rad == 1) til if($rad == 0) og legger inn feil brukernavn og passord kommer jeg inn. Legger jeg inn riktig så kommer jeg ikke inn. Hvis jeg den til 1 kommer jeg ikke inn uansett Kjører jeg en var_dump med riktig brukernavn/passord får jeg bool(false) og med riktig brukernavn/passord får jeg array(7) { [0]=> string(1) "1" [1]=> string(6) "Rockie" [2]=> string(41) "*C98BFF6EB2D3780227E3A745BD11A814A4542F9C" [3]=> string(21) "[email protected]" [4]=> string(1) "0" [5]=> NULL [6]=> NULL. Feilen ligger i if($rad == 1) løkken. Hva er feil med den og er det noe annen måte jeg kan sjekke hvor mange poster som kommer tilbake? Edit4: Gjorde om løkken til if($rad == NULL){ echo "Feil brukernavn/passord"; } else { $_SESSION['innlogget']=true; echo "Du er nå logget inn som"; echo $brukernavn; } Det fungerer, men er det noen sikkerthetsrisikoer med det som jeg ikke ser? Endret 7. februar 2009 av Rockie Lenke til kommentar
OIS Skrevet 8. februar 2009 Del Skrevet 8. februar 2009 $rad = mysql_fetch_row($resultat); if($rad == 1) mysql_fetch_row returnerer et array hvis det er rader igjen i $resultat, hvis ikke returnerer den false. Anbefaler deg å lese i dokumentasjonen. if ($bruker = mysql_fetch_row($resultat)) { $_SESSION['innlogget']=true; echo "Du er nå logget inn som ", $brukernavn; } else { // ikke logget inn } Prøv istedenfor mysql_fetch_assoc, da du kan bruke sql felt navnene som array nøkler: if ($bruker = mysql_fetch_row($resultat)) { $_SESSION['innlogget']=true; echo "Du er nå logget inn som ", $bruker['brukernavn']; } Lenke til kommentar
hakonvl Skrevet 8. februar 2009 Forfatter Del Skrevet 8. februar 2009 (endret) Ok, skal teste det. Slo opp i manualen og så det i går, men fant ikke på noen annen god metode og gjøre det på. Takk Edit: Feil brukernavn/passord. Endret 8. februar 2009 av Rockie 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å