Problem mit Cookie

Peetz

Mitglied
Also ich will ein Cookie schreiben lassen, dazu habe ich zwei Dateien gemacht. Einmal die Datei Main.html, in der man den Cookieinhalt in Textfelder schreiben kann und eine andere Datein, cookiewrite.php, die die Aktion ausführt. Nur funktioniert es nicht, könnt ihr mir sagen wo ich den Fehler gemacht habe?


Die Main.html:
Code:
<html>

<head>
<meta http-equiv="Content-Language" content="de">
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Neue Seite 3</title>
<base target="_self">
</head>

<body bgcolor="#273037">
<form action="write.php" method="post"> 

Nick:<br><input type="text" name="nick" size="10"><p>
Passwort:<br><input type="text" name="passwort" size="10"><p>

<form action=cookiewrite.php method=post> 
<input type=submit value=Abschicken>

</body>
</html>

Und die cookiewrite.php:
PHP:
 <?php   

$nick = $_POST['nick']; 
$passwort = $_POST['passwort']; 

$vars = "$nick#$passwort";   

setcookie("planetenkampf", $vars,time()+3600);     
$cookievar = preg_split("/#/", $planetenkampf); 
$nick = $cookievar[0]; $passwort = $cookievar[1];
echo "$nick<br>"; 
echo "$passwort<br>"; 
?>
 
Also bei der Main.html ist einiges falsch:
Es wird 2 mal ein <form>-Tag geöffnet, aber keiner geschlossen. Desweiterem verweist die erste Form auf "cookie.php", aber deine File heißt "cookiewrite.php"...

Code:
<html>
<head>
 <title>Neue Seite 3</title>
 <meta http-equiv="Content-Language" content="de">
 <meta name="GENERATOR" content="Microsoft FrontPage 5.0">
 <meta name="ProgId" content="FrontPage.Editor.Document">
 <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
 <base target="_self">
</head>

<body bgcolor="#273037">
 <form action="cookiewrite.php" method="post"> 
  Nick:<br><input type="text" name="nick" size="10"><p>
  Passwort:<br><input type="text" name="passwort" size="10"><p>
  <input type=submit value=Abschicken>
 </form>
</body>
</html>

Bei der cookiewrite.php hast du beim preg_split auf eine Variable benutzt, die gar nicht im Quellcode auftaucht :confused:

Code:
<?php 
$nick = $_POST['nick']; 
$passwort = $_POST['passwort']; 
$vars = $nick . "#" . $passwort;    
setcookie("planetenkampf", $vars, time()+3600);      
$cookievar = preg_split("/#/", $_COOKIE['planetenkampf']); 
$nick = $cookievar[0];
$passwort = $cookievar[1]; 
echo $nick . "<br>"; 
echo $passwort . "<br>"; 
?>

Gruß Marvin.
 
Noch was

Ich hab da noch zwei kleine Fragen:

1. das "time()+3600); " bedeutet, dass der cookie eine Lebensdauer von 1 Stunde hat, oder?
2. Warum finde ich meinen angelegten Cookie nicht im Cookieordner wieder?
 
1.
bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])

Parameter: expire
Beschreibung: Der Zeitpunkt, wann das verfällt. Dies ist ein Unix Timestamp, also die Anzahl Sekunden seit der Unix-Epoche. In anderen Worten werden Sie diesen Wert wahrscheinlich mittels der Funktion time() plus der Anzahl Sekunden bis zum gewünschten Ablauf des Cookies. Sie könnten aber auch mktime() verwenden.

3600 Sekunden = 60 Minuten = 1 Stunde, ergo: Ja :)

2. Weiß ich nicht.

Gruß Marvin.
 
Zurück