Page 1 sur 1

adapter fichier PHP pour PHP 5.6

Posté : 24 janv. 2016, 17:15
par kornfr
Bonjour,

j'ai un script PHP que l'on m'avait donné il y a quelques années.
Maintenant, OVH va me changer ma version de PHP. Malheureusement mon script ne fonctionne plus (les fonctions utilisés sont dépassés)

Ca me permettait d'afficher le nom de visiteur connecté sur le site.

Code : Tout sélectionner

<? /* paramêtres * et se connecter à la base de données */ $hote="mon_server"; $login="mon_login"; $mdp="monmotdepasse"; $bd="ma_base"; $connexion= mysql_connect($hote,$login,$mdp); mysql_select_db($bd, $connexion); // rÈcupËre le nom complet (précédé du chemin) du fichier de la page en cours d'exÈcution $page=$PHP_SELF; $ip = $_SERVER['REMOTE_ADDR']; $time = time(); $timetoexpire=240; $ttl = $time - $timetoexpire; //supression ancienne entree de plus de $timetoexpire=240 et ip; $req_supp ='DELETE FROM dc_connected WHERE time <' .(integer) $ttl. ' OR ip ="'.mysql_escape_string($ip).'"'; mysql_query($req_supp,$connexion) or die(mysql_error()); //ajout entrée $req_ins="INSERT INTO dc_connected (ip,time,current_page) VALUES ('$ip','$time','$page')"; mysql_query($req_ins,$connexion); //affichage $rq = "SELECT * FROM dc_connected"; $result = mysql_query($rq,$connexion) or die(mysql_error()); $detail = mysql_fetch_assoc($result); $nb_enreg = mysql_num_rows($result); if ($nb_enreg <= 1) { echo $nb_enreg." personne connectée <br />"; } else { echo $nb_enreg." personnes connectées <br />"; } ?>
Pour la connexion j'ai rempalcé par ceci

Code : Tout sélectionner

$mysqli = mysqli_init(); if (!$mysqli) { die('mysqli_init failed'); } if (!$mysqli->options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) { die('Setting MYSQLI_INIT_COMMAND failed'); } if (!$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) { die('Setting MYSQLI_OPT_CONNECT_TIMEOUT failed'); } if (!$mysqli->real_connect($hote, $login, $mdp, $bd)) { die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); } $mysqli->select_db($bd); // rÈcupËre le nom complet (précédé du chemin) du fichier de la page en cours d'exÈcution $page=$PHP_SELF; $ip = $_SERVER['REMOTE_ADDR']; $time = time(); $timetoexpire=240; $ttl = $time - $timetoexpire; //supression ancienne entree de plus de $timetoexpire=240 et ip; $req_supp ='DELETE FROM dc_connected WHERE time <' .(integer) $ttl. ' OR ip ="'.mysql_escape_string($ip).'"'; mysql_query($req_supp,$connexion) or die(mysql_error());
En revanche, cela se complique pour le remplacement de la fonction Mysql_escape_string par real_escape_string (si j'ai bien compris)

aurait il un âme charitable qui pourrait me donner un coup de main ?
Merci

Re: adapter fichier PHP pour PHP 5.6

Posté : 24 janv. 2016, 19:24
par or 1
mysql_escape_string($ip)
->
mysqli_real_escape_string($mysqli, $ip)

Re: adapter fichier PHP pour PHP 5.6

Posté : 25 janv. 2016, 14:49
par Patriboom
Tu dois aussi remplacer tous tes <? par des <?php

Re: adapter fichier PHP pour PHP 5.6

Posté : 26 janv. 2016, 22:36
par kornfr
Bonjour,

Merci,
Voila j'ai corrigé et ca fonctionne.

En revanche, le code doit être très "cochon"...

Code : Tout sélectionner

<? /* paramêtres * et se connecter à la base de données */ $hote="serveur"; $login="utilisateur"; $mdp="mot-de-passe"; $bd="basededonnee"; $mysqli = mysqli_init(); if (!$mysqli) { die('mysqli_init failed'); } if (!$mysqli->options(MYSQLI_INIT_COMMAND, 'SET AUTOCOMMIT = 0')) { die('Setting MYSQLI_INIT_COMMAND failed'); } if (!$mysqli->options(MYSQLI_OPT_CONNECT_TIMEOUT, 5)) { die('Setting MYSQLI_OPT_CONNECT_TIMEOUT failed'); } if (!$mysqli->real_connect($hote, $login, $mdp, $bd)) { die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); } //$mysqli->close(); $mysqli->select_db($bd); //mysql_select_db($bd, $connexion); // rÈcupËre le nom complet (précédé du chemin) du fichier de la page en cours d'exÈcution $page=$PHP_SELF; $ip = $_SERVER['REMOTE_ADDR']; $time = time(); $timetoexpire=240; $ttl = $time - $timetoexpire; //supression ancienne entree de plus de $timetoexpire=240 et ip; $req_supp ='DELETE FROM dc_connected WHERE time <' .(integer) $ttl. ' OR ip ="'.mysqli_real_escape_string($mysqli, $ip).'"'; $mysqli->query($req_supp) or die(mysql_error()); //ajout entrèe $req_ins="INSERT INTO dc_connected (ip,time,current_page) VALUES ('$ip','$time','$page')"; $mysqli->query($req_ins); //affichage $rq = "SELECT * FROM dc_connected"; $result = $mysqli->query($rq) or die(mysql_error()); $detail = mysqli_fetch_assoc($result); $nb_enreg = mysqli_num_rows($result); if ($nb_enreg <= 1) { echo $nb_enreg." personne connectée <br />"; } else { echo $nb_enreg." personnes connectées <br />"; } ?>
Si vous avez des conseils pour le nettoyer

Re: adapter fichier PHP pour PHP 5.6

Posté : 26 janv. 2016, 22:54
par Patriboom
Bravo, ça fonctionne!

Il ne te reste qu'à
1) Indiquer le sujet comme « Résolu »
2) changer le <? par des <?php

Re: adapter fichier PHP pour PHP 5.6

Posté : 27 janv. 2016, 20:49
par kornfr
Bonjour,

je ne peux pas mettre résolu
j'ai crée le post avant de créer mon compte
(kornfr Invité n'ayant pas de compte PHPfrance)

Re: [RESOLU] adapter fichier PHP pour PHP 5.6

Posté : 28 janv. 2016, 00:19
par @rthur
J'ai mis résolu (et t'ai réattribué la paternité du 1er post ;) ), bienvenue sur PHPfrance !