Passage de pHP3 à PHP4
dugenou
Messages postés
6087
Date d'inscription
Statut
Contributeur
Dernière intervention
-
dugenou Messages postés 6087 Date d'inscription Statut Contributeur Dernière intervention -
dugenou Messages postés 6087 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai posé par erreur cette question dans le forum divers, je la pose à nouveau dans le forum programmation en espèrant avoir plus de réponses.
Je propose sur mon site ( http://phortail.free.fr/ ) une version remaniée de Phortail, le CMS de Pierre Gentile, et je souhaiterais le recoder afin de le mettre aux nouvelles normes PHP4, voire PHP5.
J'ai compris que les variables globales sont abandonnées au profit des variables super globales.
En ce qui concerne le passage de variables à l'aide d'un formulaire, pas de problème, j'utiliserai la forme $_POST['variable'], mais en ce qui concerne d'autres variables, je n'ai pas bien compris où il y a du changement.
Par exemple, pour ce CMS, j'utilise un fichier config.php qui contient toutes les variables de configuration du site, les variables sont déclarées de la façon suivantes :
La façon de les déclarer est-elle la bonne ?
Dans le cas contraire, quelle est la bonne ?
Est-ce que la manière de faire comme il est fait actuellement est encore bonne ?
Voir l'exemple suivant :
Par ailleurs, je crois comprendre qu'il faut gérer autrement les quotes simples et les quotes double en PHP4, qu'en est-il ?
Est-ce que je peux laisser cohabiter les quotes simples et les quotes doubles comme en PHP3 ?
Est-ce que je peux encore utiliser les quotes doubles comme dans l'exemple précédent ?
Je sais que je pose de nombreuses questions, j'ai fait bien sûr des recherches sur ce forum et sur d'autres, j'ai consulté des livres et les manuels de php.net et d'autres sites, mais je n'ai pas trouvé la réponse précise à mes interrogations.
Je vous remercie par avance pour vos conseils.
J'ai posé par erreur cette question dans le forum divers, je la pose à nouveau dans le forum programmation en espèrant avoir plus de réponses.
Je propose sur mon site ( http://phortail.free.fr/ ) une version remaniée de Phortail, le CMS de Pierre Gentile, et je souhaiterais le recoder afin de le mettre aux nouvelles normes PHP4, voire PHP5.
J'ai compris que les variables globales sont abandonnées au profit des variables super globales.
En ce qui concerne le passage de variables à l'aide d'un formulaire, pas de problème, j'utiliserai la forme $_POST['variable'], mais en ce qui concerne d'autres variables, je n'ai pas bien compris où il y a du changement.
Par exemple, pour ce CMS, j'utilise un fichier config.php qui contient toutes les variables de configuration du site, les variables sont déclarées de la façon suivantes :
<?php $site[0] = "Phortail, le mini CMS sans base de données"; // Titre du site etc... ?>
La façon de les déclarer est-elle la bonne ?
Dans le cas contraire, quelle est la bonne ?
Est-ce que la manière de faire comme il est fait actuellement est encore bonne ?
Voir l'exemple suivant :
<?php include("config.php"); include("fonctions.php"); include("include/hpage.txt"); // Création de l'index des liens $fichier = file("include/liens.txt"); $data = array(); for ($i = 0; $i < count($fichier); $i++) { $fichier[$i] = trim($fichier[$i]); $data[$i] = explode("|", $fichier[$i]); $data[$i][2] = $i;} sort($data); ?> <?php htable($nom[3], "100%"); ?> <p>Si le site contacté n'existe plus, contactez le webmaster pour signaler le lien incorrect.</p> <?php for ($i = 0; $i < count($data); $i++) { echo "<p><b><a href=\"".$data[$i][1]."\" target=\"_blank\">".$data[$i][0]."</a></b> (".$data[$i][1].")</p>\n";} ?> <?php btable(); ?> <?php include("include/bpage.txt"); ?>
Par ailleurs, je crois comprendre qu'il faut gérer autrement les quotes simples et les quotes double en PHP4, qu'en est-il ?
Est-ce que je peux laisser cohabiter les quotes simples et les quotes doubles comme en PHP3 ?
Est-ce que je peux encore utiliser les quotes doubles comme dans l'exemple précédent ?
Je sais que je pose de nombreuses questions, j'ai fait bien sûr des recherches sur ce forum et sur d'autres, j'ai consulté des livres et les manuels de php.net et d'autres sites, mais je n'ai pas trouvé la réponse précise à mes interrogations.
Je vous remercie par avance pour vos conseils.
A voir également:
- Passage de pHP3 à PHP4
- Passage qwerty azerty - Guide
- Passage à windows 11 gratuit - Guide
- Passage windows 7 à 10 - Accueil - Mise à jour
- Test passage windows 11 - Guide
- Choisir passage sonnerie samsung - Guide
2 réponses
Salut,
A vue de nez, je ne pense pas qu'il y ait de problème.
Les quotes simples et doubles jouent le même rôle. La différence c'est qu'une variable ne sera pas interpétée dans des quotes simples.
ex:
$a=1;
echo '$a'; // Affichera $a
echo "$a"; // Affichera 1
En fait il ya une bonne nouvelle pour toi :-)
http://fr.php.net/manual/fr/faq.migration4.php
Une autre:
http://fr.php.net/manual/fr/faq.migration5.php
Si tu veux utiliser un script bien compatible, utilise les variables superglobales:
$_SERVER, $_POST,$_GET,$_SESSION etc...
http://fr.php.net/manual/fr/language.variables.predefined.php
Les variables globales n'ont pas été abandonnées, tout dépend de la configuration du php.ini du serveur.
Si register_global est à ON alors on peut utiliser les variables globales mais ça te fera un script moins compatibles (puisque les variables superglobales sont compatibles partout et pas l'inverse) et plus vulnérable aux attaques...
Il me semble que easyphp a changé cette option par défaut dans ses dernières versions et a mis register_global à off, ça peut désorienter les habitués ....
A vue de nez, je ne pense pas qu'il y ait de problème.
Les quotes simples et doubles jouent le même rôle. La différence c'est qu'une variable ne sera pas interpétée dans des quotes simples.
ex:
$a=1;
echo '$a'; // Affichera $a
echo "$a"; // Affichera 1
En fait il ya une bonne nouvelle pour toi :-)
http://fr.php.net/manual/fr/faq.migration4.php
Une autre:
http://fr.php.net/manual/fr/faq.migration5.php
Si tu veux utiliser un script bien compatible, utilise les variables superglobales:
$_SERVER, $_POST,$_GET,$_SESSION etc...
http://fr.php.net/manual/fr/language.variables.predefined.php
Les variables globales n'ont pas été abandonnées, tout dépend de la configuration du php.ini du serveur.
Si register_global est à ON alors on peut utiliser les variables globales mais ça te fera un script moins compatibles (puisque les variables superglobales sont compatibles partout et pas l'inverse) et plus vulnérable aux attaques...
Il me semble que easyphp a changé cette option par défaut dans ses dernières versions et a mis register_global à off, ça peut désorienter les habitués ....