Déterminer un id avec les sessions

Signaler
Messages postés
140
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
18 décembre 2010
-
Messages postés
67
Date d'inscription
mardi 25 janvier 2005
Statut
Membre
Dernière intervention
20 octobre 2010
-
bonjour,
j'ai un soucis avec mon espace membre : des qu'un membre s'enregistre, il a pour id de session le numéro 0 hors quand je vais dans ma base de données, le membre à un nombre généré en auto-incrément (0,1,2,3 etc...)
hors, lors de la connection, ça envoi toujours sur l'id numéro 0
comment faire pour récupéré avec la session le numéro d'id?

5 réponses

Messages postés
172
Date d'inscription
jeudi 30 janvier 2003
Statut
Membre
Dernière intervention
19 juin 2009

Salut,

Pourrais-tu mettre le code que tu utilises pour récupérer ton id ? On pourra alors vérifier si tu as une erreur.

Jonathan
Messages postés
140
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
18 décembre 2010

alors pour la page envoi.php :




<?php
//ici les parametres pour la connexion
   $host= "sql.free.fr"; $login="login";   $base="base";    $passe="pass";




//on effectue la connexion
       @mysql_connect("$host","$login","$passe");
 
//Selection de la base de données qui porte le meme nom que votre login


          [mailto:$select_base=@mysql_selectdb("$base $select_base=@mysql_selectdb("$base]");


 


//Si la connexion echoue
 
 if (!$select_base)




//Afficher la ligne suivante


    echo " Mauvaise configuration!!!
 
Vérifiez que votre login et mot de passe sont bien saisi pour la connexion
à la base $base";
 
$pseudo  = $_POST["pseudo"];
$prenom = $_POST["prenom"];
$motdepasse = $_POST["password"];
$email = $_POST["email"];
$ville = $_POST["ville"];
$aimes = $_POST["aimes"];
$aimespas = $_POST["aimespas"];
$devise = $_POST["devise"];
$requete="INSERT INTO membres (pseudo, prenom, password, email, ville, aimes, aimespas, devise) VALUES ('$pseudo', '$prenom', '$password', '$email', '$ville', '$aimes', '$aimespas', '$devise' )" ;
$result = mysql_query($requete);
$id = mysql_insert_id();
        echo "Félicitations. Vous êtes à présent Membre... ";


?>


 





pour la page login1.php :




<?php
// On démarre la session
session_start();
mysql_connect("sql.free.fr","login","pass");
  mysql_select_db("base");
  if(!mysql_connect) {echo "Connexion impossible à la base de données $sql_bdd sur le serveur $sql.free.fr
Vérifiez les paramètres";
exit;}
$requete =mysql_query("select pseudo,password from membres where pseudo="$pseudo" and password="$password"") or die(mysql_error());
// SI AUCUN ENREGISTREMENT NE CORRESPOND
if(mysql_num_rows($requete)==0)
 {
// REDIRECTION VERS LA PAGE ERREUR
header("Location:index.php");
 }
// SI LE LOGIN ET MOT DE PASSE SONT EXACTES 
else
 {
 $_SESSION['pseudo'] = $data['pseudo'];
  $_SESSION['age'] = $data['email'];
  $_SESSION['ville'] = $data['ville'];


 // CREATION D'UN IDENTIFIANT ALEATOIRE
 $id = mysql_insert_id() ;
// MISE A JOUR DE L'IDENTIFIANT DANS LA TABLE
 $requete=mysql_db_query($informaticman,"update membres set id="$id" where pseudo="$pseudo" and password="$password"") or die(mysql_error());
// REDIRECTION VERS UNE PAGE PROTEGEE AVEC L'IDENTIFIANT SERVANT DE CLE
 header("Location:fiche.php?id=$id");
 } 


// DECONNEXION MYSQL
mysql_close();
?>   


 




pour la page : fiche.php :

 
<?php
mysql_connect("sql.free.fr","informaticman","pioneer");
  mysql_select_db("informaticman");
echo $_SESSION['pseudo']
?>

voilà les 3pages (sans oublier que chacune possede la fonction <?php
       // On démarre la session
session_start();
?> en haut de chaque page (sauf envoi.php)

comment faire pour l'id de session? car mes variables de session ont l'air correct car j'ai demandé l'écho du pseudo en session sur la page fiche.php et il me le donne (sauf pour un  2ème membre qui s'inscrit, il ne récupere rien)
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
26
Hello,

mysql_insert_id() s'utilise après une requête INSERT. Cette fonction renvoie le dernier ID inséré en base. Or, dans ton code, je ne vois pas de requête insérant un utilisateur, en tous cas, pas là où tu le fais en le récupérant ensuite en session.
Messages postés
140
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
18 décembre 2010

donc en gros, il faudrait que je fasse quoi?
Messages postés
67
Date d'inscription
mardi 25 janvier 2005
Statut
Membre
Dernière intervention
20 octobre 2010

J'ai pas tout à fait compris ton prob mais si tu veux récupérer un
identifiant de SESSION php c'est session_id().... elle te renvoie l'id
de la session....et si tu lui donne un paramètre elle en fait le nouvel
id de la session.


Voilou =)