Gå til innhold

Sliter med MySQL database error.


Anbefalte innlegg

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 :p

Endret av Rockie
Lenke til kommentar
Videoannonse
Annonse

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 av Rockie
Lenke til kommentar

	$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

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...