include bloquant

ça marche en local, mais pas en ligne

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour à tous,
je viens vers vous en dépit de solutions… Je prend toutes les suggestions/aides que vous pourrez m'apporter :)

Je suis en train de faire de la maintenance sur un site web. J'ai changé deux/trois fichiers, et tout marche très bien en local. Mais une fois en ligne j'ai quelques fichiers php qui ne marchent plus, ces fichiers arrêtent leur exécution lors d'un include.

Voilà ce que je sais :

  • Cela ne vient pas de la fonction "include", je l'utilise juste avant sans que ça bloque (j'arrive à faire un "echo" après ce premier "include")
  • Cela ne vient pas du fichier inclut car quand je fais un "echo" en première ligne du fichier inclus, je n'ai rien qui s'affiche
  • Le fichier se bloque bien au niveau de cette "include" car quand je met un echo avant, il s'affiche, mais quand je le met après, plus rien.
  • Le chemin vers mon fichier est bon, puisqu'il marche en local (et que c'est un chemin relatif).
  • Les dossiers sont en 755 et les fichiers en 644.

Des idées?

Édité par SeeoX

+0 -0

Bonjour, J'ai eu le même problème il y a quelques temps. Vérifie bien que le nom de tes fichiers das ton Includes sont EXACTEMENT identique. Pour ma part j'avais des nom de script en Maj, avec des includes en minuscules. Et bien en Local pas de soucis, mais côtés serveur ça ne passe plus :)

Voila voila

+1 -0
Auteur du sujet

Merci Anthony, je me suis déjà fait avoir plusieurs fois au début, mais maintenant j'y pense systématiquement. Mon fichier et mes dossiers sont tous en minuscules. Par contre il y a un underscore "_" dans le nom de mon fichier que j’inclue, vous pensez que cela peut venir de là?

+0 -0
Auteur du sujet

Je viens de trouver d'où cela venait. C'est juste que l'hébergeur de mon client est en version 5.3 de PHP et que certains bouts de code ne s’interprètent pas correctement.

Le problème venait de la fonction "str_replace()". Je lui passait directement deux tableaux en paramètres, alors qu'il est nécessaire de passer par des variables pour mettre des tableaux en paramètres avec cette version de PHP.

En gros je faisait :

1
str_replace(['a', 'b'], ['c', 'd'], 'ababqjgfdjhqsababa');

Alors qu'il faut faire (avec cette version de PHP) :

1
2
3
$find = array('a', 'b');
$replace = array('c', 'd');
str_replace($find, $replace, 'ababqjgfdjhqsababa');

Merci quand même à toi Anthony :)

+0 -0

Cette réponse a aidé l'auteur du sujet

Juste parce que je passe par là : la syntaxe […] pour déclarer les tableaux n'est disponible que depuis une version relativement récente de PHP (il me semble que c'est la 5.5, à confirmer), qui n'est visiblement pas installée sur le serveur. Ce n'est donc pas le souci de ce que les tableaux soient définis dans l'appel à la fonction, mais la manière de les définir. Tu aurais tout aussi bien pu corriger en mettant str_replace(array('a', 'b'), array('c', 'd'), 'ababqjgfdjhqsababa'), la manière certes "verbeuse" mais nettement plus portable de faire à l'heure actuelle  ;)

Édité par Ymox

Evitez qu'on vous dise de les lire : FAQ PHP et Symfony 2Tutoriel WAMP • Cliquez 👍 pour dire merci • Marquez vos sujets résolus

+2 -0

Cette réponse a aidé l'auteur du sujet

(il me semble que c'est la 5.5, à confirmer)

5.4

PHP 5.4.0 apporte un large éventail de nouvelles fonctionnalités. […] La syntaxe courte des tableaux a été introduite, exemple : $a = [1, 2, 3, 4]; ou $a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4];. […]


mais nettement plus portable de faire à l'heure actuelle

Portabilité relative sachant que la 5.4 vient d'être totalement abandonnée (= on n'est plus censé trouver des versions < 5.5)

+1 -0
Auteur du sujet

Merci à vous deux pour ces précisions :)

Je m'en étais bien rendu compte, par la suite, pour le reste de mon code. C'est assez gênant pour coder, car j'ai pris l'habitude d'utiliser la syntaxe "[]", mais je n'ai pas le choix du serveur…

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte