Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Fehler bei session_start

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Fehler bei session_start

    Hallo Ihr,

    --- php 5.6.3 ---
    Fehlermeldung: "A session had already been started - ignoring session_start() in .... "
    Das ist in meiner login-Fkt. und in der angegebenen Zeile ist ein session_start.
    Die Meldung verschwindet nach ein paar Sekunden und alles funktioniert wie gewünscht.
    Ich bin mir eigentlich ziemlich sicher, dass die Meldung bis gestern/vorgestern nicht kam, aber man ist ja immer so auf
    das Egebnis der aktuellen Erweiterungen fixiert, dass man das Drumherum ausblendet ....ratlos.
    Ich habe ergoogelt, dass ab php 4.3.3 bei mehrfachem session.start dieser Fehler ( Typ E_NOTICE ) ausgegeben wird.
    Ich habe zwei Fragen:
    1. was kann ich dagegen tun ?
    2. fast überall wird php benutzt und bis man zum login kommt ist session_start schon mehrfach gerufen worden.
    In diesen Fällen kommt aber keine Fehlermeldung. Warum nicht auch dort ?

    An der betr. Stelle nutze ich diese Fkt.
    ( aus http://www.wikihow.com/Create-a-Secu...-PHP-and-MySQL )

    function sec_session_start() {
    $session_name = 'sec_session_id'; // Set a custom session name
    $secure = SECURE;

    // This stops JavaScript being able to access the session id.
    $httponly = true;

    // Forces sessions to only use cookies.
    if (ini_set('session.use_only_cookies', 1) === FALSE) {
    header("Location: ../error.php?err=Could not initiate a safe session (ini_set)");
    exit();
    }

    // Gets current cookies params.
    $cookieParams = session_get_cookie_params();
    session_set_cookie_params($cookieParams["lifetime"], $cookieParams["path"], $cookieParams["domain"], $secure, $httponly);

    // Sets the session name to the one set above.
    session_name($session_name);

    session_start(); // Start the PHP session
    session_regenerate_id(); // regenerated the session, delete the old one.
    }


    Klaus-Peter

  • #2
    Kannst du Englisch? "A session had already been started - ignoring session_start() in ... "
    Du kannst nicht mehrfach sessions starten.

    Kommentar


    • #3
      Zitat von KPC Beitrag anzeigen
      ....
      --- php 5.6.3 ---
      Fehlermeldung: "A session had already been started - ignoring session_start() in .... "
      ...
      ...
      1. was kann ich dagegen tun ?
      Hallo

      Die Fehlermeldung sagt eindeutig, was passiert. Du führst ein session_start() mehrfach aus. Was du dagegen tun kannst? Führe es nur einmal am Beginn deines Scripts aus.

      Zitat von KPC Beitrag anzeigen
      ....
      2. fast überall wird php benutzt und bis man zum login kommt ist session_start schon mehrfach gerufen worden.
      In diesen Fällen kommt aber keine Fehlermeldung.
      Bist du sicher? Glaube ich nicht!
      Ein require_once("DATEI") in dem ein session_start() steht kann mehrfach im Script vorkommen und trotzdem wird DATEI nur einmalig aufrufen.

      Setz nach dem session_start() mal ein echo "Session gestartet..."; und sieh dir an, wie oft es ausgegeben wird.

      Prüfe ob eine Session vorhanden ist.
      PHP-Code:
      // Für PHP >= 5.4
      if (session_status() == PHP_SESSION_NONE

        
      session_start(); 

      PHP-Code:
      // Für PHP < 5.4
      if(session_id() == ''
      {     
        
      session_start(); 

      Der Code löst aber dein strukturelles Problem nicht.
      gruss sys

      Kommentar


      • #4
        Sorry, sorry, ...

        ich hatte kopiertechnisch 2 session_start in ein script hineingezaubert.
        Tut mir leid. dass ich eure Zeit vergeudet habe. ( und meine auch )

        Klaus-Peter

        Kommentar


        • #5
          Keine Ursache, niemand ist böse, oder kommt dir das so vor?
          gruss sys

          Kommentar

          Lädt...
          X