récupération de l'id de la session

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : récupération de l'id de la session

par Boro64 » 13 mai 2008, 21:01

:P 4mn!
Encore merci à toi pour m'avoir aiguillé!
Et encore merci à tous et toutes!
...et effectivement, IL FAUT FAIRE UN EMPTY! :wink:
Je clos le post
Bonne soirée tout le monde!

par katagoto » 12 mai 2008, 19:53

Moi je le fait tout le temps :roll:

PS : Je savais pas qu'on pouvait donné autant de plaisir en 2m :roll:

par Boro64 » 12 mai 2008, 19:05

Aaaaaaaaaaaaaaaahhhhhhhhh ouiiiiiiiiiiiiiiiiiiiiiiiiiiii! Merci katagoto! Effectivement!
Pour le empty, je ne sais pas, car je vérifies déjà mon form avant enregistrement, et tous ces camps doivent être impérativement remplis sinon, pas d'enregistrement. Serait ce quand même nécessaire?

par katagoto » 12 mai 2008, 19:01

Voilà déjà ça le fait plus mais je ferais ça plutôt :

if (!isset($_SESSION['identification']) || !isset($_SESSION['prenom']) || !isset($_SESSION['nom']) || !isset($_SESSION['email'])) {  
Comme ça si il manque une valuer il y aura erreur, avec ton code nous attendons un manque de toute les variables...

PS : je testerais également s'il sont plein avec !empty()

++

par Boro64 » 12 mai 2008, 18:48

Merci dunbar; moi aussi et c'est pourquoi j'ai déjà corrigé ce petit détail; mais l'essentiel ne venait pas de là.
En l'état de mes (maigres) connaissances et recherches ici ou là, il semblerait que si je définissais pour commencer des $_SESSION avec nom, prenom, etc (tout ce que je souhaite récupérer par la suite, en fait), et un simple echo des variables $prenom et $nom...j(obtienne ici au moins ce que j'attends...et n'est ce pas plus simple?
Ce qui donnerai pour la session_start:
<?php
 session_start();  
 if (!isset($_SESSION['identification']) && !isset($_SESSION['prenom']) && !isset($_SESSION['nom']) && !isset($_SESSION['email'])) { 
    header ('Location: ../index.php'); 
    exit();  
 }
?>
Dans mon fichier enregistrement du client la fin de celui-ci devenant:
  $sql = "INSERT INTO suivi_cde (id, date, nom, prenom, adresse, email) VALUES ('', NOW(), '$nom', '$prenom', '$adresse', '$email')";
//si un problème lors de l'insertion dans la bdd on le signale  
  mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
  //récupération de l'id client
  $id = mysql_insert_id();
    
    mysql_close();
    session_start();
    $_SESSION['identification'] = $id;
    $_SESSION['prenom'] = $prenom;
    $_SESSION['nom'] = $nom;
    $_SESSION['email'] = $email;
    $_SESSION['adresse'] = $adresse;
    header('Location: choix_cde.php');
    exit();
...et apparemment ça marche bien!
Par contre, ce qui m'intéresserait de savoir, c'est si j'ai adopté là, la bonne solution, ou est-ce un pis aller? Vos commentaires sont les bienvenues! :wink:
Note aux admins: Puis je attendre 24h avant de noter ce post comme résolu en attendant d'autres avis???D'avance merci

par dunbar » 12 mai 2008, 18:25

Moi je trouve la remarque de SpintroniK trés pertinente

par Boro64 » 12 mai 2008, 15:14

Merci tout de même Katagoto...mais je suis preneur de tous conseils. Puis je te demander comment tu t'y serais pris?

par katagoto » 12 mai 2008, 15:10

Bah, moi je ne m'y serait pas pris comme ça pour faire le système, j'aurais du mal a te mettre sur la voix :roll:

par Boro64 » 12 mai 2008, 15:05

:oops: Le drame du copier/coller...non, simplement oublié de modifier après un essai, au cas ou...Merci de l'avoir vu SpintroniK
Katagoto: Simple oubli de ma part, mais il est y est bien, en début de page et avant tout html; le voici quand même:
<?php
 session_start();  
 if (!isset($_SESSION['identification'])) { 
    header ('Location: ../index.php'); 
    exit();  
 }
?>
Hum, je ne comprend pas pourquoi tu n'utilise pas $_SESSION['id_utilisateur'], par exemple
Heu, là c'est moi qui ne comprends pas: que veux tu dire exactement? Tu pourrais me donner un exemple, stp?
Merci à vous deux

par katagoto » 12 mai 2008, 15:01

Hum, je ne comprend pas pourquoi tu n'utilise pas $_SESSION['id_utilisateur'], par exemple

Je ne vois pas session_start(): au fait

par SpintroniK » 12 mai 2008, 14:59

Salut,

ya un truc qui me choque quand même :
$id = $_SESSION
alors que juste avant tu as fait ceci :
    $_SESSION['identification'] = $id; 
...

récupération de l'id de la session

par Boro64 » 12 mai 2008, 14:06

Bonjour
A toutes et tous
Je ne sais si je post dans le bon forum, si ce n'est pas le cas, que les admins m'excusent et replace ce sujet où il devrait... :oops:
Bon, voici mon problème:
Après enregistrement de l'identité du client via un formulaire, il est dirigé vers la page où il pourra commander.
Jusque là ça marche; je récupère l'id client dans la session, ou bien le visiteur est redirigé vers la page d'accueil faute d'id.
Mais ensuite, à partir de l'id je souhaite récupérer/afficher ses nom prénom, puis un peu plus loin l'adresse postale ou mail pour envoyer la commande. Et c'est là que ça se corse:
A l'affichage d'accueil il y a bien mon "Bonjour"...mais ni son nom ni son prénom!
Mais voici les codes en questions:
Le code d'enregistrement du client (code fonctionnel donc):
<?php
//Recuperation des champs
if(isset($_POST['nom'])) $nom=$_POST['nom'];
else $nom="";
if(isset($_POST['prenom'])) $prenom=$_POST['prenom'];
else $prenom="";
if(isset($_POST['adresse'])) $adresse=$_POST['adresse'];
else $adresse="";
if(isset($_POST['email'])) $email=$_POST['email'];
else $email="";

//connexion à la base
  $liendb = mysql_connect('blabla', 'chuuuttt', 'secret!');
  mysql_select_db ('chuuuttt',$liendb);
  $sql = "INSERT INTO suivi_cde (id, date, nom, prenom, adresse, email) VALUES ('', NOW(), '$nom', '$prenom', '$adresse', '$email')";
//si un problème lors de l'insertion dans la bdd on le signale  
  mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
  //récupération de l'id client
  $id = mysql_insert_id();
    
    mysql_close();
    session_start();
    $_SESSION['identification'] = $id;
    header('Location: choix_cde.php');
    exit();
?>
et maintenant le code qui me pose problème:
<?php
//connection à la base
 include ('bases/connexion.inc.php');
 $id = $_SESSION;
 $sql = "SELECT prenom, nom FROM suivi_cde WHERE id = '$id'";
 $resultat = mysql_query ($sql);
 while ($civilite = mysql_fetch_array($resultat));
 {
 $id = $civilite['$_SESSION'];
 $prenom = $civilite['prenom'];
 $nom = $civilite['nom'];
 echo "Bonjour $prenom $nom";
} 
 mysql_close($base);
?>
Ce dernier code (include dans la page) fonctionne jusqu'à "Bonjour"...après rien!???
J'ai testé juste avec le N° client, ça fonctionne (:shock: :shock: :shock: :shock: ), je ne comprends plus rien. Je suis certain d'avoir la cause/solution sous les yeux...mais je ne vois plus rien... :oops: :oops:
Si quelqu'un passant par là (alors qu'on serait mieux à la plage :P ) pouvait me donner un conseil, avis, coup de main, pour m'aider à comprendre et à solutionner le pb, je suis preneur :lol:
D'avance, merci