JeuWeb - Crée ton jeu par navigateur
sessions dans la base de donnée ? - 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 : sessions dans la base de donnée ? (/showthread.php?tid=5145)



sessions dans la base de donnée ? - php_addict - 04-09-2010

bonjour

je me pose la question si je dois ou pas mettre mes identifiants de sessions en base de donnée. Le soucis c'est que je n'en vois pas l'interet.

voici ce que j'ai l'habitude de faire:

Code PHP :
<?php 
//______________________________
// On demarre la session |
//______________________________|
ini_set('session.use_trans_sid', '0');
ini_set('session.use_cookies', '1');
ini_set('session.use_only_cookies', '1');
ini_set('url_rewriter.tags','');
session_start();
if (isset(
$_SESSION['connecte']) && !empty($_SESSION['connecte']) && $_SESSION['connecte']===19178196123992568741)
{
}
else
{
// redirection puis:
exit();
}

étant donné que l'id de sessions n'est pas dans mes url et que l'on initialise $_SESSION['connecte']===19178196123992568741 à la connexion du joueur, quels sont les risques? y en a t il d'ailleurs?

comment gérrez vous vos sessions? base de donnée ou pas ou autre?

merci de vos avis

bon week end


RE: sessions dans la base de donnée ? - srm - 04-09-2010

Les sessions en base de données on les utilises par exemple lorsque notre site est hébergé sur plusieurs serveurs qui sont en loadbalancing.
Sinon pas d'intérêt.


RE: sessions dans la base de donnée ? - My Hotel - 04-09-2010

Salut!

Deux ou trois remarques/questions :
-il me semble que isset et !empty, c'est redondant. Un simple !empty suffit, si la variable n'existe pas ça ne passera pas.
-ensuite, quand tu dis que tu initialise $_SESSION['connecte']===19178196123992568741 (d'ailleurs, c'est un seul égal pour l'initialisation), c'est un exemple, ou tu fais vraiment ça? Parce que je vois pas vraiment ce qu'on y gagne par rapport à un booléen. D'ailleurs, si tu stockes le pseudo en session, tu peux simplement vérifier l'existence de la session pseudo, et te passer de 'connecte'.
J'ai l'impression que tu prends ça comme une mesure de sécurité en pensant qu'un pirate ne trouvera jamais ce nombre. C'est bien ça?

Bye


RE: sessions dans la base de donnée ? - php_addict - 04-09-2010

(04-09-2010, 11:29 AM)My Hotel a écrit : -il me semble que isset et !empty, c'est redondant. Un simple !empty suffit, si la variable n'existe pas ça ne passera pas.

ah oui, effectivement...je ne sais pas pourquoi je fais ca...

(04-09-2010, 11:29 AM)My Hotel a écrit : $_SESSION['connecte']===19178196123992568741 (d'ailleurs, c'est un seul égal pour l'initialisation)

oui, je me suis trompé dans mon exemple, j'edit le post

(04-09-2010, 11:29 AM)My Hotel a écrit : D'ailleurs, si tu stockes le pseudo en session, tu peux simplement vérifier l'existence de la session pseudo, et te passer de 'connecte'.

ok, je vais mettre un ===TRUE

Citation :J'ai l'impression que tu prends ça comme une mesure de sécurité en pensant qu'un pirate ne trouvera jamais ce nombre. C'est bien ça?

oui, mais je viens de m'apercevoir que c'est donc ridicule ...


RE: sessions dans la base de donnée ? - Th3kid - 04-09-2010

(04-09-2010, 11:29 AM)My Hotel a écrit : -il me semble que isset et !empty, c'est redondant. Un simple !empty suffit, si la variable n'existe pas ça ne passera pas.
Ça dépend des hébergeurs ... sur le mien si je test juste le !empty il me dit que la variable n'existe pas et donc qu'il ne peut savoir si elle est vide ou non ... débil oui je sais mais c'est comme ca. Donc obligé de mettre les deux sur certains serveur.


RE: sessions dans la base de donnée ? - php_addict - 04-09-2010

(04-09-2010, 06:32 PM)Th3kid a écrit :
(04-09-2010, 11:29 AM)My Hotel a écrit : -il me semble que isset et !empty, c'est redondant. Un simple !empty suffit, si la variable n'existe pas ça ne passera pas.
Ça dépend des hébergeurs ... sur le mien si je test juste le !empty il me dit que la variable n'existe pas et donc qu'il ne peut savoir si elle est vide ou non ... débil oui je sais mais c'est comme ca. Donc obligé de mettre les deux sur certains serveur.

ah oui exact, je me rapelle, c'est pour cela que j'avais rajouté ceci...en passant mon script sur un mutu


RE: sessions dans la base de donnée ? - Anthor - 05-09-2010

(04-09-2010, 06:32 PM)Th3kid a écrit :
(04-09-2010, 11:29 AM)My Hotel a écrit : -il me semble que isset et !empty, c'est redondant. Un simple !empty suffit, si la variable n'existe pas ça ne passera pas.
Ça dépend des hébergeurs ... sur le mien si je test juste le !empty il me dit que la variable n'existe pas et donc qu'il ne peut savoir si elle est vide ou non ... débil oui je sais mais c'est comme ca. Donc obligé de mettre les deux sur certains serveur.

Non ce n'est pas du tout la même chose... Et ça ne dépend pas des hébergeurs, mais simplement du niveau d'erreur que ton script affiche.


<?php
$var = 0;

// Evalué à vrai car $var est vide
if (empty($var)) {
echo '$var vaut soit 0, vide, ou pas définie du tout';
}

// Evalué à vrai car $var est défini
if (isset($var)) {
echo '$var est définie même si elle est vide';
}
?>