Session-Variablen

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

  • Session-Variablen

    Hallo,

    bei folgendem Code (Version 1) modifiziert mir PHP eine Sessionvariable mit Namen $_SESSION['name'] und schreibt dort unerklärbar den String rein, der in $name enthalten ist. Wenn ich $name aendere in $doku (siehe Version 2) passiert das nicht.

    Obwohl nun alles funktioniert würde mich interessieren, warum dies so ist.

    Version 1:
    if ($valid == "0") {
    $dokument = new dokument;
    $dokument->speichernDokument($db, $dbname, $trenner);
    $name = $dokument->getName ();
    $dokument->anzeigeDokument($db, $dbname, $name);

    Version 2:
    if ($valid == "0") {
    $dokument = new dokument;
    $dokument->speichernDokument($db, $dbname, $trenner);
    $doku = $dokument->getName ();
    $dokument->anzeigeDokument($db, $dbname, $doku);

  • #2
    weil die "register globals" unnötigerweise eingeschaltet sind.

    Kommentar


    • #3
      Danke für den Hinweis.

      Das Problem trat erst auf, nachdem ich die Scripts zum Provider (1und1) uebertragen hatte. In meiner XAMPP Umgebung lief alles bestens.

      Da sollte man den Provider mal ueberzeugen, seine Einstellungen zu ändern?

      Kommentar


      • #4
        oder folgende .htaccess nutzen:
        Code:
        php_value register_globals 0

        Kommentar


        • #5
          Wo kann ich nachlesen wie das geht?

          Kommentar


          • #6
            natürlich im Manual, wo sonst.

            http://de3.php.net/manual/de/ref.apache.php

            Kommentar


            • #7
              register_globals in .htaccess setzen

              Hallo,

              ich habe den .htaccess Tip umgesetzt, eine Datei mit Namen .htaccess erstellt und in das Document Root Verzeichnis meines Providers übertragen.

              Jetzt geht garnichts mehr. Beim Aufruf meines Scripts bekommen ich sofort eine Fehlermeldung:

              Internal Server Error
              The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, webadmin@kundenserver.de and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.

              Ich habe es mit zwei Varianten versucht:
              php_value register_globals 0
              php_flag register_globals 0

              Jedesmal das selbe Resultat.

              Was mache ich falsch?

              Kommentar


              • #8
                versuch bitte so
                php_flag register_globals off

                wenn das nicht funkt, dann muss du in deinen scripten mit
                ini_set ("register_globals" , "off");
                versuchen
                Slava
                bituniverse.com

                Kommentar


                • #9
                  ini_set ("register_globals" , "off");
                  Das kommt leider zu spät...
                  Bevor ini_set an die Reihe kommt, sind die Variablen schon
                  längst importiert....
                  Wir werden alle sterben

                  Kommentar


                  • #10
                    ini_set hat in der Tat auch keine Änderung gebracht.

                    Ich konnte das Problem, daß sich der Inhalt mancher Session-Variablen von einem Dialog zum andern aus unerfindlichen Gründen ändert aber anderweitig lösen. Ich habe einfach den Namen ($_SESSION['privilegien'] in $_SESSION['privi'] ) geändert und schon läufts.

                    Eine Erklärung könnte sein, dass das Feld in der DB auch Privilegien heisst und dass ich den Namen "Privilegien" auch für Felder in Formularen benutze. Wenn register_globals ON ist, scheint das zu diesem Effekt zu führen.

                    Kommentar


                    • #11
                      gerade dieses überschreiben entsteht ja durch die register_globals, warum du sie ja auch hättest ausstellen sollen! Aber wahrscheinlich unterstützt dein 1&1 kein ändern von php-werten in htaccess oder htaccess generell nicht!

                      Kommentar

                      Lädt...
                      X