unset und $_SESSION

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

  • unset und $_SESSION

    Hallo!

    Ich habe in der Suche einige Beiträge zu diesem Thema gefunden aber irgendwie war das nicht sehr befriedigend. Deswegen hier folgendes Problem:

    Ich habe hier bei mir auf meinem System zu Hause PHP 4.2.2 installiert (Windows). Läuft auch alles reibungslos und prima. Ich habe einige Scripts geschrieben, die mit der $_SESSION-Variablen arbeiten. Wenn ich hier den Befehl
    PHP-Code:
    unset($_SESSION["variable"]); 
    ausführe, läuft das auch einwandfrei ab. Dabei ist es egal, ob ich variable in "", '' oder ohne Anführungszeichen setze.

    Sobald ich das aber auf einen Server spiele funktioniert der Kram auf einmal nicht mehr. Die Variable wird in der Session einfach nicht zurückgesetzt. Hat jemand dafür eine Erklärung? Hängt es am Windows<->Linux Austausch? Ich werde noch wahnsinnig... Wenn ich stattdessen
    PHP-Code:
    session_unregister("variable"); 
    nehme, funktioniert das einwandfrei! Auf dem Server läuft Linux mit PHP 4.2.3

    Für einen Tip wäre ich sehr dankbar.

    Gruss

    Bernd
    mens agitat molem

  • #2
    du hast php >= 4.2
    Webserver hat PHP<4.2

    entweder beide Befehle mit @ davor,
    oder mal $HTTP_SESSION_VARS[] probieren
    TBT

    Die zwei wichtigsten Regeln für eine berufliche Karriere:
    1. Verrate niemals alles was du weißt!


    PHP 2 AllPatrizier II Browsergame

    Kommentar


    • #3
      Hi!

      Erst mal danke für deine Antwort.

      Ich glaub mit den Versionen hast du dich verlesen... Ich hab php 4.2.2 und der Server 4.2.3. Da sollten die Unterschiede doch nicht so groß sein, oder?

      Natürlich könnte ich $HTTP_SESSION_VARS[] probieren aber mir geht's irgendwie um's Prinzip... $_SESSION SOLLTE funktionieren, oder hab ich da was falsch verstanden? Ich meine, session_unregister geht ja auch... Ich probiere deinen Vorschlag aber trotzdem mal aus...

      Gruss

      Bernd
      mens agitat molem

      Kommentar


      • #4
        Weise der Variablen doch einfach noch NULL zu. Dann müßte der Wert weg sein. PHP entfernt mit unset nur Refenzen auf einen Wert. PHP räumt dann die Werte im Speicher ohne Referenz alleine auf. Jetzt kann es sein, daß noch eine weitere Referenz (z.B.: $variable bei register_globals=on) auf diesen Wert existiert und dann bleibt dieser bestehen.

        Gruß oms
        {brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!

        Kommentar


        • #5
          Ach, die ganzen Sessionfunktionen von php sind ja so dermaßen buggy (auch in neueren Versionen), da würde ich lieber einen eigenes Sessionsystem schreiben.

          Es werden Variablen nicht registriert, manchmal werden sie wiederum nicht gelöscht. buggy ist das richtige wort, das passt.
          [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
          [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
          [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

          © Harald Schmidt

          Kommentar


          • #6
            Was an dem Session-Objekt gut ist, ist das Parsen des endgültigen Outputs und das automatische Anhängen der SID. Ansonsten hat man mit einem eigenen Session-Objekt immer mehr Kontrolle.
            {brigens Ein Kezboard/Treiber ist v;llig [berfl[ssig!

            Kommentar

            Lädt...
            X