Cookie zerstört sich immer selbst
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abziehen
code
erneutem aufrufen
erneuten male
gegeben beitrag
jemand
klammern
kleinen denkfehler
lebensdauer
minute
nachricht
problem
sicherheit
supernova
textdatei
tip
verfallsdatum
zeile
zitieren
zuweisung
-
Hi, ich habe das Problem, dass sich ein sehr wichtiger Cookie selbst zerstört, nachden man ihn das erste mal verwendet hat. Ich habe damit angefangen einen Chat zu schreiben, das geht auch wunderbar, nur soll man zuerst einen Nickname wählen. hier sind mal die Dateien, die ich habe:
chat.php:
</td>
<td style=\"background-image:url(graphic/border/r5.png);\"></td>
</tr>
<tr><td height=\"8\" style=\"background-image:url(graphic/border/r6.png);\"></td><td style=\"background-image:url(graphic/border/r7.png);\"></td><td style=\"background-image:url(graphic/border/r8.png);\"></td></tr>
</table></td>
<td valign=\"top\"><table class=\"blind\" cellspacing=\"0\" style=\"margin:6px\">
<tr><td width=\"8\" height=\"8\" style=\"background-image:url(graphic/border/r1.png);\"></td><td style=\"background-image:url(graphic/border/r2.png);\"></td><td width=\"8\" style=\"background-image:url(graphic/border/r3.png);\"></td></tr>
<tr>
<td style=\"background-image:url(graphic/border/r4.png);\"></td>
<td>
<form action=\"chat3.php\" method=\"post\">
<table class=\"in_border\" width=\"252\">
<tr><td colspan=\"2\"><h4>Chat</h4></td></tr>
<tr>
<td align=\"right\" bgcolor=\"#E6E6E6\"><font color=\"#000000\" face=\"Arial,helvetica\" size=\"-1\">Nickname:</font></td>
<td bgcolor=\"#E6E6E6\"><input type=\"text\" name=\"name\" value size=\"20\"></td>
</tr>
</td></tr>
<td align=\"center\"><input type=\"image\" src=\"http://michelbach.lima-city.de/go.JPG\" /></td></tr>
</table>
</form>
chat3.php:
<?php
$vare = time() + 6000;
($name = $_POST[\'name\']);
setcookie(\"nickname\", $name, $vare);
$fppp = fopen(\"chat.txt\",\"r\");
($nickname = $_COOKIE[\'nickname\']);
if ($fppp)
{while (!feof($fppp))
{$zeile = fgets($fppp, 1050);
echo $zeile;}
fclose($fppp);}
if (\"\"==$nachricht) {
echo \"<br />\\n\";
echo \"<br />\\n\";
echo \"Bitte Nachricht eingeben!<br />\\n\";
echo \"<br />\\n\";
echo \"<br />\\n\";
} else {
$nl = chr(13) . chr(10);
$fp = fopen(\"chat.txt\",\"a\");
if ($fp)
{flock($fp,2);
fputs ($fp, \"$nickname $nachricht<br />\\n\");
flock($fp,3);
fclose($fp);}
}
?>
</td>
<td style=\"background-image:url(graphic/border/r5.png);\"></td>
</tr>
<tr><td height=\"8\" style=\"background-image:url(graphic/border/r6.png);\"></td><td style=\"background-image:url(graphic/border/r7.png);\"></td><td style=\"background-image:url(graphic/border/r8.png);\"></td></tr>
</table></td>
<td valign=\"top\"><table class=\"blind\" cellspacing=\"0\" style=\"margin:6px\">
<tr><td width=\"8\" height=\"8\" style=\"background-image:url(graphic/border/r1.png);\"></td><td style=\"background-image:url(graphic/border/r2.png);\"></td><td width=\"8\" style=\"background-image:url(graphic/border/r3.png);\"></td></tr>
<tr>
<td style=\"background-image:url(graphic/border/r4.png);\"></td>
<td>
<form action=\"chat3.php\" method=\"post\">
<table class=\"in_border\" width=\"252\">
<tr><td colspan=\"2\"><h4>Chat</h4></td></tr>
<tr>
<td align=\"right\" bgcolor=\"#E6E6E6\"><font color=\"#000000\" face=\"Arial,helvetica\" size=\"-1\">Nachricht:</font></td>
<td bgcolor=\"#E6E6E6\"><input type=\"text\" name=\"nachricht\" value size=\"20\"></td>
</tr>
</td></tr>
<td align=\"center\"><input type=\"image\" src=\"http://michelbach.lima-city.de/go.JPG\" /></td></tr>
</table>
</form>
<p><a target=\"_self\" href=\"http://game-nr.1.am/chat3.php\">nachschauen, ob jemand was geschrieben hat!</a></p>
In chat3.php wird der cookie aus der geposteten variable gebildet. Ich hab mal alle cookies gelöscht, die siete chat.php aufgemacht und mir einen Nickname ausgedacht. Nach dem sich die seite chat3.php geöffnet hat, war der Cookie zu sehen. als ich die erste Nachricht abgeschickt habe war der cookie plötzlich verschwunden, obwohl ich im eine Lebensdauer von 100 Minuten gegeben habe.. Wichtig: es liegt nicht am schreiben in die Textdatei und dem lesen, das geht alles!
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
geht lieber aus \"Zitieren\", hier im Forum wird ja alles zu smiliys gemacht..
Mal 2 Tipps am Rande:
1. Wenn du einfach \"[ C O D E ] bla [ / C O D E ] \" Eintippst, hast du dieses Problem nicht, dann sieht es so aus:
Hahaha hehehe hohoho usw usf
2. Doppelpostings sind hier sehr ungern gesehen, wir haben extra einen \"Edit\" Button in Form einer Scheere dafür, wie wärs, wenn du den mal nutzen würdest? -
tut mir sorry, die 5 gulden kann man mir ja wieder abziehen.. Und hier dann des:
chat.php:
</td> <td style=\"background-image:url(graphic/border/r5.png);\"></td> </tr> <tr><td height=\"8\" style=\"background-image:url(graphic/border/r6.png);\"></td><td style=\"background-image:url(graphic/border/r7.png);\"></td><td style=\"background-image:url(graphic/border/r8.png);\"></td></tr> </table></td> <td valign=\"top\"><table class=\"blind\" cellspacing=\"0\" style=\"margin:6px\"> <tr><td width=\"8\" height=\"8\" style=\"background-image:url(graphic/border/r1.png);\"></td><td style=\"background-image:url(graphic/border/r2.png);\"></td><td width=\"8\" style=\"background-image:url(graphic/border/r3.png);\"></td></tr> <tr> <td style=\"background-image:url(graphic/border/r4.png);\"></td> <td> <form action=\"chat3.php\" method=\"post\"> <table class=\"in_border\" width=\"252\"> <tr><td colspan=\"2\"><h4>Chat</h4></td></tr> <tr> <td align=\"right\" bgcolor=\"#E6E6E6\"><font color=\"#000000\" face=\"Arial,helvetica\" size=\"-1\">Nickname:</font></td> <td bgcolor=\"#E6E6E6\"><input type=\"text\" name=\"name\" value size=\"20\"></td> </tr> </td></tr> <td align=\"center\"><input type=\"image\" src=\"http://michelbach.lima-city.de/go.JPG\" /></td></tr> </table> </form>
die chat3.php:
<?php $vare = time() + 6000; ($name = $_POST[\'name\']); setcookie(\"nickname\", $name, $vare); $fppp = fopen(\"chat.txt\",\"r\"); ($nickname = $_COOKIE[\'nickname\']); if ($fppp) {while (!feof($fppp)) {$zeile = fgets($fppp, 1050); echo $zeile;} fclose($fppp);} if (\"\"==$nachricht) { echo \"<br />\\n\"; echo \"<br />\\n\"; echo \"Bitte Nachricht eingeben!<br />\\n\"; echo \"<br />\\n\"; echo \"<br />\\n\"; } else { $nl = chr(13) . chr(10); $fp = fopen(\"chat.txt\",\"a\"); if ($fp) {flock($fp,2); fputs ($fp, \"$nickname $nachricht<br />\\n\"); flock($fp,3); fclose($fp);} } ?> </td> <td style=\"background-image:url(graphic/border/r5.png);\"></td> </tr> <tr><td height=\"8\" style=\"background-image:url(graphic/border/r6.png);\"></td><td style=\"background-image:url(graphic/border/r7.png);\"></td><td style=\"background-image:url(graphic/border/r8.png);\"></td></tr> </table></td> <td valign=\"top\"><table class=\"blind\" cellspacing=\"0\" style=\"margin:6px\"> <tr><td width=\"8\" height=\"8\" style=\"background-image:url(graphic/border/r1.png);\"></td><td style=\"background-image:url(graphic/border/r2.png);\"></td><td width=\"8\" style=\"background-image:url(graphic/border/r3.png);\"></td></tr> <tr> <td style=\"background-image:url(graphic/border/r4.png);\"></td> <td> <form action=\"chat3.php\" method=\"post\"> <table class=\"in_border\" width=\"252\"> <tr><td colspan=\"2\"><h4>Chat</h4></td></tr> <tr> <td align=\"right\" bgcolor=\"#E6E6E6\"><font color=\"#000000\" face=\"Arial,helvetica\" size=\"-1\">Nachricht:</font></td> <td bgcolor=\"#E6E6E6\"><input type=\"text\" name=\"nachricht\" value size=\"20\"></td> </tr> </td></tr> <td align=\"center\"><input type=\"image\" src=\"http://michelbach.lima-city.de/go.JPG\" /></td></tr> </table> </form> <p><a target=\"_self\" href=\"http://game-nr.1.am/chat3.php\">nachschauen, ob jemand was geschrieben hat!</a></p>
so is besser, oder? -
ja, 100 minuten. steht im 2. code 2. und 4. zeile
-
So wie ich das sehe, hast Du einen kleinen Denkfehler. Ein Cookie ist immer erst nach erneutem Aufrufen der Seite sprich einem Reload verfügbar.
Du setzt den Cookie und möchtest ihn sofort wieder abfragen... Funktioniert nicht!!! Ich versteh auch nicht, wieso du Zuweisungen in Klammern setzt
<?php $vare = time() + 6000; $name = $_POST[\'name\']; setcookie(\"nickname\", $name, $vare); $fppp = fopen(\"chat.txt\",\"r\"); $nickname = (isset($COOKIE[\'nickname\']) ? $_COOKIE[\'nickname\'] : $name; [...]
Nicht getestet, aber müsste gehen... -
nein, des erste mal geht, nur die erneuten male gehen nicht.. Des tut auch net
-
Ändere mal:
setcookie(\"nickname\", $name, $vare);
in:
if (!isset($_COOKIE[\'nickname\'])) setcookie(\"nickname\", $name, $vare, \"/\");
Beitrag geändert: 11.5.2008 15:07:47 von staymyfriend -
Ich denke es ist schon ein Cookie vorhanden, doch dieser ist leer sofern du $_POST[\"name\"] nicht mitsendest. Somit überschreibst du das Cookie mit einem leeren Wert. Schau doch einfach mal mit dem Browser den Wet des Cookies (zB bei FF \"Extras->Seiteninformationen->Sicherheit->Cookies anzeigen\").
-
nein, ich habe alle cookies gelöscht..
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage