PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Cookies?


freecounter
29.04.2002, 13:50:55
Hi,

kann mir jemand sagen, wie erstelle ich mit php cookies und lösche. ich möchte ein autologin bauen.

Danke

|Coding
29.04.2002, 14:10:34
hi,

dazu benutzt du am besten die funktion "setcookie()".


erzeugen:
setcookie ("cookiename", "variable", time() + 3600);

zum löschen:
setcookie ("cookiename", "variable", time() - 3600);


cookiename = cookiename *g*
variable = das was du speichern willst
time() + 3600 = die zeit die das cookie gespeichert wird (in sek.!!!)

freecounter
29.04.2002, 14:20:59
Danke für deine antwort, aber wenn ich ohne zeitlimit den cookie erstellen will, was dann?

Nev
29.04.2002, 14:35:27
@freecounter

wenn du ein Cookie ohne Zeitangabe definierst dann lebt es nur so lange wie du auf der Seite bist.

Danach ist es tot bzw. gelöscht

freecounter
29.04.2002, 14:44:47
Aber was ist z.b. mit diesem Forum. Ich hab min einmal angelogt und jetzt logt er mich automatisch!!!

Nev
29.04.2002, 14:47:57
@freecounter

hier ist es so das das Cookie auf "unendlich" gesetzt worden ist, das heißt zB auf 3 Jahre

Dago
29.04.2002, 15:23:38
Ich hab mal den höchsten Zeitwert ausgetüftelt: 2147480047
Das ist irgendwann im Jahre 2037... höher gehts nicht, da er dann wieder auf -1 setzt. Hat wohl was mit dem Y2K-Problem zu tun.

freecounter
30.04.2002, 06:38:01
OK, Danke, das habe ich verstanden und ich hab noch 'ne frage

Wie rufe ich eigentlich die Cookies?

Mr S_itt
30.04.2002, 09:30:31
Das geht eigentlich ganz einfach, ich würde immer den wert eines cookies an eine andere variable übergeben, dann sparst du dir ein wenig schreibarbeit und es bleibt auch über sichtlicher !!

Hier der Code:

<?PHP

$variable = $HTTP_COOKIE_VARS["cookiename"];

?>

Das ist alles, und wenn du jetzt noch wissen willst was der cookie wirklich den von dir eingegebenen Wert hat kannst du dir ihn ja mal ausgeben lassen

<?PHP

Echo $variable;

?>

Hoffe das hilft, CU

Progman
30.04.2002, 11:37:08
Original geschrieben von Dago
Ich hab mal den höchsten Zeitwert ausgetüftelt: 2147480047
Das ist irgendwann im Jahre 2037... höher gehts nicht, da er dann wieder auf -1 setzt. Hat wohl was mit dem Y2K-Problem zu tun.

Cookies leben nur max. 1 Jahr

Nev
30.04.2002, 12:08:22
@Progman

Die Zeitbeschränkung von Cookies ist nicht definiert, d.h das es nicht maximal nur 1 Jahr leben

Es macht nur keinen Sinn sie höher zu stellen

Dago
30.04.2002, 12:11:32
Ja? Gut zu wissen... Dann machen es die YaBB (http://www.yabbforum.com/) -Entwickler auch falsch... Die setzen das Cookie auch auf irgendwann 2037 ;-)

Coda
01.05.2002, 16:00:02
Das hat nix mitm Y2K problem zu tun, woher kommt den der Schwachsinn.
Das ist ganz einfach weil die Sekunden in nem 32-bit Integer gespeichert werden und der hat numal nen Zahlenbereich von -2147483648 bis 2147483647 (bzw -2^31 bis 2^31-1 weils die Null ja auch noch gibt).
Es ist auch nicht wahr das man Cookies nur bis zu einem Jahr setzen kann, das einzige Limit ist wie gesagt der Zahlenbereich.

freecounter
02.05.2002, 18:51:44
OK, mit Time hab ich verstanden, wie kann ich passwort und username mit Checkbox speichern?

Coda
02.05.2002, 20:49:37
du must nur darauf achten, das du sie VOR jeder HTML ausgabe setzt sonst bekommst du nen Error.

z.B.

setcookie("username",$username);
setcookie("password",$password);

du hast dann in jedem Script das auf der gleichen Domain is die Umgebungsvariablen username und passwort zur verfügung. die must du dann halt entweder statisch vergleichen oder mit den Daten in der Datenbank.

freecounter
03.05.2002, 18:00:36
Entweder ich habe nicht verstanden oder du.
Also, ich hab ein Anmeldung Formular gemacht mit Checkbox, der cookies speichern soll. Das sieht so aus:

<?php
<form...
echo " <p style="margin-left: 2"><input type="checkbox" name="cookie" value="akt" checked><font face="$menuefont" size="1"></font></td>";
</form>


if ($cookie == "akt") {
setcookie("cookie", "test", time()+(3600*100));
}

?>

Aber er zeigt mir diesen Fehler:

Warning: Cannot add header information - headers already sent by (output started at c:programmeeasyphpwww estsanmelden.php:10) in c:programmeeasyphpwww estsanmelden.php on line 189

Was ist das? Was habe ich falsch gemacht?

Matthias
03.05.2002, 18:20:33
wie Coda schon gesagt hat, muß du das Cookie als aller erstes in der Datei stehen.

Coda
03.05.2002, 18:59:42
Du kannst doch ned im gleichen script das cookie setzen wenn das formular noch gar ned gesendet ist. Wo ist da die Logik?

freecounter
04.05.2002, 17:38:28
Und wie kann ich es richtig machen?

Coda
04.05.2002, 17:39:20
Vielleicht solltest du zuerst PHP lernen bevor du Cookies benützt ?!?

|Coding
04.05.2002, 17:54:51
Original geschrieben von Coda
Vielleicht solltest du zuerst PHP lernen bevor du Cookies benützt ?!?

@Coda,

wie war das doch gleich mit unsinnig (http://forum.isp2day.de/showthread.php?s=&threadid=1312)????
wofür sind wir den bitte hier, zum PHP lernen, oder nicht?

du solltest vielleicht erst mal den umgang mit anderen lernen, bevor du hier postings machst!!
du bist sicher auch noch kein php-könner, oder?

sorry an alle anderen aber bei solchen leuten platz mir einfach der kragen...

Coda
04.05.2002, 19:40:00
jo tschuldigung is mir rausgerutscht, hatte vorher bissel schlechte Laune...
@Coding: doch bin ich ;-)

Coda
04.05.2002, 19:44:49
Du solltest es irgendwie so lösen, is zumindest eine Möglichkeit.


login.php:

<?php
if($action == "")
{
?>
<form action="login.php" method="POST">
<input type="text" na.......>
<input type="hidden" name="action" value="login">
<input type="submit" value="Abschicken">
</form>
<?php
}

else if($action == "login")
{
setcookie(...);
echo "Cookie gesetzt";
}
?>

ingo
04.05.2002, 21:07:32
hehe ;-)