Cookies auslesen

meisti94

Erfahrenes Mitglied
Guten Morgen.

Ich bin an einer Seite mit einem Auto login beschäftigt.

Das "normale" Login funktioniert ganz gut.

Wenn man nun "Login merken" anklickt und sich einloggt werden Cookies gesetzt. In meinem Fall wie folgt:

PHP:
(Weiter oben)

$name = $_POST['name'];
$pword = $_POST['pword'];

----------------------------------------------

$randomSeperator = '!~!';
$hash = md5($row['Id'] . $randomSeperator . $name . $pword);
setCookie('Pasteid', $row['Id'], time()+(3600*24*365));
setCookie('Pasteusername', $name, time()+(3600*24*365));
setCookie('Pastehash', $hash, time()+(3600*24*365));
echo "Login erfolgreich!";

Die 3 Cookies werden gesetzt (überprüft in FF).

Beim auslesen auf der Main-Page kommen dann die Probleme..

Wenn ich "echo $_COOKIE['Pasteusername']; " oder ein anderes Cookies nehme kommt einfach nichts. Es liegt nicht daran, dass da nichts dargestellt werden kann, denn wenn ich 'echo "Hallo";' mache, kommt "Hallo".

Kann mir jemand helfen? Ich wäre sehr froh darüber.. :rolleyes:

Liebe Grüsse,

Meisti
 
Zuletzt bearbeitet:
Was passiert wenn du es so versuchst:

PHP:
var_dump($_COOKIE);
// oder so
print_r($_COOKIE);

Oder schau dir mal den Quelltext der Seite an. Vielleicht ist da ja was verborgen?
 
Folgendes Resultat:

array(1) { ["PHPSESSID"]=> string(32) "353ce35d4b2f3641be24z4b3b4b2a4f9" } (var_dump)
Array ( [PHPSESSID] => 353ce35d4b2f3641be24z4b3b4b2a4f9 ) (print_r)

(Wurde leicht abgefälscht, also nicht 1:1 mein hash)

Im Quelltext steht sonst nichts..
 
Du hast mich falsch verstanden.

Die Frage ist ob die im Cookie gespeicherten Angaben gleich im Anschluss auf der selben Seite ausgegeben werden oder ob du hierzu auf eine andere Seite wechselst.

Gastzugang hilft hier glaube ich nichts.
 
Ich wechsle die Seite.

Also es funktioniert so:

Login fehlgeschlagen -> Fehlermeldungen

Login erfolgreich -> Cookies setzen, weiterleitung auf "Login=Successful.php", weiterleitung zur Main Page..
 
Wenn es möglich ist, dann zeige hier mal den gesamten Code. Oder wenn es zu viel ist, dann stell die Seite(n) als ZIP Datei hier rein.
 
Wenn du willst kannst du dich mal einloggen.. Login: Gast Pw: 123

Also hier vom Login..

PHP:
if(isset($_POST['oke'])){

$name = $_POST['name'];
$pword = $_POST['pword'];

if($name&&$pword&&$autologin==1)
{
	$chkuser = mysql_query("SELECT username FROM login WHERE username=BINARY('".mysql_real_escape_string($_POST['username'])."') = '{$name}'");
	
	$trollo = mysql_query("SELECT Id FROM login WHERE username = '{$name}'");
	$row = mysql_fetch_assoc($trollo);

	$_SESSION['id'] = $row['Id'];

	
	$chkuserare = mysql_num_rows ($chkuser);
	
	if ($chkuserare !=0) 
	{
		
		$chkpword = mysql_query("SELECT password FROM login WHERE username = '{$name}'");
		
		$id = mysql_query("SELECT Id FROM login WHERE username = '{$name}'");
		
		$passworddb = mysql_fetch_assoc($chkpword);
		
		if (md5($pword) != $passworddb['password'])
		{
			$error= "<br /><div class='error'>Das eingegebene Passwort ist falsch.</div>";
		}
		else
		{
			$randomSeperator = '!~!';
			$hash = md5($row['Id'] . $randomSeperator . $name . $pword);
			setCookie('Pasteid', $row['Id'], time()+(3600*24*365));
			setCookie('Pasteusername', $name, time()+(3600*24*365));
			setCookie('Pastehash', $hash, time()+(3600*24*365));
			echo "Login erfolgreich!";
			header("location:../login=successful.php");
		}
		
	}
	else
	{
		$error= "<br /><div class='error'>Login fehlgeschlagen.</div>";
	}
}
else
{
if($name&&$pword)
{
	$chkuser = mysql_query("SELECT username FROM login WHERE username = '{$name}'");
	
	$chkuserare = mysql_num_rows ($chkuser);
	
	if ($chkuserare !=0) 
	{
		
		$chkpword = mysql_query("SELECT password FROM login WHERE username = '{$name}'");
		
		$passworddb = mysql_fetch_assoc($chkpword);
		
		if (md5($pword) != $passworddb['password'])
		{
			$error= "<br /><div class='error'>Das eingegebene Passwort ist falsch.</div>";
		}
		else
		{
			echo "Login erfolgreich!";
			header("location:../login=successful.php");
		}
		
	}
	else
	{
		$error= "<br /><div class='error'>Login fehlgeschlagen.</div>";
	}
}
else
{
$error = "<br /><div class='error'>Login fehlgeschlagen.</div>";
}

Beim Auslesen habe ich dann einfach oben den Code von dir, also für die Ausgabe:

PHP:
var_dump($_COOKIE);
// oder so
print_r($_COOKIE);

Reicht das?
 
Wo wird denn der Wert von $autologin auf 1 gesetzt?

Das müsste doch der Wert der Checkbox sein die man beim Anmelden markieren kann. Da der $_POST-Wert hier nicht angegeben ist, wird der Teil der IF-Anweisung wohl gar nicht ausgeführt!?

Abgesehen davon finde ich es eh etwas umständlich die komplette Prüfung der Anmeldung doppelt zu machen je nachdem ob man die Checkbox markiert hat oder nicht.
 
Zurück