Vervolg op mijn vorige topic.... das nooit goed!

Maar ik kom er niet uit, de databaseresultaten krijg ik niet uitgelezen, ze geven allemaal ' '...


<?php

session_start();

include('../connection.php');

if(isset($_POST['username'],$_POST['password'])) {
	
	// Bouw query op om gegevens te testen
	
	$query = sprintf("SELECT `username`,`email`,`ingame_name`,`am_money`,`am_coins`,`premium`,`premium_ends` FROM `users` WHERE `username` = '%s' AND `password` = '%s' LIMIT 1", $_POST['username'], sha1($_POST['password']));
	
	// Maak verbinding met de database en voer de query uit
	
	$connection = mysql_pconnect($connection_host,$connection_user,$connection_pass);
	$database = mysql_select_db($connection_db);
	$result = mysql_query($query);
	$row = mysql_fetch_assoc($result);
	$num_rows = mysql_num_rows($result);
	
	// Controleer of er een match is gevonden voor combinatie gebruikersnaam/wachtwoord, stuur anders terug
	
	if($num_rows =! 1) {
		header("Location: ".$_SERVER['HTTP_REFERER']);
		exit;
	} else {
		
		// Start een sessie en geef user vars mee
		
		unset($_SESSION['userinfo']);
		
		$_SESSION['userinfo'] = array();
		$_SESSION['userinfo']['username'] = $row['username'];
		$_SESSION['userinfo']['email'] = $row['email'];
		$_SESSION['userinfo']['ingamename'] = $row['ingame_name'];
		$_SESSION['userinfo']['money'] = $row['am_money'];
		$_SESSION['userinfo']['coins'] = $row['coins'];
		$_SESSION['userinfo']['premium'] = $row['premium'];
		$_SESSION['userinfo']['premium_ends'] = $row['premium_ends'];
		$_SESSION['userinfo']['loggedin'] = date("Y m d H:i");
		
		$_SESSION['login'] == true;
		
		echo '<script type="text/javascript">window.alert(\'Gebruikersnaam: '.$row['username'].' // Ingame-naam: '.$row['ingame_name'].'\');</script>';
		
		// Stel een cookie in om automatisch naar de loginpagina te gaan
		
		if((isset($_POST['gotologinpage'])) && (!empty($_POST['gotologinpage'])) && ($_POST['gotologinpage'] == 1)) {
			setcookie("autologinpage",true,time()+(86400 * 365),'/');
		} else {
			setcookie("autologinpage",false,0,'/');
		}
		
		// Stuur door naar spel
		
		header("Location: ./");
	}
	
	mysql_close($connection);
	mysql_free_result($result);
	
} else {
	header("Location: ".$_SERVER['HTTP_REFERER']);
}

?>


Op dit moment is het zo dat als ik hier de sha1 functie weghaal, en in de database de hash vervang door de waarde die hij moet vertegenwoordigen, werkt het wel
hmm nu lukt het wel:P toch gek...

Gelieve Niet Bumpen:

Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.

SanThe.
JJ schreef op 05.10.2009 20:08
hij is 40 lang... ik maak hem ff 41 miss helpt dat

Maak het om te testen dan even 'echt' groter. 200 of zoiets. Er bestaan ook sha()'s van 80 en 160. Standaard is het in php naar mijn weten altijd 40.
Je kunt een VARCHAR gerust 255 lang maken. MySQL pakt precies zoveel geheugen als nodig is om een veld te vullen.
Oke, fijn om te weten! Doe ik dat voortaan. PHP controleert toch of de lengte niet te lang (onpraktisch) is, en SQL injection natuurlijk. (in dit script nog in te bouwen, is 1 functie)

Reageren