Bonsoir,
Quelqu'un peut-il m'expliquer pourquoi lorsqu'on met register-globals à On, les classes ne fonctionnent pas correctement et ne peuvent pas conserver leurs variables ?
Bonsoir,
Quelqu'un peut-il m'expliquer pourquoi lorsqu'on met register-globals à On, les classes ne fonctionnent pas correctement et ne peuvent pas conserver leurs variables ?
Parce qu'il doit y avoir des collisions avec les noms de variables automatiquement générés par register_globals.
Les collisions de noms et les failles de sécurité qui en découlent sont les principales raisons qui font que register_globals doit toujours être désactivé.
Une petite recherche dans le FAQ t'aurait donné ceci : Pourquoi mon application ne fonctionne plus sans erreur avec EasyPhp 1.7 ?
J'ai déjà lu ça mais ça ne m'aide pas. Dans mon code, je n'arrive pas à savoir quelles variables posent problème.
Après de nouveaux tests, il apparaît que le problème ne vient pas de register_globals.
Ok, alors sans code ça va devenir ultra-durEnvoyé par Neuromancien2
![]()
Le code complet est ici.Envoyé par Eusebius
On ne va pas relire TOUT ton code. Il faut que tu puisses cerner un minimum le problème avant de poster...Envoyé par Neuromancien2
Apparemment tes problèmes c'est suite à une migration. Est-ce que les deux serveurs ont la même version de PHP ?
Le système se compose d'une classe formGenerator qui gère les formulaires et de classes textField et passwordField qui gèrent les champs.Envoyé par Eusebius
La classe formGenerator contient une méthode validate() qui vérifie les données envoyées en appelant les méthodes validate() de chaque champ. Elle affiche ensuite le formulaire via la méthode generateHTML(), qui appelle les méthodes generateHTML() de chaque champ.
Dans la classe textField, la méthode validate() récupère les valeurs postées, vérifie la validité des données et affecte à nouveau la valeur postée aux champs (via la méthode setValue()) pour un nouvel affichage en cas d'erreur. Si les données ne sont pas valides, la variable $hasErrors prend la valeur 1. La méthode generateHTML() du champ affiche un message d'erreur.
Le script principal définit le formulaire et les champs puis traite le formulaire :
L'achive contient un exemple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 if ( $form1->validate() ) { $form1->process(); } else { echo $form1->generateHTML();
J'ai fait echo $hasErrors, qui m'affiche 1 juste après la validation, puis 0 lors de l'affichage du formulaire. Le formulaire ne renvoit aucune valeur.
Comme je ne comprends pas du tout ce qui se passe, je ne peux pas cerner davantage le problème.
Le script fonctionne chez moi avec PHP5, mais pas chez mon hébergeur avec PHP4.
Tu aurais pu commencer par ça ! Le modèle objet de PHP5 n'est pas du tout le même que celui de PHP4 ! Tu utilises sans doute des tas de choses qui ne sont pas disponibles en PHP4. A mon avis, faut pas chercher plus loin...Envoyé par Neuromancien2
J'ai renommé tous les fichiers en .php5 et tout fonctionne. Quelles sont les fonctionnalités POO non supportées sous PHP4 ? J'aimerais rendre mes scripts compatibles si c'est possible.
Alors ça c'est rigolo !Envoyé par Neuromancien2
http://stephaneey.developpez.com/tut...p5_nouveautes/Envoyé par Neuromancien2
OVH n'utilise pas PHP5 par défaut. Il faut renommer les fichier en .php5 sinon c'est PHP4 qui sera utilisé.Envoyé par Eusebius
C'est noté. Faudra que je me fasse une conf comme ça chez moi...Envoyé par Neuromancien2
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager