Mandy: register_globals on + .htaccess Datei

Hallo, ich muss für ein Script die register_globals auf "on" schalten. (Ist momentan auf "off")
Dafür habe ich eine .htaccess Datei erstellt mit diesem Inhalt:

php_flag register_globals on

Wenn ich die Datei so auf meinen Server lade, kann ich keine Seite mehr aufrufen und es erscheint ein "internal Server Error".

Kann mir jemand sagen, was ich falsch gemacht habe bzw. wie es richtig sein muss?

Danke im Vorraus!

  1. Hello,

    php_flag register_globals on

    versuch mal

    php_admin_value register_globals on

    oder

    php_value register_globals on

    Da scheint es noch Unterschiede zu geben bei den Implementierungen der Webserver und der PHP-Versionen
    Eigentlich wäre Deine Variante die richtige.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Das habe ich mal versucht, klappt leider auch  nicht.

      Und das Script umschreiben.. es handelt sich um das Fanbase Script (V. 2.0.) Kennt das vielleicht jemand? Ich habe nämlich keine Ahnung, in welcher Datei (10 gibt es) in was umschreiben müsste, damit ich auch mit dem server_global "off" Zugang bekomme.

      (Problem bei dem Script: Um ins Administrationsmenü zu kommen, muss ich mich vorher einloggen. Nach Eingabe von Benutzername und Passwort (ja ich habe sie schon überprüft und sie waren richtig ;)) komme ich jedoch  nicht ins Administrationsmenü, sondern die Loginseite wird einfach neu geladen.
      Auf einer FAQ-Seite bezüglich des Scriptes wird gesagt, das server_global müsse auf "on" gesetzt werden mittels der .htaccess Datei, was bei mir jedoch anscheinend nicht funktioniert....

      Hello,

      php_flag register_globals on

      versuch mal

      php_admin_value register_globals on

      oder

      php_value register_globals on

      Da scheint es noch Unterschiede zu geben bei den Implementierungen der Webserver und der PHP-Versionen
      Eigentlich wäre Deine Variante die richtige.

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      1. ERROR: Standard-Begrüssung #128 not found

        Dann geht es wohl auf deinem server einfach nicht.
        Such dir einen Server der globals auf on hat oder (ich glaube nicht) setz alle übergebenen Variblen auf $_GET... haha =)

        <MFG>
        Sebastian Salzgeber
        </MFG>
        (aka:Indyaner)

        --
        www.indyaner.de
        indyaner[AT]indyaner[DOT]de
        Graphicdesign + Webdesign
        und ach: Pakete werden jetzt mit $_DHL verschickt und nichtmehr mit $_POST =)
        sh:) fo:| ch:{ rl:( br:& n4:~ ie:| mo:? va:{ de:< zu:| fl:) ss:| ls:< js:|
        1. Ich bin bei strato.de, in der PHP Beschreibung steht auch, dass die PHP Version, die ich benutze (ich glaube es ist Version 4), die globals standartmäßig auf off hat..

          Such dir einen Server der globals auf on hat oder (ich glaube nicht) setz alle übergebenen Variblen auf $_GET... haha =)

          1. ERROR: Standard-Begrüssung #128 not found

            Ich bin bei strato.de, in der PHP Beschreibung steht auch, dass die PHP Version, die ich benutze (ich glaube es ist Version 4), die globals standartmäßig auf off hat..

            Und jetzt?
            Dann hast du es ja schwarz auf weiss dass du diese option standardmässig auf off hast (wie es in den nächsten zeiten wohl jeder server haben wird)

            Auch hast du es schwarz auf weiss dass du bei einem schlechten unternehmen bist... aber das ist geschmackssache (ach ne doch nicht) und OT.

            Ich gebe dir noch eine hilfe mit auf den weg: schau mal bei hotscripts.com ob es dort nicht ein besseres script gibt welches über $_GET geht und die gleichen aufgaben wie dein aktuelles script ausübt.

            <MFG>
            Sebastian Salzgeber
            </MFG>
            (aka:Indyaner)

            --
            www.indyaner.de
            indyaner[AT]indyaner[DOT]de
            Graphicdesign + Webdesign
            und ach: Pakete werden jetzt mit $_DHL verschickt und nichtmehr mit $_POST =)
            sh:) fo:| ch:{ rl:( br:& n4:~ ie:| mo:? va:{ de:< zu:| fl:) ss:| ls:< js:|
        2. Hello,

          Such dir einen Server der globals auf on hat oder (ich glaube nicht) setz alle übergebenen Variblen auf $_GET... haha =)

          Mit dem Umschreiben auf $_GET ist es ja leider meistens nicht getan, denn man muss sich kümmern um:

          • verwendete Request-Methoden
            -- GET
            -- POST
            -- COOKIE
            -- ...

          • File-Uploads

          • session_register() ersetzen

          • Globals ggf. ersetzen durch Nutzung der superglobalen Arrays

          • aufgrund kombiniertem JavaScript/PHP-Spaghetti oft Probleme mit <form action="">
              (kein ation-Attribut angegeben --> die Paparmeter können auch aus JavaScripten stammen
               das ist nbei den MM-Menues oft so)

          wer macht weiter?

          Harzliche Grüße aus http://www.annerschbarrich.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          Nur selber lernen macht schlau
          1. ERROR: Standard-Begrüssung #128 not found

            Ich schloss mich nur der vermutung einer vorhergehenden person an dass es am GET liegen könnte weil die übergabe über die url nicht klappte.

            Dass man die anderen Globalen funktionen auch noch ersetezn/realisieren muss ist mir klar, war aber kein thema. Wenn wir von der herstellung von brötchen sprechen erwähne ich nicht den aufbau des backofens =)

            <MFG>
            Sebastian Salzgeber
            </MFG>
            (aka:Indyaner)

            --
            www.indyaner.de
            indyaner[AT]indyaner[DOT]de
            Graphicdesign + Webdesign
            und ach: Pakete werden jetzt mit $_DHL verschickt und nichtmehr mit $_POST =)
            sh:) fo:| ch:{ rl:( br:& n4:~ ie:| mo:? va:{ de:< zu:| fl:) ss:| ls:< js:|
            1. Hello,

              Dass man die anderen Globalen funktionen auch noch ersetezn/realisieren muss ist mir klar, war aber kein thema. Wenn wir von der herstellung von brötchen sprechen erwähne ich nicht den aufbau des backofens =)

              Es hätte aber sicher von gewisser Sozialkompetenz gezeugt, wenn Du meine Liste zum Nutzen der Allgemeinheit einfach fortgestzt hättest, sollte Dir da noch 'was einfallen.

              Harzliche Grüße aus http://www.annerschbarrich.de

              Tom

              --
              Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
              Nur selber lernen macht schlau
    2. Hallo Tom,

      php_admin_value register_globals on

      dazu steht im Manual ausdrücklich:
      | This <em>can not be used</em> in .htaccess files.

      php_value register_globals on

      dazu meint das Manual:
      | Note: Don't use php_value to set boolean values.
      | php_flag (see below) should be used instead.

      Eigentlich wäre Deine Variante die richtige.

      ja, ich vermute aber eher mal, dass AllowOverride auf none o.ä. steht - das gleiche Problem hatte ich auch schon - ich musste erst den Admin bitten das für mein Verzeichnis zu ändern :-)

      Grüße aus Nürnberg
      Tobias

      1. Hello,

        Hallo Tom,

        php_admin_value register_globals on
        dazu steht im Manual ausdrücklich:
        | This <em>can not be used</em> in .htaccess files.

        Ich lese das was anderes:

        Please note that register_globals cannot be set at runtime (ini_set()). Although, you can use .htaccess if your host allows it as described above. An example .htaccess entry: php_flag register_globals off.

        http://de3.php.net/manual/en/ini.core.php#ini.register-globals

        Aber meine Erfahrungen sagen mir da: Wenn es bereites eine Stufe höher per

        php_admin_flag register_globals off

        ausgeschaltet wurde, kannst Du es nicht wieder einschalten.

        Ich stell das auch immer in den VirtHosts ein für die Testverzeichnisse von Uralt-Code.
        Aber ein "Normaluser" hat darauf i.d.R. keinen Zugriff.

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. Hallo Tom,

          php_admin_value register_globals on
          dazu steht im Manual ausdrücklich:
          | This <em>can not be used</em> in .htaccess files.
          Ich lese das was anderes:

          Kunststück - du bist ja auf einer anderen Seite :-)

          Please note that register_globals cannot be set at runtime (ini_set()).

          von ini_set() habe ich doch garnichts gesagt ...

          Aber meine Erfahrungen sagen mir da: Wenn es bereites eine Stufe höher per
            php_admin_flag register_globals off
          ausgeschaltet wurde, kannst Du es nicht wieder einschalten.

          richtig - aber man kann es eben in der .htaccess _nicht_ verwenden.

          Grüße aus Nürnberg
          Tobias

          1. Hello,

            richtig - aber man kann es eben in der .htaccess _nicht_ verwenden.

            dann kann ich wohl kein englisch mehr:

            Although, you can use .htaccess if your host allows it as described above. An example .htaccess entry: php_flag register_globals off.

            Darüber sollten wir uns aber keinesfalls streiten. Die PHPs wissen oft selber nicht genau, was sie da programmiert haben. Wenn man es genau wissen will, muss man eben in den Assembler-Code für die jeweilige Plattform einsteigen...

            Die Compiler leisten schließlich auch noch ihren Beitrag.

            Harzliche Grüße aus http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
            1. Hallo Tom,

              ich glaube da liegt ein kleines Missverständniss vor:

              Although, you can use .htaccess if your host allows it as described above. An example .htaccess entry: php_flag register_globals off.

              beachte den Unterschied zwischen php_admin_flag und php_flag :-)
              php_flag kann man in einer .htaccess verwenden (je nach Einstellung von AllowOverride natürlich), php_admin_flag dagegen nicht.

              Grüße aus Nürnberg
              Tobias

  2. Moin!

    Hallo, ich muss für ein Script die register_globals auf "on" schalten. (Ist momentan auf "off")

    Nein, kein Skript muss register_globals auf "on" haben, jedes Skript kann auch so umgeändert werden, dass es mit "off" läuft.

    Dafür habe ich eine .htaccess Datei erstellt mit diesem Inhalt:

    php_flag register_globals on

    Wenn ich die Datei so auf meinen Server lade, kann ich keine Seite mehr aufrufen und es erscheint ein "internal Server Error".

    Offenbar ist dir die Verwendung dieser Option nicht erlaubt. Sie funktioniert ohnehin nur, wenn PHP als Apache-Modul eingebunden ist - viele Shared-Hoster binden PHP aber als CGI ein.

    Kann mir jemand sagen, was ich falsch gemacht habe bzw. wie es richtig sein muss?

    Ändere das Skript, nicht die PHP-Konfiguration.

    • Sven Rautenberg
    1. Hello,

      Kann mir jemand sagen, was ich falsch gemacht habe bzw. wie es richtig sein muss?

      Ändere das Skript, nicht die PHP-Konfiguration.

      Das ist aber manchmal leichter gesagt als getan. Ich weiß davon ein Lied zu singen. Wenn man Pech hat, muss man das ganze Gebilde irgendwelcher Vorgänger nochmal schreiben.

      Prinzipiell gebe ich Dir da allerdings recht. Wenn es nur ein einzelnes Script mit überschaubarer Anzahl Statements ist, lohnt sich das immer.

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
  3. Hi Mandy,

    Wenn ich die Datei so auf meinen Server lade, kann ich keine Seite mehr aufrufen und es erscheint ein "internal Server Error".

    Ist auf dem Server PHP als Modul oder über CGI eingebunden? In letzterem Fall funktioniert das mit der .htaccess AFAIK nicht, dann könntest du es mal mit der Runtine Configuration probieren.

    MfG, Dennis.

    --
    Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:( mo:} zu:|
    Das Motto des SELFForums ist das _self_made, also das selbermachen. Deshalb sollte man bevor man irgendetwas fragt, immer erst öffentliche Quellen zu Rate ziehen!
    1. echo $begrueszung;

      Ist auf dem Server PHP als Modul oder über CGI eingebunden? In letzterem Fall funktioniert das mit der .htaccess AFAIK nicht

      Hier liegst du richtig. Der CGI-Prozess kümmert sich nicht um die Apache-Einstellungen, und der wiederum kennt die Konfigurationsbefehle des nicht vorhandenen php-Moduls nicht. Dafür kann man aber eine php.ini in das jeweilige Script-Verzeichnis legen, hab ich die Tage erst im Handbuch gelesen (ich weiß aber nicht mehr genau wo).

      , dann könntest du es mal mit der Runtine Configuration probieren.

      Das wird nichts. Der register_globals-Mechanismus ist zur Runtime längst Geschichte.

      echo "$verabschiedung $name";

      1. hi,

        , dann könntest du es mal mit der Runtine Configuration probieren.

        Das wird nichts. Der register_globals-Mechanismus ist zur Runtime längst Geschichte.

        und deshalb steht da als beispiel

        ; Boolean values can be set to either:
        ;    true, on, yes
        ; or false, off, no, none
        register_globals = off

        ? da scheinen die PHP-heinis ihren eigenen kram aber schelcht zu kennen.
        (oder du hast "runtime" in diesem zusammenhang falsch interpretiert.)

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. echo $begrueszung;

          (oder du hast "runtime" in diesem zusammenhang falsch interpretiert.)

          Nein, ich habe es als Script-Runtime interpretiert, und da kann man an manchen Dingen einfach nichts mehr drehen (mit (ini_set()). Siehe http://www.php.net/manual/en/ini.php

          Beispiele: register_globals, magic_quotes_gpc, arg_separator.input, auto_append/prepend_file, ...
          Also alles was PHP_INI_PERDIR und PHP_INI_SYSTEM ist.

          echo "$verabschiedung $name";

      2. Hi dedlfix,

        dann könntest du es mal mit der Runtine Configuration probieren.

        Das wird nichts. Der register_globals-Mechanismus ist zur Runtime längst Geschichte.

        Der Begriff "Runtime" mag hier etwas missverständlich sein, aber da er im PHP Manual so genutzt wird an dieser Stelle, habe ich ihn auch genutzt.

        Gemeint ist eine Datei names php.ini ins Verzeichnis zu legen, in die du dann, wie wahsaga bereits schrieb "register_globals = off" schreiben kannst. Greift allerdings nicht auf Unterverzeichnisse über - zumindest nach meinen Erfahrungen.

        MfG, Dennis.

        --
        Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:( mo:} zu:|
        Wer die FAQ gelesen hat, ist klüger! ... und weiß wie man Links macht ;-)
        1. echo $begrueszung;

          Der Begriff "Runtime" mag hier etwas missverständlich sein, aber da er im PHP Manual so genutzt wird an dieser Stelle, habe ich ihn auch genutzt.

          O.K. Ich denke, darüber sind wir uns jetzt einig.
          Für mich ergibt das "Runtime" nur einen Sinn, wenn es sich auf das Script bezieht. Dass jede Art von Konfiguration nur dann etwas bewirkt, wenn irgendetwas (hier: Webserver, PHP-Modul/CGI) _läuft_ sollte aus sich selbst heraus schon klar sein.

          Gemeint ist eine Datei names php.ini ins Verzeichnis zu legen, in die du dann, wie wahsaga bereits schrieb "register_globals = off" schreiben kannst. Greift allerdings nicht auf Unterverzeichnisse über - zumindest nach meinen Erfahrungen.

          Jetzt ist mir auch wieder eingefallen, wo ich das gelesen habe: http://faq.kundenserver.de/technische_fragen/web_hosting/scripte_cgi_php_asp_etc_/php/2.html

          echo "$verabschiedung $name";