PHP 5.1 - Session erstellen funktioniert nicht

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

  • PHP 5.1 - Session erstellen funktioniert nicht

    Hallo zusammen,

    ich biete auf meiner Homepage unter anderem ein Newsscript zum Download an. Das funktioniert sowohl unter PHP 4 als auch unter PHP 5 eigentlich ohne Fehler und Probleme. Jetzt hab ich allerdings eine Supportanfrage erhalten in der beschrieben wird, dass der Login in den Administrationsbereich nicht funktioniert.

    Das Usermanagement erfolgt im Script über die in PHP integrierte Session-Verwaltung. Wie mir scheint spinnt da jetzt irgendwas mit dem setzten von Session-Variablen rum.

    Hier mal die Server-Config:
    mysql-5.0.22-2.1
    php 5.1.6
    phpinfo des Serves gibts hier

    Ich setzte in dem Script nach dem Überprüfen der Zugangsdaten die Session folgendermaßen:

    PHP-Code:
    //Ganz am Anfang der Datei - vor jeder anderen Ausgabe:
    session_start();

    //Hier überprüfen der Zugangsdaten etc.
    //danach $row != leer:
    //Session erstellen
                    
    if(strchr($servers,"PHP/5."))
                        {
                        
    //für PHP 5
                        
    $_SESSION['idsession'] = $row['id'];
                        
    $_SESSION['passsession'] = $row['password'];
                        }
                    else
                        {
                        
    //für PHP 4
                        
    $idsession $row['id'];
                        
    $passsession $row['password'];
                        }
                
    //Session erstellen
                
    if(!strchr($servers,"PHP/5."))
                    {
                    
    session_register("idsession");
                    
    session_register("passsession");
                    } 
    Ausglesen werden die Session-Variablen folgendermaßen:
    Code:
    session_start();
    
    $_SESSION['idsession']
    $_SESSION['passsession']
    Bei der testweisen Ausgabe der Variabeln steht im Server-Log:
    PHP Notice: Undefined index: idsession in ...
    PHP Notice: Undefined index: passsession in ...
    Der Inhalt des Session-files sieht so aus:
    Code:
    <?php idsession|N;passsession|N; ?>
    Wen es interessiert: Hier ist der ganze Thread zum Problem bei mir im Forum

    Hat jemand eine Idee, wo das Problem liegt?
    [color=red]Jesus at 1st[/color]

    www.01-scripts.de
    kontakt [at] 01-scripts [.] de

  • #2
    was wie wo ???

    wieso bei php 5: $_SESSION['var']
    und bei php 4: $var ?

    register globals, register globals, register globals, register globals

    *********

    session_register stammt aus der Steinzeit

    *********

    Kommentar


    • #3
      Re: PHP 5.1 - Session erstellen funktioniert nicht

      PHP-Code:
                      if(strchr($servers,"PHP/5."))
                          {
                          
      //für PHP 5
                          
      $_SESSION['idsession'] = $row['id'];
                          
      $_SESSION['passsession'] = $row['password'];
                          }
                      else
                          {
                          
      //für PHP 4 
      Viel Spass damit, wenn PHP 6 rauskommt ...
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Original geschrieben von Koala
        was wie wo ???

        wieso bei php 5: $_SESSION['var']
        und bei php 4: $var ?

        register globals, register globals, register globals, register globals

        *********

        session_register stammt aus der Steinzeit

        *********
        Da bei manchen PHP4-Serverkonfigurationen ohne das Probleme auftraten hab ich die alternative eben noch drin.
        Darin liegt aber doch sowieso nicht das von mir angesprochene Problem...
        Und wenn ich die Session mit $_SESSION['name'] ausgebe dürfte die Einstellung von register_globals doch egal sein.

        Viel Spass damit, wenn PHP 6 rauskommt ...
        Auch dieser Kommentar hilft mir kein Stück bei meinem Problem...
        [color=red]Jesus at 1st[/color]

        www.01-scripts.de
        kontakt [at] 01-scripts [.] de

        Kommentar


        • #5
          So ein Schwachsinn....!
          Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
          var_dump(), print_r(), debug_backtrace und echo.
          Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
          Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
          Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

          Kommentar


          • #6
            Original geschrieben von Deathfragger
            Da bei manchen PHP4-Serverkonfigurationen ohne das Probleme auftraten hab ich die alternative eben noch drin.
            Uralte Versionen zu unterstützen, halte ich für Humbug.
            Darin liegt aber doch sowieso nicht das von mir angesprochene Problem...
            Und wenn ich die Session mit $_SESSION['name'] ausgebe dürfte die Einstellung von register_globals doch egal sein.
            Wenn du annimmst, es - egal, welche PHP-Version - mittels $_SESSION['name'] auslesen zu können - dann ist es doch reichlich blödsinnig, beim reinschreiben nicht auch nur $_SESSION['name'] zu benutzen, sondern da noch versionsabhängig mit session_register rumzuhantieren.
            Auch dieser Kommentar hilft mir kein Stück bei meinem Problem...
            Du wirst mit diesem stumpfsinnigen Code zukünftig Probleme kriegen.
            Wenn dich das nicht mal ansatzweise interessiert, spricht das wohl kaum für die Qualität deiner Scripte.
            I don't believe in rebirth. Actually, I never did in my whole lives.

            Kommentar


            • #7
              Original geschrieben von wahsaga
              Du wirst mit diesem stumpfsinnigen Code zukünftig Probleme kriegen.
              Wenn dich das nicht mal ansatzweise interessiert, spricht das wohl kaum für die Qualität deiner Scripte.
              Es interessiert mich durchaus - und ich werd es beim nächsten Update auch berücksichtigen - nur hilft mir bisher KEINE EINZIGE ANTWORT beim eigentlichen Problem meines Eintrags weiter.

              Aber was habe ich erwartet - so läuft es hier ja leider schon seit Jahren in fast jedem Thread, der nicht von einem IT-Profi erstellt wird.
              [color=red]Jesus at 1st[/color]

              www.01-scripts.de
              kontakt [at] 01-scripts [.] de

              Kommentar


              • #8
                Du benutzt Code, der von mehreren erfahrenen Leuten als "vermurkst" angesehen wird - ziehst es aber nicht in Betracht, diesen Murks auszubessern.

                Dann lass' es halt, uns kann's Wurscht sein.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  So ein Quatsch. Hier wird jeder Thread zufriedenstellend beantwortet in dem der Ersteller bereit ist 1) seinen Code zu ändern und 2) sich an die Regeln der PHP-Manual zu halten.

                  Deswegen schmeißt du den ganzen Mist aus deiner ersten Datei raus, schreibst dort (funktioniert in PHP 4 genauso wie in PHP 5):
                  PHP-Code:
                   $_SESSION['idsession'] = $row['id'];
                  $_SESSION['passsession'] = $row['password']; 
                  und in der zweiten Datei dann
                  PHP-Code:
                   session_start ( );
                  print_r $_SESSION ); 
                  und sagst uns was dabei rauskommt.

                  Wenn dir das nicht gefällt lass es ein und such alleine weiter nach der Lösung. Mit deiner Grundlage wird dir hier keiner helfen.
                  EDIT:
                  Und nochwas: Wenn du nicht verstehst was leute von deinem Skript posten hilft es nichts wenn du uns hier irgendetwas zusammenbaust. Der User in deinem Forum schreibt eindeutig das der "Undefined index ..." Fehler vor dem Login auftritt, sodass die Session schon vorhanden sein sollte. Vielleicht solltest du den Fehler lieber in deinem Versionsabhänigen Konstrukten suchen. Davon gibts ja wahrscheinlich noch mehr.
                  Zuletzt geändert von tontechniker; 01.05.2007, 19:04.
                  Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                  Kommentar


                  • #10
                    @tontechniker:
                    Gut, ich hab die Änderungen vorgenommen und geb das mal so an den mit dem Problem weiter.
                    Sobald ich eine Antwort hab, meld ich mich wieder.

                    Danke für deinen Post.
                    [color=red]Jesus at 1st[/color]

                    www.01-scripts.de
                    kontakt [at] 01-scripts [.] de

                    Kommentar


                    • #11
                      Also:[list=1][*]function_exists erwartet einen String als Argument (in deinem ganzen Newsskript hast du Hochkommata vergessen)[*]Statt jedesmal zu überprüfen ob die Funktion existiert reicht es wenn du das einmal prüfst und die fehlende Funktion dann mit dem gleichen Namen erstellst[*]Frage ich mich warum du überall die SID anhängst und das nicht automatisch machen lässt[*][COLOR=red](edit)[/COLOR] Was willst du mit solchen Konstrukten?
                      PHP-Code:
                      while($row mysql_fetch_array($list))
                      {
                         
                      array_push($settings_keys$row['idname']); //Keys
                         
                      array_push($settings_wertestripslashes($row['wert']));  //Werte
                      }
                      $settings array_combine($settings_keys,$settings_werte); 
                      einfach $settings [ $row [ 'idname' ] ] = $row [ 'wert' ] ging in PHP 4 noch nicht oder was?[*][COLOR=red](edit)[/COLOR] [/list=1]
                      PHP-Code:
                      if($PHP_SELF == ""){ $filename $_SERVER['PHP_SELF']; }else{ $filename $PHP_SELF; } 
                      Warum benutzt du hier 66% register_globals? ([COLOR=red](edit)[/COLOR] und auch sonst überall im Skript?)
                      Zuletzt geändert von tontechniker; 01.05.2007, 19:33.
                      Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                      Kommentar


                      • #12
                        zu 1. Danke für den Hinweis. Werde ich ändern. Allerdings kann ich das mit den Hochkommata nicht nachvollziehen. Die habe ich eigentlich an allen nötigen Stellen gesetzt.
                        zu 2. Werde ich machen
                        zu 3. Weil die SID nicht bei jedem Server automatisch angehängt wird.
                        zu 4. Ich bin mir nicht sicher - aber als ich das so machen wollte gab es glaube ich eine Fehlermeldung. Ich werde es aber nochmals testen.
                        zu 5. Gute Frage *schäm*. Wird korrigiert.

                        Danke für deine Hinweise.
                        Ich bin immer dankbar dafür.
                        [color=red]Jesus at 1st[/color]

                        www.01-scripts.de
                        kontakt [at] 01-scripts [.] de

                        Kommentar


                        • #13
                          [list=1][*]In dem Teil den ich gerade runtergeladen habe ist das sowohl in functions.php als auch in headerinclude.php (genauso wie es auch die Fehlermeldungen aus deinem Forum sagen) falsch (siehe die Zeilen 629;141,160,178)[*]
                          aber als ich das so machen wollte gab es glaube ich eine Fehlermeldung
                          Glaub ich nicht.[/list=1]
                          Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                          Kommentar

                          Lädt...
                          X