Wann steht SID zur Verfügung?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Wann steht SID zur Verfügung?

    Hallo,

    das Thema Sessions ist für mich etwas neu. Ich hab mich natürlich schon mal bei den einschlägigen Quellen schlaugemacht. Trotzdem bleibt mir da noch etwas im verborgenen.

    Wenn ich session_start(); ausführe versucht doch PHP ein Cookie zu setzen, wenn dies fehlschlägt, sollte meines Wissens nach die Konstante 'SID' automatisch definiert werden. Anhand dessen ob SID nun definiert ist oder nicht sollte sich also prüfen lassen ob ein Cookie gesetzt werden konnte oder nicht. In einem kurzen Beispiel:
    PHP-Code:
    <?php

        session_start
    ();

        if(
    defined(SID))
        {
            echo 
    "Cookie konnte nicht gesetzt werden!";
        }
        else
        {
            echo 
    "Cookie konnte gesetzt werden!";
        }
        
    ?>
    Dieser Code wirft nun bei mir aber immer "Cookie konnte gesetzt werden!" aus, egal ob ich den Browser nun so einstelle dass er Cookies akzepiert oder nicht!

    Irgendwie steh ich da jetzt ein wenig auf dem Schlauch, wer kann mich aufklären?
    Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
    Schön - etwas Geschichte kann ja nicht schaden.
    Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

  • #2
    seufz, .... wenn du cookies gesetzt hast, kannst du erst beim nächsten Request prüfen

    Kommentar


    • #3


      *aarrgghh*... eigentlich hätt ich's mir selbst denken können. Bei einem Request->Response-System kann ja in diesem Sinne gar keine Interaktion stattfinden.

      Danke!
      Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
      Schön - etwas Geschichte kann ja nicht schaden.
      Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

      Kommentar


      • #4
        das erklärt aber noch nicht ganz, warum du immer die ausgabe bekommst, der cookie hätte gesetzt werden können.

        da liegt nämlich noch ein andere denkfehler vor - nämlich die abfrage mittels defined().

        SID (string)

        Constant containing either the session name and session ID in the form of "name=ID" or empty string if session ID was set in an appropriate session cookie.
        definiert ist sie also bei session-verwendung immer - aber eben manchmal leer.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          Bin jetzt zu faul zum raussuchen, aber hab hier einen Thread gefunden wo vorgeschlagen SID mit definded zu prüfen, deshalb hätt ich's so probiert.

          Inzwischen gehe ich so vor:

          index.php:
          PHP-Code:
          <?php

              session_start
          ();
              
              
          header("Location: menue.php?".SID);

          ?>
          In menue.php prüfe ich dann ob $_COOKIE["PHPSESSID"] eine gültige Session_ID enthält. Falls ja (also hier kann ich ja dann davon ausgehen dass Cookies akzeptiert werden denke ich) wird erneut auf die menue.php weitergeleitet, jedoch unter Verzicht auf die Session_ID-Übergabe per Url.

          Dies war auch Sinn und Zweck des ganzen, ich wollte verhindern dass die Session_ID in der Url zu sehen ist wenn es nicht nötig ist. Sie ist zwar dann zu sehen wenn von der index.php auf die menue.php geschaltet wird, aber mit diesem Wimpernschlag kann ich leben.

          Für bessere Vorschläge/Denkansätze was mein Vorhaben angeht bin ich natürlich jederzeit offen
          Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
          Schön - etwas Geschichte kann ja nicht schaden.
          Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

          Kommentar

          Lädt...
          X