JeuWeb - Crée ton jeu par navigateur
$_SESSION['username'] et $_SESSION['password'] - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : $_SESSION['username'] et $_SESSION['password'] (/showthread.php?tid=3744)

Pages : 1 2


RE: $_SESSION['username'] et $_SESSION['password'] - Ruz - 02-03-2009

bah, y a un id unique par joueur/membre, etc... (numérique, parait que ca va mieux (pas envie de relancer le débat sur ce point))
Stocke uniquement cet ID en session ^^ ($_SESSION["ID_user"] au hasard)

pourquoi prendre plus? (le pseudo, à la limite... ca évite une requête juste pour ca ^^)


RE: $_SESSION['username'] et $_SESSION['password'] - cacaroule - 02-03-2009

Ok je vais essayer, merci


RE: $_SESSION['username'] et $_SESSION['password'] - Argorate - 03-03-2009

Effectivement suffit d'avoir l'id unique de ton client, et comme ça tu sais de qui tu parles a tout moment, et tu peux ainsi te servir du $_SESSION['id_user'] dans toutes tes requetes (enfin, si c'est utile).


RE: $_SESSION['username'] et $_SESSION['password'] - Sylvain - 06-03-2009

Je suis d'accord avec les remarques faites ci-dessus. J'ajoute 3 observations:

- il est conseillé de faire des fonctions pour se connecter et exécuter les requêtes avec gestion d'erreur de manière à ne pas récrire la même chose de nombreuses fois dans un développement.

A titre de suggestion :
/**
* Etablit une connexion avec le serveur MySQL
* Un message est affiché en cas d'erreur
*
* @param constante $serveur
* @param constante $base
* @param constante $utilisateur
* @param constante $mot_de_passe
*
* @return int Identifiant de connexion
*
*/
function connexion($serveur, $base, $utilisateur, $mot_de_passe)
{
$c = mysql_connect($serveur, $utilisateur, $mot_de_passe);
if (!$c) {
echo "Probleme de connexion avec le serveur\n";
exit;
}
if (!mysql_select_db ($base, $c)) {
echo "Acces a la base impossible\n";
echo "Message de Mysql : " . mysql_error($c);
exit;
}
return($c);
}
/**
* Execute une requete SQL et renvoie un identifiant de resultat
*
* Un message est affiché en cas d'erreur
*
* @param string $requete Requete SQL a executer
* @param int $connexion Identifiant de connection
*
* @return int identifiant de résultat
*
*/
function exerequete($requete, $connexion)
{
$resultat = @mysql_query($requete, $connexion);
if ($resultat) {
return $resultat;
} else {
echo "probleme d'exécution de la requete <BR>";
echo "Message d'erreur de la base : " . mysql_error($connexion);
}
}

A compléter en fonction du projet.

2. Il est conseillé de crypter les mots de passe dans la base pour des raisons de sécurité. Si quelqu'un parvient à lire la base il ne peut se faire passer pour un utilisateur. Si on utilise sha1, on compare le sha1 calculé du mot de passe saisi au sha1 enregistré du mot de passe. C'est parce que beaucoup sites utilisent cette méthode qu'ils ne peuvent renvoyer un mot de passe perdu mais seulement proposer un nouveau mot de passe...

3. C'est une bonne idée de mettre en session l'identifiant unique de l'utilisateur et cet identifiant seulement (jamais le mot de passe). Dans certains cas, si l'on a besoin d'informations sur l'utilisateur sur plusieurs pages. Il peut être judicieux de mettre en session un tableau contenant toutes ces informations afin d'éviter de nombreuses requêtes. Pour ma part, j'utilise plutôt un objet mais bon...

Amicalement,

Sylvain.


RE: $_SESSION['username'] et $_SESSION['password'] - cacaroule - 07-03-2009

Merci de cette réponse tres structurée je m'en servirai surement et je vous tient au courant.