Ankündigung

Einklappen
Keine Ankündigung bisher.

session wird falsch übergeben

Einklappen

Neue Werbung 2019

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

  • session wird falsch übergeben

    hi leute,
    ich dreh mal wieder durch...irgendwie wird meine session nicht richtig übergeben und ich finde meinen fehler nich...

    hier ein auszug meiner login-datei(an diese stelle kommt der user auch)
    PHP-Code:
    $_SESSION["id"]=$user["id"];
            
            echo 
    "Du bist eingeloggt als ".$_SESSION["name"];
            
            
    linken("Knallrot""news",1); 
    man wird also eingeloggt!!
    linken() schickt einen einfach nur weiter auf eine andere seite. als erstes wird als0 index.php durchlaufen und das ist der anfang davon(ausgabe=-1):

    PHP-Code:
    session_start();
    //neue session setzen bzw so lassen
    if(!isset($_SESSION["id"])){
        
    //echo "Gast";
        
    $_SESSION["id"]=-1;
        
    $_SESSION["name"]="Gast";
    }
    echo 
    $_SESSION["id"]; 
    hoffentlich kann mir jmd helfen. kann gern mehr code posten, aber evtl reicht das ja schon.

    viele grüße-ape


  • #2
    machst Du ein session_write_close() vor der Weiterleitung? Weiterleitung absoluter Pfad (Server)?
    Competence-Center -> Enjoy the Informatrix
    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

    Kommentar


    • #3
      nein

      Kommentar


      • #4
        das ist eine weiterleitung:
        PHP-Code:
        echo "<meta http-equiv='refresh' content='".$time."; URL=index.php?first=".$first."&second=".$second."'>"

        Kommentar


        • #5
          sollte ich das tun?
          was bewirkt denn session_write_close()?

          was bedeutet beendet die session und speichert daten??
          wo werden die daten gespeichert und wen sie gespeichert werden was heisst dann die session wurde beendet?

          Kommentar


          • #6
            also bei manchen funktioniert das einloggen, bei anderen nicht.

            woran kann das liegen?

            Kommentar


            • #7
              was bewirkt denn session_write_close()?
              das ist eine weiterleitung:
              PHP-Code:
              echo "<meta http-equiv='refresh' content='".$time."; URL=index.php?first=".$first."&second=".$second."'>"
              What about header()


              btw.: http://www.php.de/php-einsteiger/489...rundlagen.html
              Competence-Center -> Enjoy the Informatrix
              PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

              Kommentar


              • #8
                was bewirkt denn session_write_close()?
                Wart, ich helf dir: http://php.net/manual/de/function.se...rite-close.php


                Zeig mal linken() und verwende besser Header Location dafür, das schaust jetzt selber aber nach. So könnte zB eine Funktion zum Weiterleiten aus - natürlich darf es davor keine Ausgaben geben:
                PHP-Code:
                function redirect($url)
                {
                    if (
                session_id() !== '') {
                        
                session_write_close();
                    }
                    
                header("Location: ".$url);
                    exit();

                Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                PHP.de Wissenssammlung | Kein Support per PN

                Kommentar


                • #9
                  ich dachte header() kann man nicht benutzen, wenn man davor ne ausgabe hat... und die hab ich ja.

                  ok, werd die ausgabe mal ändern und es so versuchen...

                  hab mir das schon durchgelesen, aber verstehen tu ichs immer noch nicht.

                  was linken macht, hab ich ja schon beschrieben...jetzt so...

                  PHP-Code:
                  function linken($first,$second,$time=0){
                      
                      
                  session_write_close();
                      
                      if(
                  $time==0){
                          
                  header("Location:index.php?first=".$first."&second=".$second);
                          exit();
                      }else{
                          echo 
                  "<meta http-equiv='refresh' content='".$time."; URL=index.php?first=".$first."&second=".$second."'>";
                      }

                  Kommentar


                  • #10
                    ich dachte header() kann man nicht benutzen, wenn man davor ne ausgabe hat... und die hab ich ja.
                    EVA

                    Der <meta-Tag ist an der Stelle sicher nicht korrekt platziert, nur mal so nebenbei bemerkt!
                    Competence-Center -> Enjoy the Informatrix
                    PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                    Kommentar


                    • #11
                      ok dann ist es egal was davor und danach steht? oder was willst du mir mit dem link sagen?
                      jedenfalls funktioniert das mit header auch nicht...

                      Kommentar


                      • #12
                        wenn ich session_write_close () benutze, was muss ich denn machen, um wieder an meine id zu kommen?

                        Kommentar


                        • #13
                          hm, könntet ihr mir bitte irgendeine hilfestellung geben.
                          ich komm nicht weiter...

                          Kommentar


                          • #14
                            Sorry, aber Hilfestellungen hast Du bekommen. Wenn Du damit nichts anfangen kannst, fehlen Dir zu viele Grundlagen, um das Projekt erfolgreich weiterzuführen.
                            Competence-Center -> Enjoy the Informatrix
                            PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                            Kommentar


                            • #15
                              ja, die grundlagenseite kenn ich, die hab ich schon häufiger gesehen. allerdings bringt es bei einer konkreten frage nichts!!!!

                              ich habe ja klar gemacht, dass es nur um sessions geht. und klare fragen gestellt, die mir ja teilweise auch beantwortet wurden, ich angewendet habe und das problem nicht gelöst haben.

                              ich lese grade ziemlich viel über sessions, das problem ist aber immer noch da.

                              deshalb nochmal: wenn ich session_write_close ( void ) benutze, wie komm ich dann an meine id? was sollte man benutzen, $_SESSION[] oder session_id?

                              mir ist klar das es irgendwo schon steht, aber ich weiss nicht wo und finde es auch nicht. bei den grundlagen finde ich auch nichts zu sessions, jedenfalls weiss ich nicht, in welchem ordner ich weiter suchen muss.

                              danke trotzdem

                              Kommentar

                              Lädt...
                              X