Si vous êtes client chez l'hébergeur 1and1, vous avez probablement reçu un email vous prévenant du passage obligatoire des serveurs à PHP 5.4 le 1er avril 2013. Ce n'est pas une blague mais bel et bien l'initiative de 1and1 de mettre à jour ses serveurs sur la dernière version de PHP. Si vous avez souhaité anticiper cette mise à jour, vous avez peut-être basculé vous-même votre hébergement sur PHP 5.4. Et là, c'est le drame : requêtes truffées d'erreur, affichage incomplet, bref site en vrac. Pas de panique : voici comment procéder.
1/ Préférez le fichier .htaccess
Si vous avez plusieurs sites sur le même hébergement, ne passez pas tout d'un coup sur la dernière version de PHP. Allez-y site par site, en installant un fichier nommé .htaccess à la racine du site. Puis collez dans le fichier les lignes suivantes :
2/ Modifiez vos paramètres de configuration à la base
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 AddType x-mapp-php6 .php AddHandler x-mapp-php6 .php
Le mode de connexion à la base de données MySQL est un peu différent.
Voici les informations qui doivent figurer sur votre fichier de configuration, pour permettre de se connecter à la base (entre deux balises php bien sûr) :
3/ Modifiez toutes vos requêtes MySQL
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $serveur='nom du serveur'; $user='nom d'utilisateur'; $password='mot de passe de connexion'; $database='nom de la base'; $connexion = mysqli_connect("$serveur", "$user", "$password", "$database");
Le principal changement avec cette version de PHP (surtout si vous en étiez encore à la version 4), c'est la modifications des fonctions, avec le simple ajout d'une petite lettre : i.
C'est ainsi que vos fonctions de type mysql_xxx deviennent mysqli_xxx.
Autre modification, cette fois sur la requête principale (que ce soit avec select, update ou autre) : vous devez ajouter la variable de connexion dans la requête. Celle-ci prendra donc cette forme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Exemple : $data = mysql_fetch_assoc($requete) devient $data = mysqli_fetch_assoc($requete)
Utilisez la fonction Rechercher/Remplacer de votre éditeur de code pour modifier tous vos fichiers rapidement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $requete = mysqli_query($connexion, "SELECT * FROM matable");
4/ Attention à bien récupérer vos variables
Si malgré tout cela, votre contenu ne s'affiche pas, vérifiez que vos variables passées dans l'URL sont bien récupérées avec $_GET.
Par exemple, si vous récupériez de façon peu rigoureuse l'identifiant de la page avec un simple $id, vous devrez préciser avant cela :
5/ Mettez à jour votre base MySQL
Code : Sélectionner tout - Visualiser dans une fenêtre à part $id = $_GET['id'];
Les bases de données enregistrées sous MySQL4 ne fonctionneront plus. Il vous faut dupliquer votre base et l'enregistrer sous MySQL5.
Et voilà, il ne vous reste plus qu'à tout mettre à jour par FTP et à vérifier que votre site fonctionne parfaitement. Votre passage à PHP 5.4 s'est déroulé sans accroc.
Sources
le site de 1&1 : http://faq.1and1.fr/scripts/php/13.html
Partager