Apache versteht nur <?php - brauche aber <? - Wie?

Apache, Lighttpd, nginx, Cherokee
Post Reply
webside
Posts: 7
Joined: 2004-07-01 16:54
 

Apache versteht nur <?php - brauche aber <? - Wie?

Post by webside »

Hallo Zusammen,
ich habe ein Problem. Ich habe meinen Apache auf 2.2 geupdatet. Wenn ich jetzt eine Datei mit .php aufrufe in der der PHP Code mittels "<?" anfängt bekomme ich auf der Seite nur Quelltext angezeigt.
Wenn ich es mit "<?php" mache, funktioniert es einwandfrei.

Wie kann ich Apache jetzt sagen, das er auch "<?" akzeptieren soll?

Danke im voraus.
der kleine tux
Posts: 97
Joined: 2005-10-29 04:12
Location: Planet Erde
 

Re: Apache versteht nur <?php - brauche aber <? - Wie?

Post by der kleine tux »

Hi
das sollte es sein

Code: Select all

; Allow the <? tag.  Otherwise, only <?php and <script> tags are recognized.  
; NOTE: Using short tags should be avoided when developing applications or
; libraries that are meant for redistribution, or deployment on PHP
; servers which are not under your control, because short tags may not
; be supported on the target server. For portable, redistributable code,
; be sure not to use short tags.
short_open_tag = On
zu finden in deiner php.ini

gruss
[tom]
Posts: 656
Joined: 2003-01-08 20:10
Location: Berlin
 

Re: Apache versteht nur <?php - brauche aber <? - Wie?

Post by [tom] »

Der short_open_tag sollte abgeschafft werden. Zum einen verleitet er nur zum unsauberen Programmieren und zum anderen hat man Probleme mit .php Dateien, die XHTML erzeugen sollen (wenn das <?xml nich mit PHP sondern nativ notiert wird).

Was ist eigentlich das Problem es RICHTIG zu machen, also mit "<?php" als öffnendes Tag? Wenn es nicht Dein Script ist einfach mit suchen und ersetzen anpassen. Hab das mit Visas auch mal gemacht. Jetzt läuft es auch mit "short_open_tag = off".


[TOM]
braindead
Posts: 250
Joined: 2002-10-22 09:49
Location: vorm Rechner
 

Re: Apache versteht nur <?php - brauche aber <? - Wie?

Post by braindead »

Hab das mal gemacht als script. Bei mir hat ein einfaches

for i in *; do sed -e "s/<? /<?php /g" $i > $i.new; mv $i.new $i; done

geholfen.

Wer nicht weiss was er tut sollte das Script besser nicht verwenden!
User avatar
Joe User
Project Manager
Project Manager
Posts: 11191
Joined: 2003-02-27 01:00
Location: Hamburg
Contact:
 

Re: Apache versteht nur <?php - brauche aber <? - Wie?

Post by Joe User »

Ungetestet:

Code: Select all

find . -type f -name *.php -print0 | xargs -0 sed 's/<?([[:space:]].*)*$/<?php1/g' -i -
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
braindead
Posts: 250
Joined: 2002-10-22 09:49
Location: vorm Rechner
 

Re: Apache versteht nur <?php - brauche aber <? - Wie?

Post by braindead »

ich fand meins besser, da kann man erstmal einen Probelauf machen und das mv weglassen ;)
User avatar
Joe User
Project Manager
Project Manager
Posts: 11191
Joined: 2003-02-27 01:00
Location: Hamburg
Contact:
 

Re: Apache versteht nur <?php - brauche aber <? - Wie?

Post by Joe User »

Was nützt mir ein Probelauf, wenn die Escapes falsch sind ;)
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
braindead
Posts: 250
Joined: 2002-10-22 09:49
Location: vorm Rechner
 

Re: Apache versteht nur <?php - brauche aber <? - Wie?

Post by braindead »

Was soll den falsch sein? Ich seh im Moment keinen Fehler :(
duergner
Posts: 923
Joined: 2003-08-20 11:30
Location: Pittsburgh, PA, USA
 

Re: Apache versteht nur <?php - brauche aber <? - Wie?

Post by duergner »

braindead wrote:for i in *; do sed -e "s/<? /<?php /g" $i > $i.new; mv $i.new $i; done
braindead
Posts: 250
Joined: 2002-10-22 09:49
Location: vorm Rechner
 

Re: Apache versteht nur <?php - brauche aber <? - Wie?

Post by braindead »

Meine Version checkt ob nach dem <? ein Freizeichen vorhanden ist und baut das dann auch nach dem <?php wieder an der Stelle ein. Nach meiner Meinung völlig richtig. Korrigiert mich wenn ich falsch liege.
User avatar
Joe User
Project Manager
Project Manager
Posts: 11191
Joined: 2003-02-27 01:00
Location: Hamburg
Contact:
 

Re: Apache versteht nur <?php - brauche aber <? - Wie?

Post by Joe User »

OK, dank fehlender Code-Tags habe ich die Leerzeichen übersehen :roll:

Aber: Was macht Deine Version, wenn nach dem <? kein (Leer)zeichen oder ein Tab vorkommt?
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
braindead
Posts: 250
Joined: 2002-10-22 09:49
Location: vorm Rechner
 

Re: Apache versteht nur <?php - brauche aber <? - Wie?

Post by braindead »

OK ... da passiert dann mal garnix. Bisher war ich der meinung das php das garnet akzepiert wenn nach den Opentags nix stehen, aber ich musste mich soeben eines besseren belehren lassen :( Das macht die Sache dann aber mal echt kompliziert. Ich denke das wird ohne ein awk script kaum zu lösen sein. Deine Version hat mit dem Fehlenden Leerzeichen aber auch Probleme ...

aus:

Code: Select all

<?echo "test"; ?>
wird:

Code: Select all

<?echo<?php "test"; ?>
auch net so das ware ;) Hab gerade keine zeit was besseres zu basteln, ich mach mich nachher mal schnell dran und bau was.
User avatar
Joe User
Project Manager
Project Manager
Posts: 11191
Joined: 2003-02-27 01:00
Location: Hamburg
Contact:
 

Re: Apache versteht nur <?php - brauche aber <? - Wie?

Post by Joe User »

Code: Select all

find . -type f -name *.php -print0 | xargs -0 sed 's/<?([[:print:]].*)*$/<?php1/g' -i -
Sollte auch ohne [[:print:]] matchen...
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Post Reply