Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1215 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Problème de définition d'une constante avec des simple quote

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Problème de définition d'une constante avec des simple quote

n°2115906
blackphant​om
Pfffff...
Posté le 10-12-2011 à 13:52:03  profilanswer
 

Bonjour !
 
Je viens de récupérer un site que je viens d'installer sur mon serveur, mais j'ai un gros problème : toutes les constantes sont définies avec des simple quotes mais ma version de php ne le permet pas.
 
Exemple :
 
<?php
 
define('MY_CONST', 'value');
 
echo MY_CONST;
 
?>
 
Le résultat de ce script est "MY_CONST" au lieu de "value".
 
Je n'arrive pas à trouver dans le php.ini l'option me permettant de régler le problème.
 
Quelques infos sur mon environnement :
 
Serveur OVH dédié
PHP Version 5.3.8
Linux 2.6.38.2-grsec-xxxx-grs-ipv6-64 #2 SMP Thu Aug 25 16:40:22 UTC 2011 x86_64
Apache 2.0 Handler
 
 
Merci pour votre aide !
 

mood
Publicité
Posté le 10-12-2011 à 13:52:03  profilanswer
 

n°2115949
CyberDenix
Posté le 10-12-2011 à 22:20:04  profilanswer
 


Toute constante non définie est évaluée comme une chaîne de caractères, et comme tu as mal défini MY_CONST, et que MY_CONST n'existe pas, celle-ci est évaluée en tant 'MY_CONST'.


Message édité par CyberDenix le 11-12-2011 à 18:39:57

---------------
Directeur Technique (CTO)
n°2115963
blackphant​om
Pfffff...
Posté le 10-12-2011 à 23:07:34  profilanswer
 

Oui ça j'avais compris mais le problème c'est que je reprends un site dans lequel je ne peux recoder toutes les pages (beaucoup trop nombreuses), donc il me faudrait savoir quel option dans le php.ini je dois activer pour que le code que j'ai mis ci-dessus fonctionne...


---------------
On joue tous à des Jeux Gratuits sur Jeux7.fr !!
n°2116007
blackphant​om
Pfffff...
Posté le 11-12-2011 à 14:11:56  profilanswer
 

UP


---------------
On joue tous à des Jeux Gratuits sur Jeux7.fr !!
n°2116025
blackphant​om
Pfffff...
Posté le 11-12-2011 à 17:32:05  profilanswer
 

up


---------------
On joue tous à des Jeux Gratuits sur Jeux7.fr !!
n°2116033
Mara's dad
Yes I can !
Posté le 11-12-2011 à 20:00:55  profilanswer
 

Y'a aucune raison que ça ne marche pas.
 
T'est sûr que tes simple quotes ' en sont bien, pas des ` par exemple...


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°2116036
blackphant​om
Pfffff...
Posté le 11-12-2011 à 20:36:09  profilanswer
 

Ce sont bien des simples quote car sur un serveur (l'ancien que l'on ne va pas garder) ça marche mais sur le nouveau non...
 
Il doit surement y avoir une option dans le php.ini à activer pour permettre leurs utilisations.


---------------
On joue tous à des Jeux Gratuits sur Jeux7.fr !!
n°2116296
Scarf3ss3
Posté le 12-12-2011 à 17:37:08  profilanswer
 

Tu fais fausse route.
define('MY_CONST', 'value');
Il n'y a pas d'autres écritures possibles pour définir une constante...
Donc ça n'est pas une histoire de quote.

n°2116297
Mara's dad
Yes I can !
Posté le 12-12-2011 à 17:39:29  profilanswer
 

Scarf3ss3 a écrit :

Tu fais fausse route.
define('MY_CONST', 'value');
Il n'y a pas d'autres écritures possibles pour définir une constante...
Donc ça n'est pas une histoire de quote.


 
Non, on peut aussi faire :
define("MY_CONST", "value" );
Et apparement, cette écriture là passe chez lui, mais pas l'autre.
 
Celà dit, je ne comprend pas l'origine du PB !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°2116378
blackphant​om
Pfffff...
Posté le 13-12-2011 à 00:58:02  profilanswer
 

Erreur de ma part; à certains endroits, les constantes sont définies sans aucune quote, ni simples ni doubles, et cela passe quand même sur le serveur 1, mais pas sur le 2, et le problème vient de là;
 
J'ai 2 solutions :
 
_ soit modifier tous les fichiers (et il y en a un paquet)
_ soit trouver l'option de php.ini me permettant de définir des constantes sans quote (ce qui est moche, mais ça me permettra de gagner un peu de temps avant de revoir tout le code)
 
Si vous avez des idées :)


---------------
On joue tous à des Jeux Gratuits sur Jeux7.fr !!
mood
Publicité
Posté le 13-12-2011 à 00:58:02  profilanswer
 

n°2116379
Mara's dad
Yes I can !
Posté le 13-12-2011 à 01:28:04  profilanswer
 

Une bonne grosse expression régulière !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°2116380
Pc_eXPert
Posté le 13-12-2011 à 01:37:12  profilanswer
 

_ soit modifier tous les fichiers (et il y en a un paquet)  
 
find . -name "*.php" -print | xargs sed -i 's/define\(\'(.*)\',\s*(.*)\)/define("\1", "\2" )/g'
 
Je l'ai fait au vol, non testé, mais c'est dans l'idée.

n°2116381
Mara's dad
Yes I can !
Posté le 13-12-2011 à 01:47:00  profilanswer
 

Et
 
find . -name "*.php" -print | xargs sed -i 's/define\((.*),\s*(.*)\)/define("\1", "\2" )/g'  
 
Pour les définitions de constantes sans quotes genre :
define(MY_CONST, 'value');


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°2116530
blackphant​om
Pfffff...
Posté le 13-12-2011 à 17:54:02  profilanswer
 

Bonjour à tous !
 
Pas mal de fichiers n'étaient pas utilisés donc en faisant le ménage, j'ai pu les modifier à la main.
 
Merci encore à tous, et en particulier à Mara's dad et Pc_eXPert, je garde vos idées si un jour j'ai vraiment besoin d'un traitement massif !
 
;)


---------------
On joue tous à des Jeux Gratuits sur Jeux7.fr !!

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Problème de définition d'une constante avec des simple quote

 

Sujets relatifs
[VBA Excel] Problème vlookup ne rappatriant que des zéros (RESOLU !)Problème de décalage horaire avec un Calendar
VBA Exel problème copie feuilleProblème-écriture-image-GIF
Problème-écriture-image-GIFBluegriffon - probleme de code
probleme importation .CSV vers MySQLprobleme 3D opengl
Gros problème en Visual Basic...Problème image d'un header qui se décale sous IE
Plus de sujets relatifs à : Problème de définition d'une constante avec des simple quote


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR