Cours / sessions / demande éclaircissement

Répondre
Dark Elf
le 22/06/2004 à 12:16
Dark Elf
Bonjour à toute la communauté, je suis nouveau ici !
J'aurais aimé avoir plus d'informations au début de votre cours sur les sessions lorsque vous dites (je cite) : "// On définit un login et un mot de passe de base pour tester notre exemple. Cependant, vous pouvez très bien interroger votre base de données afin de savoir si le visiteur qui se connecte est bien membre de votre site"
Pourrais-je avoir un exemple ?

Autre chose...lorsque vous dites (je cite toujours) :
" n'oubliez JAMAIS de détruire vos variables de session lors de la déconnexion."

Que se passerait-il si un visiteur ferme la fenêtre du site sans faire "deconnection" ? ce qui se passera forcément de tps en tps...

Sinon, à part ces détails, un grand BRAVO à toute l'équipe de lephpfacile pour ce site !
HELLSPLAYERS FOREVER
rosema
le 22/06/2004 à 12:41
rosema
regarde le cours sur les bases de données je pense que ça t'aidera pour ta première question
c 'est incroyable ce que je peux écrire comme conneries
Dark Elf
le 22/06/2004 à 13:55
Dark Elf
Je l'ai déjà lu...
J'aurais juste voulu avoir un exemple concret...
HELLSPLAYERS FOREVER
Dark Elf
le 22/06/2004 à 14:02
Dark Elf
Et je ne vois pas quelle partie du cours sur les bases de donnée peut m'aider d'ailleurs...
HELLSPLAYERS FOREVER
moogli
le 22/06/2004 à 14:19
moogli
Slt,
dans le désordre :
a partir du moment ou le visiteur germe sont explorateur les variables de session sont détruitent mais le logout et mieux :)

pour l'exemple
1/ tu recupere tes variables mdp et pseudo depuis le formulaire
2/ tu fait une requete sql pour "voir si le pseudo est dans la base et si c'est le cas si le mot de passe est Ok
3/ si tout est bon tu lance ta session sinon erreur

=>
1/ je suppose que tu a le formulaire et que tu passe les valeur avec post
donc tu as 2 variables $_POST['mdp'] pour le mot de passe et $_POST['pseudo'] pour ....
2/
<?php
$sql='SELECT pseudo,mdp FROM membre';
$req=mysql_query($sql) or die('erreur sql'.mysql_error());
while ($data=mysql_fetch_array($req))
{
if ($data['pseudo']==$_POST['peudo'] && $data['mdp']==$_POST['mdp'])
{
//debut de la sesssion ....
//redirection vers l'espace membre
exit();
}
}
?>

Voila avec cela tu devrait pouvoir faire ce que tu veut mais il faut que tu adapte les noms de variable avec ta table et le nom des des input du form smiley
Il en faut peu pour être heureux !!!!!
LA GLOBULE
le 22/06/2004 à 14:56
LA GLOBULE
Les variables de sessions ne sont pas détruites quand tu fermes ton navigateur ! smiley

Le browser n'envoie pas d'evenement au serveur lors de sa fermeture.

Pour le truc avec la table SQL, j'aurais fais un :

<?php
$sql='SELECT id FROM membre WHERE login="'.$_POST['pseudo'].'" AND pass="'.$POST['pass'].'"';
$req=mysql_query($sql) or die('erreur sql'.mysql_error());
$nb = mysql_num_rows ($req);
if ($nb == 1)
{
//debut de la sesssion ....
//redirection vers l'espace membre
exit();
}
?>


Mais par contre, il ne faut jamais laisser des mots de passes non cryptés dans une base de données.
Le mieux, c'est de les hachés avec la fonction md5.

Pour ce faire, tu stockes la valeur des md5 de tous les mots de passes de tous les comptes dans la table, et quand le gars saisi son pass (pour se loguer), tu recuperes ce qu'as saisi le mec et tu passes un md5 dessus, et tu recherches ce resultat dans la table.
Dark Elf
le 22/06/2004 à 15:17
Dark Elf
Et bien merci beaucoup les amis ! Je vais étudier tout cela...
En voilà une communauté dynamique ! Je pense que vous allez malheureusement me voir revenir souvent ;)
HELLSPLAYERS FOREVER
Dark Elf
le 22/06/2004 à 16:10
Dark Elf
D'ailleurs me revoilà déjà... smiley
Je voudrais mettre sur le site les membres qui sont connectés actuellement...je veux dire le pseudo des membres, ainsi que le nombre de membres connectés...une petite aide ?

En attendant voilà où en est mon code :

<?

// on teste si nos variables sont définies
if (isset($_POST['login']) && isset($_POST['pwd'])) {

// On définit un login et un mot de passe de base pour tester notre exemple. Cependant, vous pouvez très bien interroger votre base de données afin de savoir si le visiteur qui se connecte est bien membre de votre site
include ('config.php') ;
mysql_connect($host,$user,$pass) or die('sql_error');
mysql_select_db($base);
$sql='SELECT id FROM membre WHERE pseudo="'.$_POST['login'].'" AND pass="'.$_POST['pwd'].'"';
$req=mysql_query($sql) or die('erreur sql'.mysql_error());
$nb = mysql_num_rows ($req);
if ($nb == 1) //cela veut dire que les informations sont exactes
{
// dans ce cas, tout est ok, on peut démarrer notre session

// on la démarre :)
session_start ();
// on enregistre les paramètres de notre visiteur comme variables de session ($login et $pwd) (notez bien que l'on utilise pas le $ pour enregistrer ces variables)
$_SESSION['login'] = $_POST['login'];
$_SESSION['pwd'] = $_POST['pwd'];

// on redirige notre visiteur vers une page de notre section membre
echo 'Bienvenue '.$_SESSION['login'].'.<br>';
echo '<a href="./logout.php">Deconnection</a>';
}
else {
// Le visiteur n'a pas été reconnu comme étant membre de notre site. On utilise alors un petit javascript lui signalant ce fait
echo '<body onLoad="alert(\'Membre non reconnu...\')">';
// puis on le redirige vers la page d'accueil
echo '<meta http-equiv="refresh" content="0;URL=index.php">';
}
}
else {
include('connection.php') ;
echo '<a href=inscription.php class="menulink">inscrivez vous</a>';
}
?>

Tout marche comme je le souhaitais ^^
HELLSPLAYERS FOREVER
LA GLOBULE
le 22/06/2004 à 16:17
LA GLOBULE
Dans les comment faire y a un truc pour afficher le nombre de visiteurs en ligne, et accesoirement le nom des visiteurs :)
Répondre
LoadingChargement en cours