Session Problem

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

  • #16
    Original geschrieben von jahlives
    @noob
    PHP-Code:
    unset($_SESSION[redirectLink]); 
    Ist falsch und würde bei entsprechendem Error Reporting mittels einer Warning quittiert.
    Oder hast du eine Konstante in einer Session Var gespeichert ? Wohl kaum

    Gruss

    tobi
    habe kein error reporting eingeschakltet, jetzt jedenfalls net mehr. habe aber für die session_variable lang_session werte in 2 lang dateien stehen. rufe über echo die texte auf.

    ich kann dir gerad net folgen, was ist denn jetzt konkret falsch daran wenn ich 2 session_variablen habe in einer session und jetzt eine session_variable löschen möchte?


    edit:
    Funktionieren tut es auch bestens.
    Zuletzt geändert von noob_in_php; 11.05.2007, 09:18.

    Kommentar


    • #17
      dieses forum ist doch ein php support forum.?
      nein.

      Support für php gibt es vielleicht auf der Entwickler-Website von php.

      Hier geht es darum anderen beim Erlernen von PHP zu helfen
      und auftauchende Probleme zu diskutieren.

      Dies setzt Grundlagenwissen voraus und daß man Probleme beschreiben und Fehler eingrenzen kann.

      Das eigentliche Lernen muß man selber machen.

      ******

      habe kein error reporting eingeschakltet, jetzt jedenfalls net mehr.
      und das ist jetzt wirklich unglaublich, nachdem Dir im anderen Thread so oft gesagt wurde Du sollst es eingeschaltet lassen während der Entwicklungsphase.

      Kommentar


      • #18
        Original geschrieben von Koala
        nein.

        Support für php gibt es vielleicht auf der Entwickler-Website von php.

        Hier geht es darum anderen beim Erlernen von PHP zu helfen
        und auftauchende Probleme zu diskutieren.

        Dies setzt Grundlagenwissen voraus und daß man Probleme beschreiben und Fehler eingrenzen kann.

        Das eigentliche Lernen muß man selber machen.
        versuche ich doch auch. ich lerne jeden tag dazu. du sagst es aber doch selbst: das forum ist da um unerfahrenden usern zu helfen php zu lernen. iich denke das ist aber jetzt nicht das thema hier.

        und ich denke ihr seht doch selbst das ich eigeninitiative zeige und auch selbst probiere und mir net ALLES VORKAUEN lasse. so ein quatsch.


        quote:
        --------------------------------------------------------------------------------
        habe kein error reporting eingeschakltet, jetzt jedenfalls net mehr.
        --------------------------------------------------------------------------------



        und das ist jetzt wirklich unglaublich, nachdem Dir im anderen Thread so oft gesagt wurde Du sollst es eingeschaltet lassen während der Entwicklungsphase.



        ---> kann in einer laufenden seite net die ganze zeit das error reporting laufen lassen! wenn du ein wenig in dem letzten beitrag von mir aufgepasst hättest, dann wäre dir aufgefallen das durch diesen lang includer min 50 warnungen kam, da lang dateien includet wurden, dessen variablen net benutz wurden, da sie nur in anderen tpl' vorkamen.

        jetzt lasse ich die ganze zeit error reporting in einer laufenden laufen damit ich(und andere) jedesmal die gleichen warnungen sehe. net gut denke ich.
        Zuletzt geändert von noob_in_php; 11.05.2007, 09:23.

        Kommentar


        • #19
          wieso ist dann error_reporting schon wieder ausgeschaltet ?

          Kommentar


          • #20
            Original geschrieben von noob_in_php
            habe kein error reporting eingeschakltet, jetzt jedenfalls net mehr. habe aber für die session_variable lang_session werte in 2 lang dateien stehen. rufe über echo die texte auf.

            ich kann dir gerad net folgen, was ist denn jetzt konkret falsch daran wenn ich 2 session_variablen habe in einer session und jetzt eine session_variable löschen möchte?


            edit:
            Funktionieren tut es auch bestens.
            Erstmal schleunigst error_reporting setzen. Nach der entsprechenden Nachricht, die dann auftauchen wird (und die Jahlives schon angesprochen hatte), müsstest du feststellen können, wo der Hund begraben liegt:
            Falsch:
            PHP-Code:
            unset($_SESSION[parameter]); 
            , da PHP korrekterweise annimmt, dass es sich bei parameter um eine Konstante handelt. Gemeint ist aber ein String - demnach ist richtig:
            PHP-Code:
            unset($_SESSION['parameter']); 
            Nieder mit der Camel Case-Konvention

            Kommentar


            • #21
              Original geschrieben von jahlives
              @noob
              PHP-Code:
              unset($_SESSION[redirectLink]); 
              Ist falsch und würde bei entsprechendem Error Reporting mittels einer Warning quittiert.
              Oder hast du eine Konstante in einer Session Var gespeichert ? Wohl kaum

              Gruss

              tobi
              hast recht hab das error reporting eingeschaltet und bekomme warnungen (notice).

              ein kleiner tip was ich da vielleicht falsch gemacht hab? ich meine funktionieren tut es trotzdem aber alleine warnungen zeigen einem ja schon das da trotzdem was net stimmt.

              folgende warnungen kommen bei mir:
              PHP-Code:
              NoticeA session had already been started ignoring session_start()
              in /is/htdocs/wp1050442_I4VP0FSVFT/logon.php on line 33

              Notice
              Undefined indexredirectLink in /is/htdocs/wp1050442_I4VP0FSVFT/logon.php on line 36

              Notice
              : Use of undefined constant redirectLink assumed 'redirectLink'
              /htdocs/wp1050442_I4VP0FSVFT/logon.php on line 45 

              oder kann man das ignorieren?

              Zuletzt geändert von noob_in_php; 11.05.2007, 09:38.

              Kommentar


              • #22
                Natürlich kannst du Notices ignorieren, nur solltest du nicht, da sie dich auf Misstände in deinem Code hinweisen und somit nicht umsonst geworfen werden, auch wenn deine Skripte in der Regel trotzdem noch lauffähig sind. error_reporting in der Produktion immer hochschrauben und anständig programmieren. Die Notices geben dir ja ausreichend Hinweise darüber, an welcher Stelle und aus welchem Grund es mangelt.

                P.S. Siehe mein Posting über deinem letzten. Dort habe ich dir den Grund für eine der Notices erklärt.
                Nieder mit der Camel Case-Konvention

                Kommentar


                • #23
                  OffTopic:
                  Ahhh *schrei wechlauf*


                  ähm hat man dir in schon gesagt xP

                  mindestens das mit der Konstante ^^
                  Bitte Beachten.
                  Foren-Regeln
                  Danke

                  Kommentar


                  • #24
                    wenn du ein wenig in dem letzten beitrag von mir aufgepasst hättest, dann wäre dir aufgefallen das durch diesen lang includer min 50 warnungen kam, da lang dateien includet wurden, dessen variablen net benutz wurden, da sie nur in anderen tpl' vorkamen.
                    nicht benutzte Variablen erzeugen bei mir keine Fehlermeldungen.

                    Komischweise schaffen es alle anderen auch.

                    Im Übrigen reicht es mir jetzt.

                    So eine blöde Anmache vonwegen "hättest Du ein wenig aufgepaßt".

                    Kommentar


                    • #25
                      alles klar! jetzt ist 1 warnung schonmal weg!
                      habe ein fach(wie du geschrieben hast):
                      unset($session[redirectlink]);

                      in:
                      unset($session['redirectlink']);

                      geändert. jetzt ist eine warnung weg.

                      jetzt habe ich noch folgende:
                      PHP-Code:
                      NoticeA session had already been started ignoring session_start()
                      in /is/htdocs/wp1050442_I4VP0FSVFT/logon.php on line 33

                      Notice
                      Undefined indexredirectLink in /is/htdocs/wp1050442_I4VP0FSVFT/logon.php on line 36 

                      Kommentar


                      • #26
                        Original geschrieben von noob_in_php
                        ---> kann in einer laufenden seite net die ganze zeit das error reporting laufen lassen!
                        Wenn du als selbsterklärter "Noob" in PHP in einem laufenden Projekt herumfuhrwerkst, ist das natürlich mehr als ungeschickt.

                        Da wäre dringendst anzuraten, dass du dir ein Testsystem aufsetzt, auf dem du "spielen" und herumprobieren kannst.


                        Wenn du hier weiterhin Hinweise und Tipps bekommen willst, dann mach das bitte, und nutze dabei error_reporting E_ALL.
                        Alles andere ist Herumstochern im Nebel, und da dürfte kaum einer hier Lust drauf haben.
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #27
                          Original geschrieben von noob_in_php
                          Notice: A session had already been started - ignoring session_start()
                          Und was ist daran jetzt schon wieder unverständlich?

                          Dir wurde bereits erklärt, dass das mehrfache Starten einer Session in einer Scriptinstanz Nonsense ist - du machst es aber offenbar immer noch.
                          I don't believe in rebirth. Actually, I never did in my whole lives.

                          Kommentar


                          • #28
                            ok vielen dank für dein tip! der hat mich jetzt schonmal eine warnung weniger weiter gebracht.

                            habe jetzt einfach aus 2 mal session start das hier gemacht:
                            PHP-Code:
                            <?php
                            error_reporting
                            (E_ALL);

                            if (!isset(
                            $_SESSION)) {
                                
                            session_start();
                                }
                            if ( !isset(
                            $_SESSION['lang_session']) )
                                {
                                
                            $_SESSION['lang_session'] = "de";
                                
                            $absolute_include="lang/lang_de.php";
                                
                            $folder_depth substr_count($_SERVER["PHP_SELF"] , "/");
                                if(
                            $folder_depth == false$folder_depth 1;
                                @include(
                            str_repeat("../"$folder_depth 1) . $absolute_include);
                                }
                            else if( isset(
                            $_SESSION['lang_session']) )
                                {
                                
                            $absolute_include="lang/lang_".$_SESSION['lang_session'].".php";
                                
                            $folder_depth substr_count($_SERVER["PHP_SELF"] , "/");
                                if(
                            $folder_depth == false$folder_depth 1;
                                @include(
                            str_repeat("../"$folder_depth 1) . $absolute_include);
                                }
                            else
                                {
                                
                            $_SESSION['lang_session'] = "de";
                                include(
                            "lang/lang_de.php");
                                }

                            if (
                            $_SESSION['redirectLink']) {
                                
                            $redir_target $_SESSION['redirectLink'];
                                
                            $login_text $lang['login9'];
                            }
                            else {
                                
                            $redir_target '/index.php';
                                
                            $login_text $lang['login1'];
                            }

                            unset(
                            $_SESSION['redirectLink']);
                            ?>
                            jetzt kommt nur noch folgende warnung:
                            PHP-Code:
                            NoticeUndefined indexredirectLink in /is/htdocs/wp1050442_I4VP0FSVFT/logon.php on line 30 
                            ich denke mal das ich diese definieren muss! werd mich nochmals umschauen, aber wenn noch jemand eine idee hat wäre ich ihm sehr dankbar.

                            Kommentar


                            • #29
                              das sagt dir warscheinlich blos das in der if abfrage die
                              $_SESSION['redirectLink'] nicht existent ist.

                              PHP-Code:
                              if ($_SESSION['redirectLink']) {
                                  
                              $redir_target $_SESSION['redirectLink'];
                                  
                              $login_text $lang['login9'];

                              wie auch sie wurde vorher nirgends in diesem skript angelegt. vieleicht wird sie an in einem anderen skript angelegt und ist hier einfach nur noch nicht existent.

                              heist.

                              vieleicht mal mit isset() prüfen. dann dürfte sich das notice auch auflösen.
                              Bitte Beachten.
                              Foren-Regeln
                              Danke

                              Kommentar


                              • #30
                                ok vielen dank an euch! habs aber jetzt selbst rausgefunden.

                                anstatt siehe oben, einfach:
                                [php]
                                if (isset($_SESSION['redirectLink'])) {
                                $redir_target = $_SESSION['redirectLink'];
                                $login_text = $lang['login9'];
                                }
                                else {
                                $redir_target = '/index.php';
                                $login_text = $lang['login1'];
                                }

                                unset($_SESSION['redirectLink']);
                                ?>
                                PHP-Code:

                                das
                                : (isset.....)
                                hat gefehltjetzt ist auch die letzte meldung weg!
                                :) 
                                edit: mist zu spät! habs gerade gesehen, vielen dank!

                                hm mist: habe gerad bemerkt das jetzt in der url folgendes steht:
                                PHP-Code:
                                <b>Notice</b>:%20%20Undefined%20variable:%20sess%20in%
                                20<b>/is/htdocs/wp1050442_I4VP0FSVFT/logon.php</b>%20on%20line%
                                20<b>63</b><br%20/> 
                                im browser content wird zwar nichts ausgegeben aber jetzt dafür obige in der url leiste. ??

                                in zeile 63 in der logon.php habe ich folgendes stehen:
                                PHP-Code:
                                <A href="http://www.meinedomäne.de/index.php?sid=<?php echo $sess;?
                                >
                                "><?php echo $lang['pfad0']; ?>
                                ich denke ich muss bei der stelle $session noch den variablen namen angeben, aber wie bekomme ständig fehler. jemand ne idee?


                                hab folgendes probiert:
                                PHP-Code:
                                if(isset($_GET['sess'])) {
                                    
                                $sess $_GET['sess'];

                                leider ohne erfolg es kommt immer noch die gleiche meldung in der url leiste!

                                ok hab was rausgefunden! es wird wenn man auf das logon tpl kommt eine sid erzeug, wenn man sich dann einloggt dann bekommt man die sid zugewiesen. logge ich mich nicht ein und gehe wieder auf die startseite dann kommt die fehlermeldung in der url leiste, ansonsten wenn ich mich einlogge dann zeigt er die sid in der url leiste an und keine warnung.

                                jemand eine idee? vorher ne abrage mache, ob man eingeloggt ist? - klar ich probiers mal!
                                Zuletzt geändert von noob_in_php; 11.05.2007, 10:43.

                                Kommentar

                                Lädt...
                                X