Martin Hein: php.ini .htaccess

hallo forum,

ich habe gerade über phpinfo() auf meinem kundenserver eine einstellung entdeckt, die auf meinem entwicklungssystem anders
ist:

magic_quotes_gpc Off

anstatt die scripte umzuprogrammieren, habe ich versucht über
ini_set() diese option zu ändern. ohne erfog ;( hab auch schon
rausgefunden, dass das nicht gehen kann, bin allerdings auch
auf einen tipp von wahsaga mit einem anderen ansatz gefallen:

"changeable: PHP_INI_PERDIR" -> .htaccess-datei im script-verzeichnis

nur will mir nicht klar werden, was konkret zu tun ist,
bzw. wie diese .htaccess-Datei aussieht.

kann mir jemand einen tipp geben ?

tausend danke und

beste gruesse,
martin hein

  1. Hi,
    kommst du an die INI ran oder bzw. nutzt du confixx ?

    Densie

  2. Hallo Martin.

    ich habe gerade über phpinfo() auf meinem kundenserver eine einstellung entdeckt, die auf meinem entwicklungssystem anders
    ist:

    magic_quotes_gpc Off

    anstatt die scripte umzuprogrammieren, habe ich versucht über
    ini_set() diese option zu ändern. ohne erfog ;( hab auch schon
    rausgefunden, dass das nicht gehen kann, bin allerdings auch
    auf einen tipp von wahsaga mit einem anderen ansatz gefallen:

    "changeable: PHP_INI_PERDIR" -> .htaccess-datei im script-verzeichnis

    „PHP_INI_PERDIR“ bedeutet aber, dass du Einstellungen durch das Ablegen einer php.ini in einem Verzeichnis ändern kannst; das geht aber nur, wenn PHP über CGI betrieben wird.

    Sollte es als Apache-Modul laufen, gäbe es noch die „php_flag“-Pseudodirektive:

    php_flag magic_quotes_gpc Off

    Dies wiederum gehört in die .htaccess-Datei.

    (Des weiteren solltest du Archivpostings, auf die du dich beziehst, immer verlinken. Sonst weiß keiner wovon du sprichst.)

    Einen schönen Montag noch.

    Gruß, Mathias

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules
    1. echo $begrüßung;

      „PHP_INI_PERDIR“ bedeutet aber, dass du Einstellungen durch das Ablegen einer php.ini in einem Verzeichnis ändern kannst; das geht aber nur, wenn PHP über CGI betrieben wird.
      Sollte es als Apache-Modul laufen, gäbe es noch die „php_flag“-Pseudodirektive:

      Man sollte noch erwähnen, dass die php.ini im CGI-Modus normalerweise ein vollständiger Ersatz der globalen php.ini ist. Die Einstellungen in einer Apache-Verzeichniskonfigurationsdatei (meist .htaccess) hingegen wirken ergänzend. Es genügt bei CGI also nicht, eine php.ini nur mit den zu verändernden Werten anzulegen. Stattdessen muss man schauen, was der Provider gegenüber der Default-Konfiguration geändert hat und diese Änderungen ebenfalls in der lokalen php.ini aufnehmen. Vor allem Pfadangaben zu PHP-.Extensions, sendmail, temporären Verzeichnissen und MySQL-Socket sollten beachtet werden.

      echo "$verabschiedung $name";

  3. Hallo Martin,

    magic_quotes_gpc Off

    anstatt die scripte umzuprogrammieren, habe ich versucht über
    ini_set() diese option zu ändern. ohne erfog ;( hab auch schon
    rausgefunden, dass das nicht gehen kann, bin allerdings auch
    auf einen tipp von wahsaga mit einem anderen ansatz gefallen:

    Ich kenne jetzt nicht deine konkrete Situation und weiß nicht, wie viele Scripte dafür geändert werden müssten. Auf Dauer solltest du aber überlegen, deine Scripte so abzuändern, dass Magic Quotes nicht mehr verwendet werden. Ab PHP 6 ist dieses "Feature" nicht nur standardmäßig deaktiviert sondern gar nicht mehr vorhanden.

    Schöne Grüße,

    Johannes

    1. hallo johannes,

      danke für den hinweis. das war mir nicht bewusst und es
      scheint mir am sinnvollsten zu sein, dem nachzugehen.

      meine situation:
      ----------------

      selbstgestricktes cms mit tinymce: xhtml-content wird aus
      ner mysql geholt und angezeigt/aus $_post in ne mysql-db
      geschrieben. lesen/schreiben ist alles zentral in einer
      getdbvalues.inc.php und einer writedbvalues.inc.php.

      rueckversicherung:
      ------------------

      magicquotes macht scheinbar nicht mehr als ein addslashes
      der inhalte von $_post und ein stripslashes der inhalte
      von was genau/bzw. wann genau?

      danke für die tipps und

      beste gruesse,
      martin

      1. und da ist er noch ein bisschen tiefer eingestiegen ;)

        das problem scheint zu sein, die anwendung auf maschinen
        mit magic_quotes und ohne gleichermassen zum laufen zu
        kriegen. wenn ich das richtig verstanden habe, muss man
        php erst fragen, ob die dinger 'on' oder'off' sind, weil
        man sonst doppelt maskiert. 'fragen' kann man aber nur,
        wenn ma n zugriff auf die php.ini hat ?

        ... und dann war da noch 'mysql_escape_string()'. kann
        man das problem damit umgehen ?

        beste gruesse,
        martin hein

        1. Hallo Martin.

          und da ist er noch ein bisschen tiefer eingestiegen ;)

          das problem scheint zu sein, die anwendung auf maschinen
          mit magic_quotes und ohne gleichermassen zum laufen zu
          kriegen. wenn ich das richtig verstanden habe, muss man
          php erst fragen, ob die dinger 'on' oder'off' sind, weil
          man sonst doppelt maskiert. 'fragen' kann man aber nur,
          wenn ma n zugriff auf die php.ini hat ?

          Nein, dafür gibt es eine spezielle Funktion.

          ... und dann war da noch 'mysql_escape_string()'. kann
          man das problem damit umgehen ?

          AFAIK sollte man unbedingt mysql_real_escape_string verwenden.

          Einen schönen Montag noch.

          Gruß, Mathias

          --
          ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
          debian/rules
          1. echo $begrüßung;

            das problem scheint zu sein, die anwendung auf maschinen mit magic_quotes und ohne gleichermassen zum laufen zu kriegen.
            [...] dafür gibt es eine spezielle Funktion.

            Auf der Handbuchseite Disabling Magic Quotes sind Vorgehensweisen für Umgebungen, die man selbst konfigurieren kann und auf die man keinen Einfluss hat aufgezeigt. Wenn man die Gegenmaßnahmen zu Magic Quotes im Script einbringen möchte, sollte man das mit dem dort angeführten Beispiel generell am Scriptanfang machen und nicht quer übers Script verteilen.

            ... und dann war da noch 'mysql_escape_string()'. kann man das problem damit umgehen ?
            AFAIK sollte man unbedingt mysql_real_escape_string verwenden.

            Unbedingt nun auch wieder nicht, denn der Unterschied zwischen beiden Funktionen kommt erst bei hierzulande nicht üblichen (asiatischen) Kodierungen zum tragen. Für ISO-8859-x und UTF-8 sind beide Funktionen gleichermaßen geeignet. Und wenn dann noch SET NAMES ins Spiel kommt, ist der Unterschied von mysql_real_escape_string() gegenüber mysql_escape_string(), das verbindungskodierungsabhängige Maskieren, sowieso nicht mehr gegeben.

            echo "$verabschiedung $name";

  4. hallo forum,

    danke für die antworten.

    mir scheint der erste tipp von johannes zeller der sinnvollste
    zu sein. darum werde ich dem nachgehen und mein script
    dahingehend umschreiben, dass ich auf das feature verzichte.

    danke und

    beste gruesse,
    martin hein