Comprendre les session php

Fermé
Profil bloqué - 30 oct. 2009 à 20:43
 Profil bloqué - 30 oct. 2009 à 22:09
Bonjour,
J'ai cherché sur le site du zero ou encore sur phpdebutant mais je n'ai pas trouvé ce que je voulais.
Alors voilà, je m'explique :

Je voudrais faire des session sur monsite, pour que par exemple il y est des autorisation ou pas d'allez sur des pages du sites, que certain membre puisse voir une page et pas d'autre.
Ensuite j'aimerai qu'il y ai un pseudo pour chaque utilisateur, pour mettre les commentaire sous les photo.
Donc en gros moi ce que je pense c'est qu'il faut stocké des variable dans un fichier texte qui contiendrai une information par ligne avec par exemple en 1ere ligne le pseudo, en deuxieme ligne le password en 3eme ligne un code d'autorisation, etc

Dite moi si je me trompe parceque c'est que de supposition. en me lançant dans les session je part dans l'inconnu.

7 réponses

lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
30 oct. 2009 à 21:09
l'ideal avec les session et pour faire simple, tu stock les infos qui te sont utile dans une base de donnée:
login,password crypté et evidement l'id du visiteur pour connaitre son statut , (admin avec tout les droits, visiteur avec auccun droits, utilisateur avec certains droits, ces infos peuvent etre stockées dans une autre table ) que tu reliera avec l'id

ensuite sur cahque page php au tout début
tu met simplemnt ça
session_start();
tu recupere la valeur de ta session et tu compare avec ta bd et en fonction de ça tu permet ou pas d'acceder a des pages ou des portions de pages.

la solution du fichier texte à l'inconvénient d'etre moins sécurisée, ensuite tu a la solution du fichier .htacess

en esperant t'avoir eclairé un peu
0
Profil bloqué
30 oct. 2009 à 21:15
justement, le .htacess c'est quoi ? j'avis pensé faire avec ça mais j'ai pas compris.
sinon c'est vrai que avec la BDD ça parait simple je vais le tenté.

Engros je met

session_start(); au début du code

ensuite je test si l'utilisateur existe et ensuite je met les variable de la BDD lui correspondant dans les variable super global $_SESSION[]; qui marche comme un tableau si j'ai bien compris.
0
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
30 oct. 2009 à 21:31
le .htaccess est un fichier généré (en général car tu peut aussi faire un script pour le faire) par l'utilitaire d'apache qui se trouve dans le repertoire bin d'apache
il permet de restreindre l'acces à certains repertoire ou fichier de ton site, mais si tu veut afficher certains boutons (par exemple) dans ta page en fonctions de l'utilisateur qui la parcours, la il te faut passer (je dirais obligatoirement) par les session.

un petit exemple rapide

if(isset($_SESSION['visiteur']))
{
$visiteur=$_SESSION['visiteur'];
}
elseif(isset($_SESSION['admin']))
{
$admin=$_SESSION['admin'];
}
else
{
//aucun enregistremebnt ne correspond ou on est arrivé directement sur la page sans s'identifier
$visiteur=null;
$admin=null;
}


ce petit bout de code permet de savoir si une session visiteur ,admin ou inconnue est en cours.

Comment on l'obtient cette session ..? simplement avec le formulaire d'identification ou tu rentre ton login et ton MDP
tu verifie que les 2 existe dans ta BD si oui tu verifie les droits du type et ensuite tu lance une session. dans tes pages après tu peut faire un truc du genre

if(isset($admin))
{
echo'<input type="button" value="acceder au panneau d'administration" />';
}


ce qui revient a affciher un bouton d'acces au panneau d'administration que si c'est quelqu'un qui a les droits suffisants pour y acceder.

Evidemment pour des raisons de sécurité ce code ne peut pas etre appliqué directement, mais cela pour te montrer le principe des sessions
0
Profil bloqué
30 oct. 2009 à 21:36
OK merci beaucoup !
regarde j'ai mis un autre post sur le forum ( j'aurai du y posté ici mais j'y est pas pensé sur le coup sorry)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lewis34 Messages postés 2557 Date d'inscription samedi 21 juillet 2007 Statut Membre Dernière intervention 30 mai 2015 352
30 oct. 2009 à 21:44
de rien ;-)
0
Profil bloqué
30 oct. 2009 à 22:04
j'ai un probleme maintenant ^^

voila je suis sous easy php 3.0 pour simulé mon code php , et pour me connecter a ma BD je tape :

mysql_connect(localhost,root,mysql) or die("erreur de connexion au serveur");


Mais le navigateur m'affiche 2 :

Notice: Use of undefined constant localhost - assumed 'localhost' in C:\Users\bougnolv\Desktop\Programmation\Site WEB\FCSI\php_verif.php on line 64

Notice: Use of undefined constant root - assumed 'root' in C:\Users\bougnolv\Desktop\Programmation\Site WEB\FCSI\php_verif.php on line 64

Notice: Use of undefined constant mysql - assumed 'mysql' in C:\Users\bougnolv\Desktop\Programmation\Site WEB\FCSI\php_verif.php on line 64

Notice: Undefined variable: session in C:\Users\bougnolv\Desktop\Programmation\Site WEB\FCSI\php_verif.php on line 65

la ligne 64 c'est mon mysql_connect.
0
Profil bloqué
30 oct. 2009 à 22:09
j'ai trouvé c'est bon ^^
0