Sturmverliebt: Session löschen

Hey,

ein kleines Problem. Hab eine Session für mein Bilderupload diese habe ich

  
$_SESSION['bildUpload'] = $zeige_bild;  

genannt. Nach dem Upload lösche ich meine Session wieder

  
$_SESSION = array();  
session_destroy();  

habe ich hier nachgelesen. Problem, mein Login basiert auch auf eine Session, diese sieht so aus session_id() dieses ist damit nun auch gelöscht :/ nach dem Upload soll NUR dieses $_SESSION['bildUpload'] gelöscht werden. Wie stelle ich das am besten an?

  1. nach dem Upload soll NUR dieses $_SESSION['bildUpload'] gelöscht werden. Wie stelle ich das am besten an?

    $_SESSION['bildUpload'] = ""; oder 0 oder -1 oder was auch immer dein Script nicht mehr als gültig erkennen möchte?

    1. Hi,

      $_SESSION['bildUpload'] = ""; oder 0 oder -1 oder was auch immer dein Script nicht mehr als gültig erkennen möchte?

      Danke, an diese Lösung habe ich gar nicht gedacht. Einfach die $_SESSION auf einen leeren Wert setzten.

    2. Hello,

      nach dem Upload soll NUR dieses $_SESSION['bildUpload'] gelöscht werden. Wie stelle ich das am besten an?

      $_SESSION['bildUpload'] = ""; oder 0 oder -1 oder was auch immer dein Script nicht mehr als gültig erkennen möchte?

      Wie wäre es mit unset($_SESSION['bildUpload']); ?

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
       ☻_
      /▌
      / \ Nur selber lernen macht schlau
      Die ultimative Seite für Selbermacher
      1. Mahlzeit,

        Wie wäre es mit unset($_SESSION['bildUpload']); ?

        Schön ist das nicht. Eine Variable, die benötigt wird, um z.B. einen Status zu speichern, hat von Anfang an zu existieren und einen definierten Wert zu haben (und wenn es FALSE ist). Hat was von sauberer Planung und Konzeption und erleichtert die Fehlersuche. Aufgeräumt wird immer erst dann, wenn was entgültig nicht mehr gebraucht wird.

        Zusätzlich gehört so eine Variable am Anfang kommentiert um per PHPDoc, Apigen usw. eine entsprechende Liste zu bekommen, welche Variablennamen bereits benutzt werden.
        Und nein, ein Projekt kann nicht so klein sein, dass sowas nicht nötig ist. ;)

        --
        42
  2. Hey,

    ahh ok, ich darf wohl nur dieses $_SESSION = array(); ausführen, dann bleibt meine session_id() behalten. Wenn ich mir

      
    echo $_SESSION;  
    echo '<br>';  
    echo session_id();  
    
    

    ausgebe, dann bekomme ich folgendes:

    Array
    fp1l843a978pre7u9g26vnpjj1

    scheint also zu klappen. Keine Ahnung ob es richtig ist aber es geht.

    1. Hallihallo!

      Hey,

      ahh ok, ich darf wohl nur dieses $_SESSION = array(); ausführen, dann bleibt meine session_id() behalten.

      Damit löschst Du ALLE "Nutzdaten" aus Deiner Session.
      Solltest Du irgendwann mal auf die Idee kommen, auch noch andere Werte ausser "bildupload" in der Session speichern zu wollen, wirst Du plötzlich auf Fehler stossen, die nur schwer nachvollziehbar sind. (Nanu, auf einmal ist meine Session leer, aber die id ist noch da? Was zum?!)
      Besser ist deshalb die Lösung von Encoder. Wenn Du nur ein Element aus der Session rausnehmen willst, solltest Du auch nur dieses eine Element löschen.

      Beste Grüsse,
          Tobias Hahner

      1. Hi Tobias,

        Besser ist deshalb die Lösung von Encoder. Wenn Du nur ein Element aus der Session rausnehmen willst, solltest Du auch nur dieses eine Element löschen.

        Danke dir für deine ausführliche Erklärung. Hab ich nun auch so umgesetzt.