nobbi: setcookie()

Hallo,

ich experimentiere gerade mit einem Loginverfahren.
Dazu rufe ich ein Script auf dem ich die Logindaten übergebe.
Ich Checke die Daten mit der Datenbank ab und bekomme von der DB eine UserID.
Die möchte ich in einem Cookie speichern.

Da ich vorher den Header ausgelesen habe, kann ich den Cookie mit dem Loginscript nicht speichern.

Da muss es doch einen Weg geben?

  1. Hallo!

    ich experimentiere gerade mit einem Loginverfahren.
    Dazu rufe ich ein Script auf dem ich die Logindaten übergebe.
    Ich Checke die Daten mit der Datenbank ab und bekomme von der DB eine UserID.
    Die möchte ich in einem Cookie speichern.

    Sinnvoller wäre es, eine Session-ID im Cookie zu speichern. Sonst bekomme ich mit einer bekannten User-ID Zugriff ohne die Authentifizierung durchlaufen zu haben.

    Da ich vorher den Header ausgelesen habe, kann ich den Cookie mit dem Loginscript nicht speichern.

    Diese Logik verstehe ich nicht. Das Auslesen der Request-Header macht das Setzen von Response-Headern nicht unmöglich.

    Bekommst du vielleicht die Fehlermeldung »Cannot modify header information – headers already sent«? Dann sorge dafür, dass das PHP-Script keine Ausgaben macht (z.B. HTML-Code), bevor setcookie() aufgerufen wird. Die Logik-Logik sollte also ablaufen, bevor <!DOCTYPE html><html>… usw. ausgegeben wird.

    Grüße,
    Mathias

    1. Bekommst du vielleicht die Fehlermeldung »Cannot modify header information – headers already sent«? Dann sorge dafür, dass das PHP-Script keine Ausgaben macht (z.B. HTML-Code), bevor setcookie() aufgerufen wird. Die Logik-Logik sollte also ablaufen, bevor <!DOCTYPE html><html>… usw. ausgegeben wird.

      Genau so wars.

      Ich habe allerdings noch lange keinen Seitenaufruf gemacht.
      Deshalb dachte ich das hängt mit dem Auslesen des headers zusammen.

      Hab jetzt experimentiert.

      Setze ich den Cookie direkt auf der aufgerufenen Seite klappts.
      Setze ich Ihn jedoch in einem mit include() eingefügten Scriptteil klappts nicht.

      OK, Danke

      1. Bekommst du vielleicht die Fehlermeldung »Cannot modify header information – headers already sent«? Dann sorge dafür, dass das PHP-Script keine Ausgaben macht (z.B. HTML-Code), bevor setcookie() aufgerufen wird. Die Logik-Logik sollte also ablaufen, bevor <!DOCTYPE html><html>… usw. ausgegeben wird.

        Genau so wars.

        Ich habe allerdings noch lange keinen Seitenaufruf gemacht.
        Deshalb dachte ich das hängt mit dem Auslesen des headers zusammen.

        dachtest du vielleicht

        Hab jetzt experimentiert.

        Setze ich den Cookie direkt auf der aufgerufenen Seite klappts.
        Setze ich Ihn jedoch in einem mit include() eingefügten Scriptteil klappts nicht.

        hat damit rein gar nichts zu tun. Vermutlich hattest du
        a) Whitespace vor dem <?php
        b) Datei mit BOM abgespeichert