Kan iemand mij helpen, alvast bedankt.
Dit script dient om in te loggen op de site,
(dit is maar een deel van het script).

Het enige probleem is dat je niet wordt doorgestuurd nadat je met correcte gegevens hebt ingelogd terwijl
in de database onder de tabelnaam sessions wel degelijk de gegevens worden gestockeerd.

Wie kan mij helpen?

<?php
if(!$error){
$selectleden = mysql_query("SELECT * FROM users WHERE inlog='$inlog' AND wachtwoord = '$ww'");
if(mysql_num_rows($selectleden)) {
// Ingelogd
$hash = md5(uniqid(rand(), true));
$get_id = mysql_query("SELECT id FROM users WHERE inlog='$inlog' AND wachtwoord = '$ww'");
$fetch_id = mysql_fetch_assoc($get_id);
$insert_session = mysql_query("INSERT INTO sessions (id, userid, hash, logintime) VALUES ('','".$fetch_id['id']."','".$hash."',NOW())");

if ($insert_session) {
setcookie ("id", $fetch_id['id'],time()+$sessiontime);
setcookie ("hash", $hash,time()+$sessiontime);
header('Window-target: _parent');
header('location:beveiligd.html');
} else {
$error="FOUT";
exit();
}
} else {
// Foute pass
$error = "Fout wachtwoord!";
}



}
}

if(!$error){
echo $error;}

mysql_close($link);

?>
ini_set('display_errors', 'On');
error_reporting(E_ALL | E_STRICT);
dit staat in het begin van de pagina,
ik krijg geen errors.

echo 'Ja hij komt hier1!';
na alle if's gezet altijd met ander nummertje.

Krijg geen error van de header ...

Heb alles aangepast wat je hebt gezegd meer kan ik niet doen ...
Probeer dit eens:


<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL | E_STRICT);

// hier je database connectie
   
$selectledenq = "
		 SELECT 
			id
	    	 FROM 
			users 
		 WHERE 
			inlog = '".mysql_real_escape_string($inlog)."' 
		    AND wachtwoord = '".mysql_real_escape_string($ww)."'
		";

if($selectleden = mysql_query($selectledenq)){

	if(mysql_num_rows($selectleden) == 1){
	
		$hash = md5(uniqid(rand(), true));
		$fetch_id = mysql_fetch_assoc($selectleden);
	
		$insert_sessionq = "INSERT INTO sessions (userid, hash, logintime) 
					VALUES (
						'".mysql_real_escape_string($fetch_id['id'])."'
 					       ,'".mysql_real_escape_string($hash)."' 
					       ,NOW()
					        )
				    ";

		if($insert_session = mysql_query($insert_sessionq)){
                   setcookie ("id", $fetch_id['id'],time()+$sessiontime);
                   setcookie ("hash", $hash,time()+$sessiontime);
                   header('Location: beveiligd.html');
		   exit;
		}
		else{
		echo mysql_error();
		}
	}
	else{
	echo 'fout';
	}

}
else{
echo mysql_error();
}
?>


Waarbij ik aanneem dat $inlog en $ww ergens vandaan komen, $_POST $_GET ??
Ik zal een ander login script proberen dat lijkt mij het beste ...
Ik zal een ander login script proberen dat lijkt mij het beste ...
zou wel heel makkelijk zijn, dit is toch veel leuker voor je om werkend te krijgen?
Ja maar ik doe alles om het werkende te krijgen maar jullie geloven me niet ...
Dat is ook goed dat je van alles probeert, ik neem ook aan dat je er ook van wilt leren?
Dat van niet geloven was niet erg aardig, maar het kan gewoon bijna niet dat het niet werkt (dus dat er ergens een fout zit) maar dat er geen foutmeldingen komen.

Ik moet er helaas even vantussen, maar probeer nog wat met m'n script.

Wat gebeurt er als je regel 33 en 34 (setcookie()) weghaalt in mijn voorbeeld script?
Ramon van Dongen op 16/08/2013 17:53:32

Probeer dit eens:


<?php
ini_set('display_errors', 'On');
error_reporting(E_ALL | E_STRICT);

// hier je database connectie
   
$selectledenq = "
		 SELECT 
			id
	    	 FROM 
			users 
		 WHERE 
			inlog = '".mysql_real_escape_string($inlog)."' 
		    AND wachtwoord = '".mysql_real_escape_string($ww)."'
		";

if($selectleden = mysql_query($selectledenq)){

	if(mysql_num_rows($selectleden) == 1){
	
		$hash = md5(uniqid(rand(), true));
		$fetch_id = mysql_fetch_assoc($selectleden);
	
		$insert_sessionq = "INSERT INTO sessions (userid, hash, logintime) 
					VALUES (
						'".mysql_real_escape_string($fetch_id['id'])."'
 					       ,'".mysql_real_escape_string($hash)."' 
					       ,NOW()
					        )
				    ";

		if($insert_session = mysql_query($insert_sessionq)){
                   setcookie ("id", $fetch_id['id'],time()+$sessiontime);
                   setcookie ("hash", $hash,time()+$sessiontime);
                   header('Location: beveiligd.html');
		   exit;
		}
		else{
		echo mysql_error();
		}
	}
	else{
	echo 'fout';
	}

}
else{
echo mysql_error();
}
?>


Waarbij ik aanneem dat $inlog en $ww ergens vandaan komen, $_POST $_GET ??

En die komen inderdaad via POST

Dan krijg ik deze errors:

Notice: Undefined variable: sessiontime in login.php on line 36

Warning: Cannot modify header information - headers already sent by (output started at login.php:36) in login.php on line 36

Notice: Undefined variable: sessiontime in login.php on line 37

Warning: Cannot modify header information - headers already sent by (output started at login.php:36) in login.php on line 37

Warning: Cannot modify header information - headers already sent by (output started at login.php:36) in login.php on line 38

Toevoeging op 16/08/2013 18:35:32:

Als ik de twee regels weg haal dan wordt ik onmiddelijk naar beveiligd.html gestuurd!
$sessiontime, waar komt die dan vandaan?
Als je die nog even definieert zou het vast wel moeten werken.
$sessiontime='1600';
staat bovenaan bij POSTen van de variables
In je code van 16/08/2013 17:18:09" zie nog steeds staan:

header('Window-target: _parent');
header('location:beveiligd.html');


Wat doet die 1e header?

Reageren