Inlog informatie uit database

Status
Niet open voor verdere reacties.

Supakiller

Gebruiker
Lid geworden
5 sep 2009
Berichten
66
Hallo, ben ik weer haha.

Nu haalt hij weer verkeerd informatie uit de database.
Bij het inloggen gebruik ik de juiste informatie, nagecheckt in de database.

Hij zegt altijd dat mijn gebruikersnaam & wachtwoord niet overeenkomen. Terwijl dat wel zo is.

Dit is de code na het intypen van je gebruikersnaam en wachtwoord
PHP:
<?php
if(isset($_POST['login'],$_POST['pass'])){
	$login	=	strip_tags($_POST['login']);
	$login	=	strtolower($login);
	$pass	=	strip_tags($_POST['pass']);
	$dbres	=	mysql_query("SELECT * FROM `gebruiker` WHERE `login`='$login' AND `pass`=MD5('$pass')");

		if($data = mysql_fetch_object($dbres)){
		$_SESSION['login']     = $data->login;
header("Location: nav.php");

			
} else {

		echo "Het wachtwoord of de gebruikersnaam kwam niet overeen!<br />";

		}
}
?>

Mvg,

Supa
 
Wat van belang is (kijk dat na met PHPMyadmin of welke andere tool je dan ook gebruikt voor toegangsbeheer tot je databases) of de gebruikersnaam die je gebruikt ook vanaf alle computers gebruikt mag worden. Dit is van belang als je database niet op server 'localhost' staat maar ergens anders in je eigen thuisnetwerk of bij een provider is het van belang of het inlogaccount dat je gebruikt wel mag verbinden vanaf de computer van waaruit de verbinding wordt gemaakt.

Succes,

Tijs.
 
Wat van belang is (kijk dat na met PHPMyadmin of welke andere tool je dan ook gebruikt voor toegangsbeheer tot je databases) of de gebruikersnaam die je gebruikt ook vanaf alle computers gebruikt mag worden. Dit is van belang als je database niet op server 'localhost' staat maar ergens anders in je eigen thuisnetwerk of bij een provider is het van belang of het inlogaccount dat je gebruikt wel mag verbinden vanaf de computer van waaruit de verbinding wordt gemaakt.

Succes,

Tijs.

Ik heb de database op een tijdelijke gratis host, maar hoe check ik of het vanaf elke computer gebruikt mag worden, want ik heb de gebruikersnaam in de database nergens aan gekoppeld, maar ik ga iets maken dat je gebruikersnaam aan je ip wordt gekoppeld, om hacks te voorkomen. ( dat kun je in of uit schakelen )
 
Ik heb het over PHPMyAdmin gehad als beheertool van je MySql databases. Heb je dat niet op die host?

Tijs.
 
Kijk dan eens in deze discussiedraad, vooral de 2de posting (en de bijlagen (plaatjes) die daarbij zitten).

Daar gaat het ook over rechten om vanaf andere computers dan 'localhost' te verbinden met databases.

Tijs.
 
bedankt, maar dit is niet wat ik bedoel.
Want ik had het precies zo bij een andere site en daar deed hij het wel. ( zelfde database )
Ik moet gewoon ergens een fout hebben gemaakt

Iemand verder een idee ?
 
Je script is ook vreemd. Je kijkt of je de functie mysql_fetch_object kunt uitvoeren. Die kun je sowieso wel uitvoeren. Wat je beter kunt doen, is kijken wat het aantal resultaten is dat je terugkrijgt.

PHP:
<?php
if ( isset ( $_POST[ 'login' ] ) && isset ( $_POST[ 'pass' ] ) ) {
  $login = strip_tags ( $_POST[ 'login' ] );
  $login = strtolower( $login );
  $pass = md5 ( strip_tags ( $_POST[ 'pass' ] ) );
  $dbres = mysql_query ( "SELECT * FROM gebruiker WHERE login = '" . $login . "' AND pass = '" . $pass . "'" );
 
  if ( mysql_num_rows ( $dbres ) > 0 ) {
    $_SESSION[ 'login' ] = $login;
    header("Location: nav.php");
  } else {
    echo "Het wachtwoord of de gebruikersnaam kwam niet overeen!<br />";  
  }
}
?>

Daarnaast is je script erg kwetsbaar. Je zou eens moeten kijken naar mysql_real_escape_string
 
Laatst bewerkt:
Hmm oke, zou je me daarbij kunnen helpen ?


Hij blijft trouwens zeggen dat wachtwoord en gebruikersnaam niet overeenkomen, en het is geen mysql error.
Mis ik een stuk script ofzo ?

Ik heb nog wel de functie trouwens
PHP:
if(isset($_SESSION['login'])){
	$dbres			=	mysql_query("SELECT * FROM `gebruiker` WHERE `login`='{$_SESSION['login']}'");
	$data			=	mysql_fetch_object($dbres);
	$_COOKIE['login']	=	$_SESSION['login'];
	} else {
	unset($_SESSION['login']);
	}

	function check_login() {
		if(isset($_SESSION['login'])){
		return TRUE;
		} else {
		return FALSE;
		}
	}
 
Laatst bewerkt:
Ja, het is in dit geval alleen de functie om $login en $pass zetten.

PHP:
$dbres = mysql_query ( "SELECT * FROM gebruiker WHERE login = '" . mysql_real_escape_string ( $login ) . "' AND pass = '" . mysql_real_escape_string ( $pass ) . "'" );

Nu ben je in ieder geval beschermd tegen SQL-injections.
 
Ja, het is in dit geval alleen de functie om $login en $pass zetten.

PHP:
$dbres = mysql_query ( "SELECT * FROM gebruiker WHERE login = '" . mysql_real_escape_string ( $login ) . "' AND pass = '" . mysql_real_escape_string ( $pass ) . "'" );

Nu ben je in ieder geval beschermd tegen SQL-injections.

Dat is mooi. maar waarom wil het inloggen niet ?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan