8795 sujets

Développement web côté serveur, CMS

Bonjour,

Je reprends des programmes php d'une association qui tournent sous un serveur dédié pour y faire quelques modifications.
Tous ces programmes tournent sans problème et pour ceux que j'ai à modifier, après essai pas de problème.

Seulement je trouve un problème en les faisant tourner en local sur mon serveur apache.

J'ai un programme qui en appelle un autre, le premier programme tourne bien mais quand le second est appelé, c'est le code source du script php qui s'affiche au lieu d'être exécuté.

Il est appelé par --form action='pgm_appelé' method='post'-- ce qui me parait normal.

Alors pourquoi ce script appelé marche sur le serveur dédié et pas sur mon serveur apache alors que le script appelant marche bien ?

Vous avez des réponses ?
Merci d'avance.
Cordialement.
Le plus probable c'est que ton serveur local a la directive short open tag à off alors que le script utilise le tag <? au lieu de <?php pour interpréter le code PHP. Il te suffit de configurer ton serveur local pour activer short open tag.

Il te suffit de remplacer :

short_open_tag = Off

Par :

short_open_tag = On

Dans ton fichier php.ini

Par contre cette directive n'existe plus en PHP 5.4 et plus donc si ton serveur local est sous une version >= 5.4 tu es marron et tu devrais remplacer les tag dans tes fichiers. Cela dit un simple chercher/remplacer sur ton arborescence de projet suffit.
Modifié par jb_gfx (31 Jan 2014 - 18:28)
Oui en mettant <?php au lieu de <? çà marche, mais je ne comprends pas pourquoi les autres programmes marchent alors qui sont tous avec <?
Merci de la réponse.
Cordialement.
Certains scripts avaient des <? et d'autres des <?php, j'ai tout remis à <?php et tout marche bien, merci et bonne journée.