Cookie setzen nach Login

BigFacker

Erfahrenes Mitglied
Hallo!

Und zwar hab ich folgendes Problem:
Ich will nach dem Login (mittels Formular) ein Cookie setze.
Diesbezüglich hab ich viel Informationen und Material mit Suchfunktion gefunden, aber nicht genau das was ich brauche.

Wenn ich in meinem Script den Cookie setzen will, dann kommt die Fehlermeldung, das der Header schon gesendet wurde. Das versteh ich auch, weil der Cookie vor allem anderen gesetzt werden muss und noch nichts an den "Surfer" übergeben worden sein darf.

Ich versteh jetzt aber folgendes nicht:
Wie kann ich den Cookie setzen, wenn meinetwegen der Login mitten in einem Script ist. Das heißt wenn ich davor schon Echo's hatte etc. Rein von meinem Loginscript kann ich den Cookie gar nicht als aller erstes setzen.
Wo liegt nun mein Verständnisproblem, bzw. was muss ich anders machen?

Vielen Dank
Mfg
bf
 
Moinson...

jopem das tutorial hab ich gelesen und auch verstanden. Dies funktioniert aber nur, wenn ich ne komplett neue Datei aufrufe, in dem Fall eben die sprache.php

Aber was ist, wenn mein Script folgendermaßen aussieht:

Das ist meine besipielsweise meine login.php
PHP:
<?php
if(isset($action))
{
 setcookie("login","$username",time()+3600);
 echo("Jope, dein Cookie ist gesetzt!");
}
else
{
 echo("<form action='login.php' methode='post'>");
 echo("<input type='text' name='username'>");
 echo("<input type='submit' value='einloggen'>");
 echo("<input type='hidden' name='action'>");
 echo("</form>");
}
?>
In dem Script ist also quasi alles in allem. Ich kanns leider nicht anders machen, da sonst meine komplette Seite nicht funzt und ich alles umschreiben müsste.
Es wird also erst die ELSE-{} durchlaufen und wenn das Formular abgeschickt wurde, wird der IF-Teil durchlaufen.
Aus diesen Grund kann ich den setcookie(...)-Befehl nicht an den Anfang setzen. Ich könnte an die Setcookie-stelle zwar eine Datei mit dem Befehl includen, das würde aber am Problem nichts ändern, da es im Endeffekt das selbe ist.

Für Hilfe wäre ich dankebar:)

Mfg
bf
 
der code sieht doch gut aus

sollte funzen ....

vor <?php sollte aber nix sein, noch nichtmal leerzeilen !
 
Moin..
also es kam die Fehlermeldung das das Header schon gesendet wurde.

Ich habs jett aber anders gemacht.
Ich habs jetzt anders gemacht. Ich hab das setcookie ganz an den Anfang meiner ersten Datei (index.php) gesetzt.
An die Stelle wo das setcookie vorhin war, hab ich einfach ne Variable gesetzt. Und falls diese Variable mal aufgerufen werden sollte, dann wird mittels der IF schleife am Anfang der Index der cookie gesetzt.
Und nun gehts jedenfalls erstmal, zwar etwas anders als gedacht, aber es geht:)

Ich dank dir trotzdem erstmal für deine Hilfe
bis denne
bf
 
wenn du <?php ob_start();?> ganz an den anfang der datei und <?php
ob_end_flush();?> ganz an das ende der datei schreibst kannst du das cookie an jeder stelle innerhalb der datei wo du es willst setzen.
 
Hi,

mal ne frage dazu, wie hast du das gemacht? Ich hab das selbe Problem und bekomms einfach net hin ich werd noch narrisch mit dem Kram.

MFG Sebb
 
Zurück