Require_once qui merde ?

30 réponses
AuteurMessage

krucial |
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 05/09/2012 à 13:16

Yop

Je suis en train de migrer un serveur.

Sur le nouveau, en PHP5.3 (l'ancien etait en PHP5.2), j'ai un truc vraiment super bizarre.


<?
require_once("require.php"); // J'inclus le fichier de require qui me permet entre autre de generer $root_path
echo "Ok require.php ".$root_path."guide.lib.php<br />"; // Ca ecrit bien le bon chemin /chemin/vers/guide.lib.php
require_once($root_path."guide.lib.php"); // Je tente d'inclure
?>


Et bien, si a la ligne 3, je laisse "require_once", le fichier guide.lib.php ne s'inclut pas. Si je mets "require" tout court, tout fonctionne.

En fait, PHP semble croire que le fichier guide.lib.php est deja inclu, ce qui n'est pas le cas.

Une solution à ce probleme ?

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 05/09/2012 à 13:18

Si je passe le premier require_once en require, ca marche aussi. Bizarre non ?

Je precise que si j'arrive pas a faire fonctionne le bout de code ci dessus, je dois me taper la modif de pas mal de pages, sans compter les possibles bugs que je ne verrai pas (aucune erreur dans les logs ...)

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

zehub | BENAICHA
Membre

Photo de zehub

Inscrit le : 21/12/2005

# Le 05/09/2012 à 13:28

Puisqu'on est dans les bizarreries, tu enlève la 2ème ligne (echo...) ça marche ?

DivertissementOuvrir dans une nouvelle fenetre , VoyagesOuvrir dans une nouvelle fenetre , VoituresOuvrir dans une nouvelle fenetre , CuisineOuvrir dans une nouvelle fenetre

Maximus32 | Gael
Modérateur

Photo de Maximus32

Inscrit le : 13/05/2009

# Le 05/09/2012 à 13:38

T'as essayé avec dirname(__FILE__) devant ?

Ex :
require_once dirname(__FILE__).'/../guide.lib.php';

dirname(__FILE__) te donne le chemin absolu du fichier dans lequel il est utilisé.


Data-Solutions.comOuvrir dans une nouvelle fenetre

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 05/09/2012 à 14:47

Le probleme, c'est que je vais devoir modifier toutes mes pages si ca fonctionne ...

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 05/09/2012 à 15:02

Merci bool qui a sauvé ma vie en pv :

apc.include_once_override=0

Et voila.

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

devtribu | Olivier
Modérateur

Photo de devtribu

Inscrit le : 16/06/2005

# Le 05/09/2012 à 15:12

Il est vraiment fort ce bool !

moi c'est le passage en 5.4 qui me fait flipper
mais faudra bien le faire un jour...

Février 2019, mon futur livre Tout JavaScript chez Dunod https://amzn.to/2PoLd0fOuvrir dans une nouvelle fenetre

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 05/09/2012 à 15:24

Pourquoi tu flippes ?

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

devtribu | Olivier
Modérateur

Photo de devtribu

Inscrit le : 16/06/2005

# Le 05/09/2012 à 15:31

la 5.4 désactive completement le magic_quote
une tannée quand on a du code qui date de 10 ans, époque de php3 ou le magic-quote était imposé

Février 2019, mon futur livre Tout JavaScript chez Dunod https://amzn.to/2PoLd0fOuvrir dans une nouvelle fenetre

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 05/09/2012 à 15:35

Clair, c'est n'importe quoi. Impossibilité de reactiver les magic_quotes ?

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

devtribu | Olivier
Modérateur

Photo de devtribu

Inscrit le : 16/06/2005

# Le 05/09/2012 à 15:45

dans la 5.4, l'option du .ini du magic-quote est vraiment inactive, apres avoir été deprecated pendant un moment

il y a des rustines plus ou moins tordues d'include automatique d'un .php qui traite a l'avance les _request pour ajouter manuellement les slashes

au final, au lieu de gagner en sécurité, c'est encore plus bancal

et php ne propose pas d'outil de diagnostic pour résoudre ce sac de noeud qu'ils ont eux meme créés

Février 2019, mon futur livre Tout JavaScript chez Dunod https://amzn.to/2PoLd0fOuvrir dans une nouvelle fenetre

PyRoFlo | Florent
Modérateur

Photo de PyRoFlo

Inscrit le : 09/05/2005

# Le 05/09/2012 à 15:54

Ouais enfin PHP4 est sorti en 2000 hein, 12 ans pour migrer un bout de code ça doit être faisable

Feu d'artifice ParisOuvrir dans une nouvelle fenetre

devtribu | Olivier
Modérateur

Photo de devtribu

Inscrit le : 16/06/2005

# Le 05/09/2012 à 16:01

je prefere passer du temps à faire mon business plutot qu'a corriger des erreurs de conception d'autres gus infiniment plus intelligents que moi à qui j'ai fait confiance.

je me pencherai sur la question le moment venu
Mais c'est pas un bout de code... C'est 10 ans de dev cumulé sur un site web.
Rien a voir avec une commande qui représente quelques jours de boulot.

Février 2019, mon futur livre Tout JavaScript chez Dunod https://amzn.to/2PoLd0fOuvrir dans une nouvelle fenetre

PyRoFlo | Florent
Modérateur

Photo de PyRoFlo

Inscrit le : 09/05/2005

# Le 05/09/2012 à 16:41

Les magic quotes sont dépréciées depuis PHP5 (2004) soit 8 ans. On avait très largement le temps de prévoir le coup soit en revoyant le code, soit en injectant une rustine (type un fichier inclus via la directive auto_prepend_file qui simule le comportement des magic quotes).

C'est sûr ça rapporte rien et ça ne fait pas partie du business, tout comme quand un commerçant refait un coup de peinture dans son local pour rafraichir un peu les murs.

Pour l'anecdote la dernière version de PHP3 est plus vieille que la première version d'IE6

Là où je suis d'accord c'est que ce type de fonctionnalités n'auraient pas du voir le jour.

Feu d'artifice ParisOuvrir dans une nouvelle fenetre

devtribu | Olivier
Modérateur

Photo de devtribu

Inscrit le : 16/06/2005

# Le 05/09/2012 à 16:54

je suis d'accord avec toi... D'ailleurs je me questionne depuis des années sur le sujet, sans trouver de solution acceptable.
L'exemple de ton commercant est pas terrible. Ca se rapproche plus d'une vidange sur le kangoo de livraison qui n'a absolument aucun impact sur ses clients. Mais qui immobilise le véhicule pendant l'intervention.

Mais franchement si c'est pour faire un autoinclude qui addslashe tous les données utilisateur, c'est moisi et probablement bien moins sûr que le magic_quote interne éprouvé.
Et comme c'est ce que font plus de la moitié des gestionnaires de sites (d'apres mes recherches sur la question), je trouve que c'est idiot d'imposer cette décision.
Sans compter qu'on n'est pas a l'abri non plus d'un deprecated sur auto_prepend_file

(Pour l'anecdote, IE6 représente encore pres de 2% de mes visites)

Février 2019, mon futur livre Tout JavaScript chez Dunod https://amzn.to/2PoLd0fOuvrir dans une nouvelle fenetre

PyRoFlo | Florent
Modérateur

Photo de PyRoFlo

Inscrit le : 09/05/2005

# Le 05/09/2012 à 17:13

Je voulais juste dire que même si nos activités sont "virtuelles", elles demandent aussi de l'entretien, de la veille etc comme le demande une activité physique. Dans ce cadre, la transition vers une nouvelle version se fait plus facilement. Par contre passer de PHP3 à PHP5.4 c'est sûr ça va piquer et demander un certain temps pour tout valider.

Utiliser auto_prepend_file juste pour ça c'est crado mais après tout, je ne pense pas que ça soit si sensible que ça d'implémenter son propre magic quotes.

Concernant IE6, c'est bien pour cela que j'ai fait le parallèle : il existe encore une certaine proportion d'utilisateurs sous IE6 (surtout des PC d'entreprise) et nous sommes les premiers à râler de le voir encore et toujours (CSS et compagnie), nous obligeant à le supporter pour encore quelques années.

Feu d'artifice ParisOuvrir dans une nouvelle fenetre

devtribu | Olivier
Modérateur

Photo de devtribu

Inscrit le : 16/06/2005

# Le 05/09/2012 à 17:16

Je suis en 5.3 depuis un moment
Mais la 5.4 ne m'attire pas beaucoup. Si c'est juste un magicquote perso, ca sera pas bien grave.
Mais j'aurai vraiment aimé un outil de migration proposé par php

Je suis d'accord : il faut aussi passer du temps sur ce qui ne se voit pas. Mais c'est moins motivant que de faire du front office ou de signer des contrats...

Février 2019, mon futur livre Tout JavaScript chez Dunod https://amzn.to/2PoLd0fOuvrir dans une nouvelle fenetre

dbonin | David
Membre

Photo de dbonin

Inscrit le : 06/07/2006

# Le 05/09/2012 à 17:23

C'est aussi se confronter à une réalité : rien est éternel.

Évolution WebOuvrir dans une nouvelle fenetre | RedirectionOuvrir dans une nouvelle fenetre | PageRankOuvrir dans une nouvelle fenetre

PyRoFlo | Florent
Modérateur

Photo de PyRoFlo

Inscrit le : 09/05/2005

# Le 05/09/2012 à 17:25

C'est vrai qu'un outil bien fait serait plus pratique que checker le changelog, au moins pour détecter les problèmes.

Perso la 5.4 ne m'attire pas non plus, si ce n'est que je me réjouis de l'abandon définitif des magic quotes, safe_mode et register_globals. Pour les nouvelles fonctionnalités, ça reste assez pointu mais ça va dans le bon sens.

Feu d'artifice ParisOuvrir dans une nouvelle fenetre

devtribu | Olivier
Modérateur

Photo de devtribu

Inscrit le : 16/06/2005

# Le 05/09/2012 à 17:25

EWR > Oui, ca a l'air de te tracasser cette question. Mais tu ouvres des topics philosphiques et tu ne les alimentes pas par la suite... C'est frustrant

Février 2019, mon futur livre Tout JavaScript chez Dunod https://amzn.to/2PoLd0fOuvrir dans une nouvelle fenetre

Répondre

Vous ne pouvez pas participer au forum, car votre inscription n'a pas été validée. Pour vous faire valider en tant que Membre, cliquez ici.

© MHN - Tous droits réservés | CNIL N°844440 | 23/11/2024 15:26:16 | Généré en 4.67ms | Contacts | Mentions légales |