short_open_tag lässt sich nicht aktivieren

Nord-Süd-Richtung

Erfahrenes Mitglied
Hi

Ich habe das Problem das ich die Option short_open_tag nicht aktivieren kann... Ich nutze Xampp 1.7.2. Weder mit
PHP:
ini_set("short_open_tag","1");
ini_set("short_open_tag","On");
Noch mit direkten Änderungen in der php.ini lässt es sich anstellen (bei phpinfo steht es immer noch auf Off). Wie krieg ich die Option denn an? Ich bin hier echt am Verzweifeln :(
 
Nicht alle Direktiven der php.ini lassen sich über [phpf]ini_set[/phpf] ansprechen.

In deinem Fall kann dir aber eine .htaccess Datei mit folgendem Inhalt weiterhelfen:

Code:
php_flag short_open_tag 0
 
Moin!

Nicht alle Direktiven der php.ini lassen sich über [phpf]ini_set[/phpf] ansprechen.
Das ist richtig, allerdings hat er auch geschrieben:
Noch mit direkten Änderungen in der php.ini lässt es sich anstellen (bei phpinfo steht es immer noch auf Off).

Üblicherweise würde ich auch die Einstellung in der .htaccess empfehlen, oder einfach mal schauen ob die richtige php.ini verwendet wird.
Aber: short_open_tag ist eine Direktive vom Typ PHP_INI_ALL und müsste laut Dokumentation somit überall gesetzt werden können.

Bist Du Dir sicher, dass diese Zeilen Code überhaupt ausgeführt werden? Nicht das du z.B. ini_set in einer zu inkludierenden (Konfigurations-)Datei stehen hast und einfach vergisst, diese einzubinden..

Gruß
Enum
 
Hallo!

also ich weiß jetzt nicht ob es am neustarten des Laptops lag (bzw aus/einschalten) aber anscheinend ist short_open_tags jetzt aktiviert.:confused:
Nun, wenn Änderungen direkt in der php.ini vorgenommen werden, muss XAMPP (bzw. jeder andere Apache auch) neugestartet werden.
Wenn die Änderungen aber via .htaccess vorgenommen werden, werden sie auch ohne Neustart übernommen.

Zum Thema "richtige php.ini": welche php.ini gerade genutzt wird, verrät Dir phpinfo() gleich im obersten Kasten.

Gruss Dr Dau
 
Üblicherweise würde ich auch die Einstellung in der .htaccess empfehlen, oder einfach mal schauen ob die richtige php.ini verwendet wird.
Aber: short_open_tag ist eine Direktive vom Typ PHP_INI_ALL und müsste laut Dokumentation somit überall gesetzt werden können.

Jap, habe ich auch gelesen. Aber im direkten Test hat das Umschalten weder auf PHP 5.2.11 noch auf 5.3 funktioniert. Von daher vermute ich einen Fehler in der Dokumentation.
 
Von daher vermute ich einen Fehler in der Dokumentation.
Bist Du Dir da sicher?
Laut Doku zählt PHP_INI_ALL für short_open_tag nämlich nur bis PHP 4.0.0.
Darüber (also ab PHP 4.0.1 bis zur aktuellen Version 5.3.0) ist es PHP_INI_PERDIR..... und PHP_INI_PERDIR wiederum lässt die Einstellung laut anderer Doku nur in der php.ini, einer .htaccess oder der httpd.conf zu (also nicht per ini_set() und somit auch nicht per PHP-Script).
Ich sehe da also keinen Fehler in der Doku.
 
Laut Doku zählt PHP_INI_ALL für short_open_tag nämlich nur bis PHP 4.0.0. Darüber (also ab PHP 4.0.1 bis zur aktuellen Version 5.3.0) ist es PHP_INI_PERDIR.....
Genau, bis zu Version 5.3. Aber exklusive 5.3. Wenn man der Doku glauben schenken darf, und immerhin bezieht sie sich ja auf 5.3, dann:
Code:
Name  	         Standard   Änderbar      Kommentar
short_open_tag   "1"        PHP_INI_ALL   PHP_INI_ALL in PHP <= 4.0.0. PHP_INI_PERDIR in PHP < 5.3.0
Was bedeuten würde, nur seit Versionen nach 4.0.0 und bis vor 5.3.0.
Na, egal. Grundsätzlich ist von short_open_tag sowieso abzuraten.

Gruß
Enum
 
Zurück