Determiner un id de session

biloutte33 Messages postés 140 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 18 décembre 2010 - 7 mars 2006 à 17:43
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 - 8 mars 2006 à 12:20
bonjour voici mon code pour ma le login d'un membre:
<?php mysql_connect("sql.free.fr","nom d'utilisateur","mot de passe");
mysql_select_db("informaticman");
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
{
// CREATION D'UN IDENTIFIANT ALEATOIRE
$taille = 20;
$lettres = "[mailto:abcdefghijklmnopqrstuvwxyz0123456789éè@' abcdefghijklmnopqrstuvwxyz0123456789éè@' ]{([-|`)]}";
srand(time());
for ($i =0;$i<$taille;$i++)
{
$id.=substr($lettres,(rand()%(strlen($lettres))),1);
}
// 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();
?>

cependant je ne souhaite pas créer un identifiant aléatoire (car il changera tout le temps) mais j'aimerais attribué un identifiant unique pour chaque membre (exemple quand il se connecte ce soit : fiche.php?id=1)
comment faire? (mais que chaque membre du site ait un id différents)

11 réponses

thomvaill Messages postés 366 Date d'inscription mercredi 7 avril 2004 Statut Membre Dernière intervention 20 février 2007 2
7 mars 2006 à 20:00
Mets un champs autoincrement dans ta table MySQL...

Thomvaill
IRC : Thomas (irc.heliosnet.org:6667 #programmation)
0
biloutte33 Messages postés 140 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 18 décembre 2010
7 mars 2006 à 20:10
le champs id en autoincrément?
ou un aute champs?
et au niveau du code je fait comment une fois que le champs est mis en autoincrément?
0
thomvaill Messages postés 366 Date d'inscription mercredi 7 avril 2004 Statut Membre Dernière intervention 20 février 2007 2
7 mars 2006 à 20:36
Oui le champs ID. Comme ça à chaque fois que tu ajoutes un utilisateur, il se verra attribuer une ID.

Pour la récupèrer, utilises mysql_insert_id(); juste après que tu es ajouté l'utilisateur.



(http://fr.php.net/manual/fr/function.mysql-insert-id.php)

Thomvaill
IRC : Thomas (irc.heliosnet.org:6667 #programmation)
0
biloutte33 Messages postés 140 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 18 décembre 2010
7 mars 2006 à 20:46
c est à dire juste apres avoir enregistrer l'utilisateur?
a quel endroit? sur envoi.php?
(code de envoi.php:)
<?php



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



//on effectue la connexion
@mysql_connect("$host","$login","$passe");

//Selection de la base de données qui porte le meme nom que votre login


$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);
echo "Félicitations. Vous êtes à présent Membre... ";


?>

voilà a quel endroit j'y insere?
et comment je fait dans mon code pour spécifier l'id de l'enregistrement? car je connais pas la fonction
merci d'avance
0

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

Posez votre question
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
7 mars 2006 à 22:28
"c est à dire juste apres avoir enregistrer l'utilisateur?" Mais y'en a qui savent lire serieux ????

Pour la récupèrer, utilises mysql_insert_id(); juste après que tu es ajouté l'utilisateur.
0
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
7 mars 2006 à 23:05
FhX, failli faire une crise d'épilepsie devant ton msg... :D

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
7 mars 2006 à 23:21
Mes excuses :)

C'est pas ma faute, les gens savent plus lire quand c'est marqué en noir... alors je change =)
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
8 mars 2006 à 08:05
Lol...quand FhX voit rouge, tout le monde doit voir rouge aussi ;-)
0
biloutte33 Messages postés 140 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 18 décembre 2010
8 mars 2006 à 08:19
"tu es ajouté l'utilisateur"

je vois pas ce que tu veux dire car ce n'est pas moi qui ajoute les utilisateurs
c'est une page d'inscription que les membres remplissent qui ajoute a mysql les valeurs.
donc dans la page de login a quel endroit je dois rajouter la fonction?
juste apres $result = mysql_query($requete);
echo "Félicitations. Vous êtes à présent Membre... ";
?
et pour récupéré l'id je garde cette fonction: // CREATION D'UN IDENTIFIANT ALEATOIRE
$taille = 20;
$lettres = "[mailto:abcdefghijklmnopqrstuvwxyz0123456789éè@ abcdefghijklmnopqrstuvwxyz0123456789éè@' ]{([-|`)]}";
srand(time());
for ($i =0;$i<$taille;$i++)
{
$id.=substr($lettres,(rand()%(strlen($lettres))),1);
}

?
dsl du dérengement cosé
0
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
8 mars 2006 à 11:50
"je vois pas ce que tu veux dire car ce n'est pas moi qui ajoute les utilisateurs"
Ah bon, et c'est qui... le Pape ???

C'est bien toi qui décide en codant quand tu ajoutes un utilisateur dans ta base de donnée quand même !!!

Une fois que tu as fait ta query avec INSERT, tu utilises la fonction mysql_insert_id() pour récupérer l'ID du membre que tu viens juste d'inscrire !

Ex :
$query = mysql_query("INSERT INTO ....");
mysql_query($query);
$id = mysql_insert_id();

Et voila !
0
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
8 mars 2006 à 12:20
Dites, vous voulez pas rester dans les polices normales? :)

Qq remarques en vitesse:
- On utilise pas "$base" mais $base
- srand est inutile
- $id.=substr($lettres,(rand()%(strlen($lettres))),1);
C'est très barbare, :D
tu calcules le strlen de $lettre à chaque itération alors qu'il change pas
Je ferais: $id .= $lettres[ rand( 0, 48) ];

Et j'enlèverais le ' de la liste des caractères, juste pour éviter les soucis

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
Rejoignez-nous