probleme de session
Hors ligneJdalton42 Le 14/07/2005 à 14:26 Profil de Jdalton42 Configuration de Jdalton42

salut,

je fais une connexion membre sur mon site, elle fonctionne, mais il y a un bug. quand on est connecter il affiche "bonjour pseudo" (a la place de pseudo il mes le pseudo du membre biensur), jusque la sa va, mais apres, quand on va sur une autre page ou qu'on actualise la page ou quoi, le pseudo change...
pour la connexion j'ai ce script:
<?php session_start(); if (isset($_POST['login'])){      $login = $_POST['login'];      $pass = md5($_POST['pass']);           $db = mysql_connect('localhost', 'xxx', 'xxx'); mysql_select_db('adovi', $db); $verif_query=sprintf("SELECT * FROM utilisateurs WHERE login='$login' AND pass='$pass'"); $verif = mysql_query($verif_query, $db) or die(mysql_error()); $row_verif = mysql_fetch_assoc($verif); $utilisateur = mysql_num_rows($verif);           if ($utilisateur) {          session_register("authentificationadovi");                      $_SESSION['email'] = $row_verif['email'];           $_SESSION['privilege'] = $row_verif['privilege'];           $_SESSION['login'] = $row_verif['login'];           $_SESSION['nom'] = $row_verif['nom'];           $_SESSION['msn'] = $row_verif['msn'];           $_SESSION['site'] = $row_verif['site'];           $_SESSION['signature'] = $row_verif['signature'];           $_SESSION['adresse'] = $row_verif['adresse'];           $_SESSION['password'] = $row_verif['password'];           header("Location:index.php"); }      else {           header("Location:index.php");      } } ?>

et pour afficher le pseudo je mes: <?php echo'bonjour '.$_SESSION['login'].' ?>

vous pourriez m'aider s'il vous plait? merci d'avance...
--
jdalton42
Hors ligneAnthony Le 14/07/2005 à 16:25 Profil de Anthony Configuration de Anthony

Admin
Salut,

il faut utiliser session_start(); sur toutes les pages avant d'utiliser les sessions. Ensuite n'utilise plus session_register car c'est déprécié. Pour ce qui est de ta requête précise le nom des champs au lieu de faire un SELECT *, ça sera moins gourmand, même si tu utilises tous les champs. N'oublie pas le mysql_close() après le mysql_query().

Ensuite mets plutôt ça :

if (mysql_num_rows($verif)!==0){

que ça :

$utilisateur = mysql_num_rows($verif);
    if ($utilisateur) {
--

Hors ligneJdalton42 Le 14/07/2005 à 17:06 Profil de Jdalton42 Configuration de Jdalton42

c'est bon j'ai su reglé le probleme...
--
jdalton42
Hors ligneGraal Le 17/07/2005 à 17:11 Profil de Graal Configuration de Graal

Salut,
je rajouterai que du côté du SQL, il est plus optimisé de lister les champs dans la requête, plutot que d'utiliser le signe Joker *, d'ailleurs tu trouveras qu'il y en a qurement qui ne sont pas utiles à selectionner pour l'utilisation de ton script.

edit > oups déja dit :-°
--
Vacances r0xx0r pas d'cours cay trop fort §
Hors ligneJdalton42 Le 17/07/2005 à 17:15 Profil de Jdalton42 Configuration de Jdalton42

graal: 1 sa a deja ete dit!

2 j'utilise tout mes champs mysql mais je selectionne quand meme en les deffinissant sur mon site, ici j'ai mi sa question secu aussi pour pas que tout le monde voi les champs que je selectionne...
--
jdalton42
Hors ligneAnthony Le 17/07/2005 à 19:24 Profil de Anthony Configuration de Anthony

Admin
jdalton42 a écrit :
ici j'ai mi sa question secu aussi pour pas que tout le monde voi les champs que je selectionne...


Heu... ouais si tu veux, enfin si tu n'as pas de faille je vois pas en quoi révéler les champs pourrait compromettre ton site
--

Hors ligneJdalton42 Le 17/07/2005 à 23:26 Profil de Jdalton42 Configuration de Jdalton42

le probleme est la...

je connais aucune faille, donc pas moyen d'essayer de les bloquer... donc au cas ou...
--
jdalton42
Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels