Déterminer un id avec les sessions

biloutte33 Messages postés 140 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 18 décembre 2010 - 15 sept. 2006 à 15:15
jediNoobiewan Messages postés 67 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 20 octobre 2010 - 19 sept. 2006 à 17:46
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

cs_tweeder Messages postés 172 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 19 juin 2009
15 sept. 2006 à 15:53
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
0
biloutte33 Messages postés 140 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 18 décembre 2010
15 sept. 2006 à 17:02
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)
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
15 sept. 2006 à 22:38
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.
0
biloutte33 Messages postés 140 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 18 décembre 2010
15 sept. 2006 à 23:16
donc en gros, il faudrait que je fasse quoi?
0

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

Posez votre question
jediNoobiewan Messages postés 67 Date d'inscription mardi 25 janvier 2005 Statut Membre Dernière intervention 20 octobre 2010
19 sept. 2006 à 17:46
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 =)
0
Rejoignez-nous