IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Récupérer les autres variables de la tab lors du démarrage d'une session


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 36
    Points : 8
    Points
    8
    Par défaut Récupérer les autres variables de la tab lors du démarrage d'une session
    Bonjour

    Voici mon petit problème. Lorsque que je me connecte avec un utilisateur tout se passe bien la SESSION démarre bien. Mais j'aimerai pourvoir récupérer le nom de l'utilisateur, son prenom, etc... J'ai donc penser à utiliser le data

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php
    // on teste si le visiteur a soumis le formulaire de connexion
    if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
        if ((isset($_POST['pseudo']) && !empty($_POST['pseudo'])) && (isset($_POST['password']) && !empty($_POST['password']))) {
            $base = mysql_connect('localhost', '*****', '*****');
            mysql_select_db('test', $base);
            // on teste si une entrée de la base contient ce couple pseudo / mdp
            $sql = 'SELECT count(*) FROM users WHERE pseudo="' . mysql_real_escape_string($_POST['pseudo']) . '" AND password="' . mysql_real_escape_string($_POST['password']) . '"';
            $req = mysql_query($sql) or die('Erreur SQL !<br />' . $sql . '<br />' . mysql_error());
            $data = mysql_fetch_array($req);
            mysql_free_result($req);
            mysql_close();
            // si on obtient une réponse, alors l'utilisateur est un membre
            if ($data[0] == 1) {
                session_start();
                $_SESSION['pseudo'] = $_POST['pseudo'];
                $_SESSION['id'] = $data['id'];
                $_SESSION['nom'] = $data['nom'];
                $_SESSION['prenom'] = $data['prenom'];
                header('location: redirection.php');
                exit();
    et ensuite une fois la session lancer j'aimerai qu'il m'affiche ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    session_start();
    if (!isset($_SESSION['pseudo'])) {
    	header ('Location: ../includes/index.php');
    	exit();
    }
    ?>
    <div id="connexion">
    <form action="../includes/deconnexion.php" method="post">
    Vous êtes connecté sur la session <? echo $_SESSION['pseudo']?>
    Nom: <? echo $_SESSION['nom']?>
    Prénom: <? echo $_SESSION['prenom']?>
    mais ça ne marche pas, j'aimerai que l'on m'explique mon erreur car j'ai regardé sur un site qui expliquait comment récupérer des données avec le $data justement et la j'ai juste le pseudo qui s'affiche. En gros j'aimerai savoir récupérer des variables d'un utilisateur dans sa tab alors que ses valeurs ne m'ont pas servis pour la connexion. Quelque chose de bénin pour certains mais je suis débutant...

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut que tes colonnes soient dans le SELECT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $sql = 'SELECT id, pseudo, nom, prenom FROM users WHERE pseudo="' . mysql_real_escape_string($_POST['pseudo']) . '" AND password="' . mysql_real_escape_string($_POST['password']) . '"';
    $req = mysql_query($sql);
    if ($data = mysql_fetch_assoc($req)) {
                session_start();
                $_SESSION['pseudo'] = $data['pseudo'];
                $_SESSION['id'] = $data['id'];
                $_SESSION['nom'] = $data['nom'];
                $_SESSION['prenom'] = $data['prenom'];
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 36
    Points : 8
    Points
    8
    Par défaut
    Ah ba oui ^^ merci mais que veut dire le count(*) alors ?

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 36
    Points : 8
    Points
    8
    Par défaut
    J'aurai voulu une autre petite aide. J'aimerai afficher un message de notification pour les membres connecté j'arrive a afficher le message lorsque les restrictions sont valider mais j'aimerai qu'il ne s'affiche si la personne connecté à validé ses options

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?try {
        $bdd = new PDO('mysql:host=localhost;dbname=toingma43265com13990_', 'Florian', '22051996');
    }
    catch (Exception $e) {
        die('Erreur : ' . $e->getMessage());
    }
     
    // Récupération des 10 derniers article
    $reponse = $bdd->query("SELECT users.id, eleves.id FROM eleves, users WHERE users.id = eleves.id AND eleves.convocation = 1");
     
    // Affichage de chaque article (toutes les données sont protégées par htmlspecialchars)
    while ($reponse->fetch()) {
        echo 'Vous avez une convocation en attente de validation';
     
     
    }
    J'ai essayé de faire ça mais en vain

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $reponse = $bdd->query("SELECT users.id, eleves.id FROM eleves, users WHERE users.id = eleves.id AND eleves.convocation = 1 AND users.pseudo =$_SESSION['pseudo'] ");

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je n'ai rien compris a tes histoires de restrictions et d'options validées.

    Deux points cependant
    1 - une jointure s'écrit :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT users.id, eleves.id FROM eleves
    JOIN users ON users.id = eleves.id 
    WHERE eleves.convocation = 1

    2 - Fais tes requêtes sur l'id de l'utilisateur, pas sur son pseudo.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 36
    Points : 8
    Points
    8
    Par défaut
    En fait lorsqu'une personne est convoqué elle doit recevoir une notification qui lui dit qu'elle doit valider sa présence à la convocation. Lorsqu'elle est convoqué la valeur convocation passe de 0 à 1. En résumé je veut que l'on associe la notification a la session démarré. Si je me connecte avec un session non convoqué alors je n'affiche pas de notif.

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu as fait les modifications que je t'ai indiquées ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 36
    Points : 8
    Points
    8
    Par défaut
    oui merci ça marche.

    Par contre je ne peux me connecter qu'avec une seul session avec cette requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     // on teste si une entrée de la base contient ce couple pseudo / mdp
            $sql = 'SELECT id, pseudo, password, nom, prenom FROM users WHERE pseudo="' . mysql_real_escape_string($_POST['pseudo']) . '" AND password="' . mysql_real_escape_string($_POST['password']) . '"';
     
            $req = mysql_query($sql) or die('Erreur SQL !<br />' . $sql . '<br />' . mysql_error());
            $data = mysql_fetch_array($req);
     
            mysql_free_result($req);
            mysql_close();
     
     
     
     
     
            // si on obtient une réponse, alors l'utilisateur est un membre
            if ($data[0] == 1) {
                session_start();
     
                $_SESSION['id'] = $data['id'];
                $_SESSION['pseudo'] = $_POST['pseudo'];
                $_SESSION['nom'] = $data['nom'];
    			$_SESSION['prenom'] = $data['prenom'];
     
                header('location: redirection.php');
     
                exit();
    quand je met count(*) je peux me connecter avec l'autre mais le processus d'affichage de notification ne fonctionne plus.

    Une explication ?

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Une explication ?
    Ce n'est pas du tout le code que je t'ai proposé.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 36
    Points : 8
    Points
    8
    Par défaut
    Non non mais le soucis viens de mon traitement de connexion ton code a très bien marché. Juste que avec ce SQL je n'arrive pas a connecter d'autre compte ...

  11. #11
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Peut être que si tu avais utilisé mon code, cela fonctionnerait.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2014
    Messages : 36
    Points : 8
    Points
    8
    Par défaut
    c'est bon chef ça fonctionne bien merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 11/09/2012, 17h01
  2. Réponses: 3
    Dernier message: 15/07/2012, 00h01
  3. Meilleure méthode lors du démarrage d'une appli
    Par rvzip64 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 24/12/2007, 13h20
  4. Réponses: 11
    Dernier message: 20/07/2007, 15h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo