Passage de pHP3 à PHP4

Fermé
dugenou Messages postés 6087 Date d'inscription mercredi 19 janvier 2005 Statut Contributeur Dernière intervention 30 juillet 2021 - 28 mars 2005 à 17:58
dugenou Messages postés 6087 Date d'inscription mercredi 19 janvier 2005 Statut Contributeur Dernière intervention 30 juillet 2021 - 28 mars 2005 à 18:23
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 :

<?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.

2 réponses

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
28 mars 2005 à 18:12
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 ....
0
dugenou Messages postés 6087 Date d'inscription mercredi 19 janvier 2005 Statut Contributeur Dernière intervention 30 juillet 2021 1 451
28 mars 2005 à 18:23
Bonjour,

Je te remercie, j'avais déjà lu le troisième lien concernant les variables pré-définies, mais je ne connaissais pas les deux premiers liens sur la migration, c'est en effet très rassurant pour moi.

Merci encore pour ces informations.
0