Ma méthode est-elle correcte ?

WRInaute impliqué
je suis en train de développer une petite application web qui a besoin de se connecter à une base de donnée sur un serveur externe (autre que localhost) afin de récupérer des résultats. J'utilise la méthode ci-dessous, mais j'aimerai avoir votre avis afin de savoir si il y a une autre manière de faire, plus simple, plus propre...

Etape 1 : on clique sur l'url de la ville qui nous intéresse ( url du type : site.com/?id_server=1&zipcode=34000)

Etape 2 : on va récupérer les résultats qui correspondent à cette ville sur une base de donnée situé sur un autre serveur puis on les affiches.

PHP:
// On va chercher les infos de connexion serveur SI on ne l'a pas déjà fait.
if(!isset($_SESSION['ip_server']))* {
 
 
// On récupère les infos de connexion
$sql = "SELECT ip, port, dbname, login, password FROM servers WHERE id = :id_server LIMIT 1";
 
$requete_server = $bdd-> prepare($sql);
$requete_server->bindValue(':id_server', intval($_GET['id_server']), PDO::PARAM_INT);
$requete_server->execute();
 
$result = $requete_server->fetch();
$requete_server->closeCursor();
 
 
// Enregistrement des données connexion dans des variables SESSION pour une réutilisation future
 
$_SESSION['ip_server'] = $result['ip'];
$_SESSION['port_server'] = $result['port'];
$_SESSION['dbname'] = $result['dbname'];
$_SESSION['login'] = $result['login'];
$_SESSION['password'] = $result['password'];
}
 
 
// On se connecte au serveur distant
$bdd_server = new PDO('mysql:host='.$_SESSION['ip_server'].';port='.$_SESSION['port_server'].';dbname='.$_SESSION['dbname'].'', ''.$_SESSION['login'].'', ''.$_SESSION['password'].'', array(PDO::ATTR_PERSISTENT => true, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
 
 
// On récupère les résultats
SELECT name, titre ...
 
 
// On affiche les résultats
foreach ($list as $results) {
...
}

Ce qui me gène ce sont l'utilisation de $_SESSION que je ne trouve pas propre et un peu bricolé afin d'éviter la requête qui récupère les infos de connexion au serveur. Je précise que ces infos de connexion me servent également sur d'autres pages. Un fichier JSON est-il préférable pour stocker les infos de connexion ou une autre méthode vous semble t'elle plus judicieuse ?

Merci pour vos conseils.
 
WRInaute passionné
Moi ça me semble normal, un JSON ne sera pas mieux voire même plus risqué niveau sécurité.

A la limite si l'extension Memcached est disponible, vous pouvez l'utiliser pour garder les infos en mémoire au lieu de les stocker en session, mais c'est pour une micro-optimisation de performance...
 
Discussions similaires
Haut