Partage
  • Partager sur Facebook
  • Partager sur Twitter

Affichez les utilisateurs connectés

    16 mars 2018 à 15:22:32

    Bonjour,

    il y as quelques jours, j'ai crée un sujet pour l'affichage du nombre de visiteur, maintenant j'essaye de faire de même pour l'affichage des pseudo des utilisateurs connectés sur le chat, tout fonctionne (enregistrement sur la BDD de plusieurs pseudo, la suppression lors d'inactivité etc..., le problème, c'est l'affichage, je galère pour affiché les pseudos connectés.

    voici le code

    <?php
    try
    {
        $bdd = new PDO('mysql:host=localhost;dbname=monsite;charset=utf8', 'root', '');
        array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
    }
    
    catch(Exception $e)
    {
        die('Erreur : '.$e->getMessage());
    }
    
    // ÉTAPE 1 : on vérifie si le pseudo se trouve déjà dans la table.
    // Pour faire ça, on n'a qu'à compter le nombre d'entrées dont le champ "pseudo" le pseudo du visiteur.
    
    $pseudo = $bdd->query('SELECT pseudo AS existe_pseudo FROM connect_chat WHERE pseudo="'.$_SESSION['pseudo'].'"');
    $pseudoExist = $pseudo->rowCount();
    
    if ($pseudoExist === 0) // Le pseudo ne se trouve pas dans la table, on va l'ajouter.
    {
        $bdd->query('INSERT INTO connect_chat (pseudo, timestamp) VALUES ("'.$_SESSION['pseudo'].'", "'.time().'")');
    }
    
    else // Le pseudo se trouve déjà dans la table, on met juste à jour le timestamp.
    {
        $bdd->query('UPDATE connect_chat SET timestamp="'.time().'" WHERE pseudo="'.$_SESSION['pseudo'].'"');
    }
    
    // ÉTAPE 2 : on supprime toutes les entrées dont le timestamp est plus vieux que 2 minutes.
    // On stocke dans une variable le timestamp qu'il était il y a 2 minutes :
    
    $timestamp_min = time() - (60 *2); //  nombre en secondes multiplié par nombre de minute
    $bdd->query('DELETE FROM connect_chat WHERE timestamp<"'.$timestamp_min.'"');
    
    // ÉTAPE 3 : on compte le nombre de pseudo stockées dans la table. C'est le nombre de visiteurs connectés.
    
    $retour = $bdd->query('SELECT GROUP_CONCAT(pseudo SEPARATOR ", ") AS existe_pseudo FROM connect_chat')->fetchAll();
    echo '<p>Il y a actuellement ' . $retour ['existe_pseudo '] . ' comme visiteurs sur le chat !</p>';
    
    ?>

    Merci de votre aide.

    -
    Edité par ricem 16 mars 2018 à 15:23:11

    • Partager sur Facebook
    • Partager sur Twitter

    Ricem

      16 mars 2018 à 15:33:29

      Bonjour,

      Sans vouloir être casse-pieds, "je galère" c'est pas terrible comme description du problème.

      Sinon, avant la ligne 38 fait un var_dump($retour); ça devrait te mettre sur la voie.

      • Partager sur Facebook
      • Partager sur Twitter
        16 mars 2018 à 15:33:33

        si tu évitais d'utiliser rowcount...

        <?php
        try
        {
            $bdd = new PDO('mysql:host=localhost;dbname=monsite;charset=utf8', 'root', '');
            array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
        }
         
        catch(Exception $e)
        {
            die('Erreur : '.$e->getMessage());
        }
         
        // ÉTAPE 1 : on vérifie si le pseudo se trouve déjà dans la table.
        // Pour faire ça, on n'a qu'à compter le nombre d'entrées dont le champ "pseudo" le pseudo du visiteur.
         
        $pseudo = $bdd->query('SELECT count(*) as nombre FROM connect_chat WHERE pseudo="'.$_SESSION['pseudo'].'"');
        $retour = $pseudo->fetch();
         
        if ($retour['nombre'] == 0) // Le pseudo ne se trouve pas dans la table, on va l'ajouter.
        {
            $bdd->query('INSERT INTO connect_chat (pseudo, timestamp) VALUES ("'.$_SESSION['pseudo'].'", "'.time().'")');
        }
         
        else // Le pseudo se trouve déjà dans la table, on met juste à jour le timestamp.
        {
            $bdd->query('UPDATE connect_chat SET timestamp="'.time().'" WHERE pseudo="'.$_SESSION['pseudo'].'"');
        }
         
        // ÉTAPE 2 : on supprime toutes les entrées dont le timestamp est plus vieux que 2 minutes.
        // On stocke dans une variable le timestamp qu'il était il y a 2 minutes :
         
        $timestamp_min = time() - (60 *2); //  nombre en secondes multiplié par nombre de minute
        $bdd->query('DELETE FROM connect_chat WHERE timestamp<"'.$timestamp_min.'"');
         
        // ÉTAPE 3 : on compte le nombre de pseudo stockées dans la table. C'est le nombre de visiteurs connectés.
         
        $retour = $bdd->query('SELECT GROUP_CONCAT(pseudo SEPARATOR ", ") AS existe_pseudo FROM connect_chat')->fetchAll();
        echo '<p>Il y a actuellement ' . $retour ['existe_pseudo '] . ' comme visiteurs sur le chat !</p>';
         
        ?>



        • Partager sur Facebook
        • Partager sur Twitter
          16 mars 2018 à 16:20:40

          > array(PDO::ATTR_ERRMODE =&gt; PDO::ERRMODE_EXCEPTION);

          Ca ne sert à rien, ton tableau se promène dans le code au lieu d'être en 4^e paramètre de l'appel du constructeur de PDO.

          Il y a des injections SQL via $_SESSION['pseudo'] puisque les requêtes ne sont pas préparées et il n'y a strictement aucun échappement pour autant.

          Un echo d'un fetchAll (tableau de tableaux), ça ne peut que donner "Array" (ou NULL/'' vu que la clé n'existe pas), ça devrait être un simple fetch en l'état. Mais je déconseille l'usage GROUP_CONCAT qui n'est acceptable que tant que le nombre de lignes/données reste limité.

          -
          Edité par julp 16 mars 2018 à 16:24:45

          • Partager sur Facebook
          • Partager sur Twitter
            16 mars 2018 à 16:57:09

            christouphe,

            j'ai fais comme indiqué, voici le résultat en image :

            Je vois pas le souci, il enregistre, il suprime, mais il affiche pas o_O

            -
            Edité par ricem 16 mars 2018 à 17:20:55

            • Partager sur Facebook
            • Partager sur Twitter

            Ricem

              16 mars 2018 à 17:19:23

              C'est pour cela que je te disais de faire un var_dump de ton résultat : tu vois bien que tu as un index 0 à ton array. Après c'est vrai qu'un fetchAll() n'a pas trop d'intérêt ici, mais c'était pour te guider plutôt que de te donner une solution toute faite.

              Donc avec fetchAll() , il faudrait récupérer $retour [0]['existe_pseudo ']

              • Partager sur Facebook
              • Partager sur Twitter
                16 mars 2018 à 17:19:45

                julp,

                Les requêtes sont bien préparées, ils sont envoyés par un autre fichier qui lui est

                $req = $bdd->prepare('INSERT INTO minichat (pseudo, date_post, message) VALUES(?, NOW(), ?)');

                Lui ne fait que récupérer la 

                $_SESSION['pseudo']

                Merci de tes conseils.


                • Partager sur Facebook
                • Partager sur Twitter

                Ricem

                  16 mars 2018 à 17:24:00

                  > Lui ne fait que récupérer la $_SESSION['pseudo']

                  Et si je m'appelle : "; DROP TABLE connect_chat CASCADE; # ou je ne sais quoi, tu crois qu'il se passe quoi ?

                  Tu crois que c'est parce que ton INSERT est préparée que ça te dispense de préparer le reste ? Tu es fou de le croire surtout qu'une injection SQL, avec pdo_mysql et l'émulation activée, ça ne pardonne pas ...

                  De toute façon, même sans parler d'injections SQL, il suffit d'une " dans le pseudo pour faire planter tous tes SELECT ...

                  -
                  Edité par julp 16 mars 2018 à 17:32:52

                  • Partager sur Facebook
                  • Partager sur Twitter
                    16 mars 2018 à 18:17:36

                    julp,

                    j'ai fais des tests, j'ai mis "<strong> comme pseudo, effectivement catastrophe, tout c'est retrouvé en gras :waw:

                    Alors qu'avant que je n'inclut le fichier si présent au dessus, j'avais déjà fait le test et aucun problème, c'est à dire qu'il faut que je le sécurise.

                    Tu me conseil quoi alors ? requête préparé et ?

                    Edit:pourtant dans l'envoi du pseudo j'avais fais un

                    preg_match('#^[a-zA-Z0-9--éèàù]{3,12}$#', $_POST['pseudo'])

                    pour les caractères spéciaux <> ne sont peut être pas compris dedans ??



                    -
                    Edité par ricem 16 mars 2018 à 18:23:34

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Ricem

                      16 mars 2018 à 18:24:01

                      > j'ai fait des tests, j'ai mis "<strong> comme pseudo, effectivement catastrophe, tout s'est retrouvé en gras

                      C'est encore autre chose les XSS. C'est vrai que tu n'utilises pas de htmlspecialchars non plus sur ton echo.

                      > Tu me conseilles quoi alors ?

                      De suivre ce que l'on trouve partout (cours compris) :

                      • injections SQL : préparer TOUTES les requêtes
                      • XSS : htmlspecialchars sur les echo

                      N'utilises pas le pseudo mais plutôt l'id de l'utilisateur aussi, qui, contrairement à un pseudo, est fixe dans le temps.

                      -
                      Edité par julp 16 mars 2018 à 19:36:16

                      • Partager sur Facebook
                      • Partager sur Twitter
                        16 mars 2018 à 19:56:04

                        julp,

                        Et la balise ouvrante / fermante ne sont pas considéré comme caractère spéciaux ??

                        Edit : sinon, avec ce code ça fonctionne, il m'affiche les pseudos 

                        echo '<p>Il y a actuellement ' . $retour[0][0] . ' comme visiteurs sur le chat !</p>';

                        Bon, je vais voir maintenant pour sécurisé.....!!

                        -
                        Edité par ricem 16 mars 2018 à 19:59:47

                        • Partager sur Facebook
                        • Partager sur Twitter

                        Ricem

                          16 mars 2018 à 23:09:07

                          > Et la balise ouvrante / fermante ne sont pas considéré comme caractère spéciaux ??

                          Pour les XSS, suivant le contexte, oui. Pas pour les injections SQL.

                          Ces sujets sont abordés partout, tu trouveras sans mal de quoi approfondir.

                          • Partager sur Facebook
                          • Partager sur Twitter
                            17 mars 2018 à 16:47:47

                            Bonjour julp,

                            la requête prépare, faut mieux la faire sur l'étape 1 (lors de la vérification, si le pseudo existe déjà dans la table) ou sur l'étape 2 (lors de l'enregistrement si le pseudo n'est pas déjà dans la table). ou sur les deux :(.

                            Merci.

                            • Partager sur Facebook
                            • Partager sur Twitter

                            Ricem

                              17 mars 2018 à 16:57:16

                              Il faut faire une requête préparée chaque fois qu'il y a une variable "extérieure" dans la requête : il s'agit juste d'empêcher une injection SQL.
                              • Partager sur Facebook
                              • Partager sur Twitter
                                17 mars 2018 à 17:11:03

                                 Bonjour philodick,

                                Le fait qu'il y a un regex comme celui-ci, ça limite les injections ou pas ?

                                J'ai rajouté les balise entrante et fermante, comme ça plus de <strong>.

                                preg_match('#^<>[a-zA-Z0-9--éèàù]*$#', $_POST['pseudo'])
                                Et aussi rajouté un:
                                $utilisateur = htmlspecialchars($retour[0][0]);

                                parce que j'ai galéré pour faire le code, fraudait que je recommence tout...!!

                                La misère o_O

                                -
                                Edité par ricem 17 mars 2018 à 17:15:21

                                • Partager sur Facebook
                                • Partager sur Twitter

                                Ricem

                                  17 mars 2018 à 17:13:32

                                  Mais non, ça ne change rien, tu passes la même variable dans la requête...
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    17 mars 2018 à 18:13:01

                                    > Le fait qu'il y a un regex comme celui-ci, ça limite les injections ou pas ?

                                    Pourquoi tu veux "limiter" une injection SQL au lieu de ne pas en avoir du tout en préparant correctement TOUTES tes requêtes ? On ne restreint pas les caractères utilisables pour un pseudo au nom de la sécurité, c'est que cette dernière est laxiste si on en est à la considérer ainsi ; si on le fait c'est motivé par des choix techniques (type pour utiliser des notifications derrière), pas pour la sécurité.

                                    S'il y a un truc qui te prémunit d'une injections SQL c'est de préparer la requête (sinon de tout échapper/caster comme il faut). C'est ça qui te l'assure, pas une regexp. Si peu que tu oublies de la réutiliser à la modification du pseudo de l'utilisateur ou que tu fasses une erreur dessus (pas sûr que le - et avec le manque du modificateur u, elle soit vraiment correcte en plus), tu te retrouves strictement au même point.

                                    > la requête prépare, faut mieux la faire sur l'étape 1 (lors de la vérification, si le pseudo existe déjà dans la table) ou sur l'étape 2 (lors de l'enregistrement si le pseudo n'est pas déjà dans la table). ou sur les deux :(.

                                    TOUTES ! Je ne comprends même pas que tu puisses penser que ça puisse être facultatif par endroits. C'est tout ou rien. La sécurité, il suffit d'une brèche pour tout menacer (et ton code en présente plus qu'une ...). J'ai fermé la porte à clé mais laissé une des fenêtres ouvertes : est-ce suffisant pour ne pas être cambriolé ? lol

                                    -
                                    Edité par julp 17 mars 2018 à 18:23:13

                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      18 mars 2018 à 8:46:57

                                      > J'ai fermé la porte à clé mais laissé une des fenêtres ouvertes : est-ce suffisant pour ne pas être cambriolé ? lol

                                      Oui, j'habite au dixième étage ^^

                                      Non, plus sérieusement, je vais mis atteler, je sent que je vais faire encore des nuits blanches o_O.

                                      -
                                      Edité par ricem 18 mars 2018 à 8:50:02

                                      • Partager sur Facebook
                                      • Partager sur Twitter

                                      Ricem

                                        19 mars 2018 à 20:28:30

                                        Bonsoir,

                                        j'ai tenté de faire au mieux mais j'ai des erreurs, je vous donne le code

                                        <?php
                                        
                                        try
                                        {
                                        	$bdd = new PDO('mysql:host=localhost;dbname=monsite;charset=utf8', 'root', '');
                                        	array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
                                        }
                                        
                                        catch(Exception $e)
                                        {
                                                die('Erreur : '.$e->getMessage());
                                        }
                                        	
                                        // ÉTAPE 1 : on vérifie si le pseudo se trouve déjà dans la table.
                                        // Pour faire ça, on n'a qu'à compter le nombre d'entrées dont le champ "pseudo" le pseudo du visiteur.
                                        
                                        	$reqpseudo = $bdd->prepare('SELECT pseudo AS existe_pseudo FROM connect_chat WHERE pseudo= ?');
                                        	$reqpseudo->execute(array($_SESSION['pseudo']));
                                        	$pseudoExist = $pseudo->fetch();
                                        
                                        if ($pseudoExist == 0) // Le pseudo ne se trouve pas dans la table, on va l'ajouter.
                                        {
                                            $bdd->prepare('INSERT INTO connect_chat (pseudo, timestamp) VALUES (?, ?)');
                                        	$bdd->execute(array($_SESSION['pseudo'], time()));	
                                        }
                                        
                                        else // Le pseudo se trouve déjà dans la table, on met juste à jour le timestamp.
                                        {
                                            $bdd->query('UPDATE connect_chat SET timestamp="'.time().'" WHERE pseudo="'.$_SESSION['pseudo'].'"');
                                        }
                                        
                                        // ÉTAPE 2 : on supprime toutes les entrées dont le timestamp est plus vieux que 1 minutes.
                                        // On stocke dans une variable le timestamp qu'il était il y a 1 minutes :
                                        
                                        $timestamp_min = time() - (60); //  nombre en secondes par minute
                                        $bdd->query('DELETE FROM connect_chat WHERE timestamp<"'.$timestamp_min.'"');
                                        
                                        // ÉTAPE 3 : on compte le nombre de pseudo stockées dans la table. C'est le nombre de visiteurs connectés.
                                        
                                        $retour = $bdd->query('SELECT GROUP_CONCAT(pseudo SEPARATOR ", ") AS existe_pseudo FROM connect_chat')->fetchAll();
                                        $utilisateur = htmlspecialchars($retour[0][0]);
                                        
                                        ?>

                                        et voici mes erreurs


                                        Et je pense qu'il a pas fini d'interpréter le code :(...

                                        Pourrais-je avoir votre aide svp.

                                        -
                                        Edité par ricem 19 mars 2018 à 23:06:43

                                        • Partager sur Facebook
                                        • Partager sur Twitter

                                        Ricem

                                          19 mars 2018 à 20:39:30

                                          Si tu utilises des variables de session, il faut session_start() au début de la page.
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            19 mars 2018 à 21:05:13

                                            philodick a écrit:

                                            Si tu utilises des variables de session, il faut session_start() au début de la page.


                                            merci philodick,

                                            Ce code est en include dans une page où il y as déjà une session_start().

                                            <?php
                                            session_start(); 
                                            
                                             
                                            
                                            if (!isset($_SESSION['pseudo']))
                                            { 
                                              header ('location: accueilchatbox.php');
                                            }
                                              include('chat_connectes.php'); // <- ICI
                                            
                                            ?>



                                            • Partager sur Facebook
                                            • Partager sur Twitter

                                            Ricem

                                              19 mars 2018 à 22:43:21

                                              En tout cas ta session n'a pas l'air d'exister. Mais bon ton erreur indique la ligne 19 et il n'y a rien ligne 19..
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                19 mars 2018 à 23:08:58

                                                philodick a écrit:

                                                En tout cas ta session n'a pas l'air d'exister. Mais bon ton erreur indique la ligne 19 et il n'y a rien ligne 19..


                                                J'ai modifié, la ligne 19 correspond à
                                                 $pseudoExist = $pseudo->fetch();
                                                J'ai modifié dans le message aussi.

                                                • Partager sur Facebook
                                                • Partager sur Twitter

                                                Ricem

                                                  19 mars 2018 à 23:16:59

                                                  Au moins c'est clair, tu ne définis tout simplement pas $pseudo !
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    20 mars 2018 à 9:08:48

                                                    Ah oui, au lieu de mettre
                                                    $reqpseudo = $bdd->prepare('SELECT pseudo AS existe_pseudo FROM connect_chat WHERE pseudo= ?');
                                                        $reqpseudo->execute(array($_SESSION['pseudo']));
                                                        $pseudoExist = $pseudo->fetch();

                                                    Faudrait plutôt que je mette 

                                                    $reqpseudo = $bdd->prepare('SELECT pseudo AS existe_pseudo FROM connect_chat WHERE pseudo= ?');
                                                    	$reqpseudo->execute(array($_SESSION['pseudo']));
                                                    	$pseudoExist = $reqpseudo->fetch();

                                                    Oui...., ça fonctionne mieux, je continu à faire les tests voir si, il affiche, delete,  etc..!

                                                    Edit :

                                                    Donc, tout allait bien car le pseudo étais encore dans la bdd, et je me suis connecté d'un autre pc pour voir et là ça fonctionne pas, j'ai donc supprimer le pseudo contenu dans la bdd et du coup comme il n'est pas dedans et ben ça fonctionne plus (logique)

                                                    Voici l'erreur:

                                                    Si vous pouvez m'aider svp

                                                    -
                                                    Edité par ricem 20 mars 2018 à 13:20:43

                                                    • Partager sur Facebook
                                                    • Partager sur Twitter

                                                    Ricem

                                                      20 mars 2018 à 10:47:22

                                                      Salut,

                                                      tu lances execute sur l'objet connexion ($bdd) au lieu de le lancer sur le PDOStatement issu de $bdd->prepare()

                                                      -
                                                      Edité par christouphe 20 mars 2018 à 10:47:44

                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        20 mars 2018 à 11:04:37

                                                        bonjour christouphe,

                                                        Si je peux me permettre, je te rappelle que tu parle un un grand débutant, voire novice, :D essaie d'employé des termes correspondant à mon niveau :p, le plus simple serait un exemple suivi d'une explication pas trop compliqué adapté que je puisse comprendre ^^

                                                        Merci à toi.

                                                        • Partager sur Facebook
                                                        • Partager sur Twitter

                                                        Ricem

                                                          20 mars 2018 à 11:09:35

                                                          ooops ^^

                                                          Non quand même je pense que le script que tu nous donnes n'est pas celui que tu as lancé.

                                                          Je pense que tu as fait:

                                                          <?php
                                                              $bdd = new PDO('blablabla');
                                                              $reqpseudo = $bdd->prepare('blablabl');
                                                              $bdd->execute();

                                                          au lieu de

                                                          <?php
                                                              $bdd = new PDO('blablabla');
                                                              $reqpseudo = $bdd->prepare('blablabl');
                                                              $reqpseudo->execute();

                                                          C'est ce que dis l'erreur:

                                                          PDO::execute() n'existe pas ligne 24 chat_connectes.php


                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            20 mars 2018 à 17:33:48

                                                            Bon, voici un code qui fonctionne, et sécurisé, enfin, je pense, j'attends vos avis, voici le code

                                                            <?php
                                                            
                                                            try
                                                            {
                                                            	$bdd = new PDO('mysql:host=localhost;dbname=monsite;charset=utf8', 'root', '');
                                                            	array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
                                                            }
                                                            
                                                            catch(Exception $e)
                                                            {
                                                                    die('Erreur : '.$e->getMessage());
                                                            }
                                                            	
                                                            	// ÉTAPE 1 : on vérifie si le pseudo se trouve déjà dans la table.
                                                            	// Pour faire ça, on n'a qu'à compter le nombre d'entrées dont le champ "pseudo" le pseudo du visiteur.
                                                            
                                                            	$reqpseudo = $bdd->prepare('SELECT pseudo AS existe_pseudo FROM connect_chat WHERE pseudo= ?');
                                                            	$reqpseudo->execute(array($_SESSION['pseudo']));
                                                            	$pseudoExist = $reqpseudo->fetch();
                                                            
                                                            	if ($pseudoExist == 0) // Le pseudo ne se trouve pas dans la table, on va l'ajouter.
                                                            	{
                                                            		$verif = $bdd->prepare('INSERT INTO connect_chat (pseudo, timestamp) VALUES (?, ?)');
                                                            		$verif->execute(array($_SESSION['pseudo'], time()));	
                                                            	}
                                                            
                                                            	else // Le pseudo se trouve déjà dans la table, on met juste à jour le timestamp.
                                                            	{
                                                            		$verif = $bdd->prepare('UPDATE connect_chat SET timestamp="'.time().'" WHERE pseudo="'.$_SESSION['pseudo'].'"');
                                                            		$verif->execute(array($_SESSION['pseudo']));
                                                            		
                                                            	}
                                                            
                                                            	// ÉTAPE 2 : on supprime toutes les entrées dont le timestamp est plus vieux que 1 minutes.
                                                            	// On stocke dans une variable le timestamp qu'il était il y a 1 minutes :
                                                            
                                                            	$timestamp_min = time() - (60*2); //  nombre en secondes par minute * par nombre de minute
                                                            	$bdd->query('DELETE FROM connect_chat WHERE timestamp<"'.$timestamp_min.'"');
                                                            
                                                            	// ÉTAPE 3 : on compte le nombre de pseudo stockées dans la table. C'est le nombre de visiteurs connectés.
                                                            
                                                            	$retour = $bdd->query('SELECT GROUP_CONCAT(pseudo SEPARATOR ", ") AS existe_pseudo FROM connect_chat')->fetchAll();
                                                            	$utilisateur = htmlspecialchars($retour[0][0]);
                                                            
                                                            ?>



                                                            -
                                                            Edité par ricem 20 mars 2018 à 17:34:45

                                                            • Partager sur Facebook
                                                            • Partager sur Twitter

                                                            Ricem

                                                              22 mars 2018 à 8:18:47

                                                              Bonjour, j'attends toujours vos avis sur la sécurité, notamment l'avis de julp qui m'a contraint à sécurisé mon code :p, et je lui en remercie.

                                                              • Partager sur Facebook
                                                              • Partager sur Twitter

                                                              Ricem

                                                              Affichez les utilisateurs connectés

                                                              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                              • Editeur
                                                              • Markdown