Seite 2 von 2 ErsteErste 12
Ergebnis 21 bis 31 von 31

Thema: [PHP] Kekse

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Zitat Zitat von dadie
    und auslesen tuht man den cookie einfach $Cookiename
    Naja, mag sicherlich teilweise gehen, dennoch sollte man $_COOKIE['name'] (bei PHP > 4.1) bzw. $HTTP_COOKIE_VARS['name'] (darunter) nehmen. Allerdings würde ich mich beim Cookiesetzen auch auf die ersten drei Werte beschränken, bis auf den ersten sind schließlich alle optional. Da ich jetzt keine Ahnung hab, was genau der Path- und der Secure-Wert bringen, und ich persönlich auch nix damit anfangen kann, würde ich die einfach weglassen. Kann ja auch nichts groß passieren. Bei Opera wird die Domain z.B. auch automatisch mitgespeichert, sodass es nicht zu Problemen kommen kann, wenn eine andere Seite ein gleichnamiges Cookie verwendet.
    PHP-Code:
    setcookie ('7159052138''eintrag_ok'time() + 60);
    echo (
    $_COOKIE['7159052138']); 

  2. #2
    Zitat Zitat von Tomarus
    Naja, mag sicherlich teilweise gehen, dennoch sollte man $_COOKIE['name'] (bei PHP > 4.1) bzw. $HTTP_COOKIE_VARS['name'] (darunter) nehmen. Allerdings würde ich mich beim Cookiesetzen auch auf die ersten drei Werte beschränken, bis auf den ersten sind schließlich alle optional. Da ich jetzt keine Ahnung hab, was genau der Path- und der Secure-Wert bringen, und ich persönlich auch nix damit anfangen kann, würde ich die einfach weglassen. Kann ja auch nichts groß passieren. Bei Opera wird die Domain z.B. auch automatisch mitgespeichert, sodass es nicht zu Problemen kommen kann, wenn eine andere Seite ein gleichnamiges Cookie verwendet.
    PHP-Code:
    setcookie ('7159052138''eintrag_ok'time() + 60);
    echo (
    $_COOKIE['7159052138']); 
    Mit dem Script-Attribut kann man einschränken welches Script auf die Cookies später zurückgreifen darf. Lässt man dieses Attribut leer, wird AFAIK standardmäßig der Ordnerpfad des setzenden Scripts verwendet.
    Liegt das Script, das den Cookie setzt, z.B. in /ordner/scripte/ so wird dieser Pfad standardmäßig als Scriptpfad für den Cookie verwendet.
    Damit können nur Scripte auf den Cookie zugreifen, die in jenem Pfad liegen bzw. in Ordnern darunter.
    Setzt man das Attribut in der setcookie-Funktion allerdings auf "/" so kann jedes Script einer Domain auf ein mit dieser Domain gesetzten Cookie zugreifen.

    Das Secure-Attribut lässt nur eine verschlüsselte Übertragung des Cookies zu. Sprich: Nur wenn es möglich ist den Cookie per SSL an den Client zu übertragen, wird er übermittelt, sonst nicht.

  3. #3
    PHP-Code:
     setcookie ('7159052138''eintrag_ok'time() + 60);
    echo (
    $_COOKIE['7159052138']); 
    Klappt kein Meter...

    Oo kann mir einer von Euch mal ne php schreiben indem so ein dummes Kekse setzen funktioniert? (Inhalt ist wurscht)

    Dennis

  4. #4
    Zitat Zitat von dennis_meckel
    PHP-Code:
     setcookie ('7159052138''eintrag_ok'time() + 60);
    echo (
    $_COOKIE['7159052138']); 
    Klappt kein Meter...

    Oo kann mir einer von Euch mal ne php schreiben indem so ein dummes Kekse setzen funktioniert? (Inhalt ist wurscht)

    Dennis
    PHP-Code:
    setcookie("joa","nee",time()+1200); 
    So in etwa setz ich meine Cookies immer und es funktioniert.
    Denk nur daran, das du den Wert des gesetzen Cookies nicht im selben Scriptdurchlauf auslesen kannst. In einem Scriptdurchlauf wird der Cookie gesetzt, beim Reload und somit zweiten Scriptdurchlauf wird der Cookie erst ausgelesen.

    Vielleicht waren die 60 Sekunden auch etwas zu knapp gesetzt... auch wenn ich mich frage weshalb du mehr als 60 Sekunden für den Reload gebraucht haben könntest.

  5. #5
    Da Cookies erst nach einem Reload benutzt werden können, würde ich noch folgendes machen:
    PHP-Code:
    <?php
    setcookie
    ("joa","nee",time()+1200);
    header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
    ?>
    Dadurch wird sozusagen ein Reload der Seite ausgeführt, da der Browser auf die aufgerufene Seite weitergeleitet wird. Solltest du $_POST Variablen zu verarbeiten hast, musst du das vor dem Reload machen, da sie hinterher nicht mehr verfügbar sind (ein schönder Nebeneffekt: Wenn man die Seite von Hand reloaded, werden die POST-Variablen nicht noch einmal gesendet, wie es sonst der Fall wäre)

  6. #6
    Zitat Zitat von getöteter_ork
    Da Cookies erst nach einem Reload benutzt werden können, würde ich noch folgendes machen:
    PHP-Code:
    <?php
    setcookie
    ("joa","nee",time()+1200);
    header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
    ?>
    Dadurch wird sozusagen ein Reload der Seite ausgeführt, da der Browser auf die aufgerufene Seite weitergeleitet wird. Solltest du $_POST Variablen zu verarbeiten hast, musst du das vor dem Reload machen, da sie hinterher nicht mehr verfügbar sind (ein schönder Nebeneffekt: Wenn man die Seite von Hand reloaded, werden die POST-Variablen nicht noch einmal gesendet, wie es sonst der Fall wäre)
    Uhm...
    So würd ichs nicht machen.
    Der Server würd sich den Hintern abforwarden.
    Zumindest denk ich das er das tut wenn ich mir den Code anschau.
    Man sollte das eher so lösen:
    PHP-Code:
    <?php
    setcookie
    ("joa","nee",time()+1200);
    if(!isset(
    $_COOKIE['joa'])){
      
    header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
    }
    ?>

  7. #7
    Zitat Zitat von Chocwise
    PHP-Code:
    <?php
    setcookie
    ("joa","nee",time()+1200);
    if(!isset(
    $_COOKIE['joa'])){
      
    header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
    }
    ?>
    Das Script macht genau was?
    ES prüft ob die Cookie 'joa' auf dem PC ist, und wenn ja/nein passiert was?

    Ich will nur son Gästebuch Teil machen.

    Dennis

  8. #8
    Zitat Zitat von dennis_meckel
    Das Script macht genau was?
    ES prüft ob die Cookie 'joa' auf dem PC ist, und wenn ja/nein passiert was?s
    Wenn der Cookie gesetzt ist, leitet es auf die Seite weiter, aktualisiert sie also. Dadurch kannst du die Cookies abfragen, was du noch nicht kannst, wenn die Cookies gerade erst in diesem Script gesetzt wurden.

  9. #9
    Zitat Zitat von Tomarus
    Wenn der Cookie gesetzt ist, leitet es auf die Seite weiter, aktualisiert sie also. Dadurch kannst du die Cookies abfragen, was du noch nicht kannst, wenn die Cookies gerade erst in diesem Script gesetzt wurden.
    cookie gesetzt = weiterleiten (ok)
    wenn kein cookie gesetzt ist, was passiert dann?
    Dann wird die Seite nich refreshed (angenommen cookies sind deaktiviert).

    Also müsste ich das so machen:

    Cookie setzen (Zeile1)
    Gästebuch Eintrag speichern
    Cookie abfragen und weiterletien

    das !sset, bedeutet es, das if aktiviert wird solange der Cookie in seiner Zeit ist? (Sprich das die 120Sekunden vorbei sind?)

    bzw. kann man so eine lösung machen:
    PHP-Code:
    <?php
    setcookie
    ("joa","nee",time()+1200);
    if(!isset(
    $_COOKIE['joa'])){
      
    // Hier: Code für Einträge speichern (Gästebuch)
      
    header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
    }
    ?>
    Oder muss das so laufen:
    PHP-Code:
    <?php;
    if(!isset($_COOKIE['joa'])){
      header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
    }
    else {
      // Hier: Code für Einträge speichern (Gästebuch)
      setcookie("joa","nee",time()+1200) // Cookies gehn nur am Anfang oder was war da nochmal? Oô *grml*
      header("Location: http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
    }
    ?>
    Dennis

  10. #10
    @ dennis:
    Hmja, ich hab grad wenig Muße um über PHP groß nachzudenken.
    Aber mein Code liest sich so:
    Zitat Zitat
    Setze ein Cookie mit dem Namen "joa" und dem Wert "nee".
    Wenn die Cookievariable "joa" nicht gesetzt (Cookie nicht vorhanden) ist, reloade diese Scriptseite.
    Nach dem Reload wird der Cookie gesetzt sein. Es sei denn der Besucher nimmt gar keine Cookies an. Dann forwarded sich der Server den Hintern ab.

  11. #11
    Ich ging davon aus, dass der Cookie nicht bei jedem Aufruf gesetzt wird, da das IMO keinen Sinn ergeben würde. Du hast aber natürlich Recht: Wenn der Code nicht sowieso schon in einer derartigen if-Konstruktion ist, würde er sich "den Hintern abforwarden". *sichdiesesgeileWortnotiert*

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •