Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème pendant tp minichat

Sujet résolu
    10 juin 2021 à 19:39:58

    Bonjour

    Je rencontre un problème avec la création d'un minichat via php. Je suis en train de suivre actuellement la formation php myadmin, et j'en suis au moment de la création d'un tp mini-chat. J'ai copié/collé la correction pour créer un minichat, j'ai configuré une table avec les accès sur phpmyadmin (id, mdp...). Mais quand j'essaye d'écrire un message sur mon site, rien ne s'affiche. Vous pouvez tester mon site --> mytems.fr

    Ps: j'ai accédé à phpmyadmin depuis mon hébergeur (hostinger)

    Et pour précisé, je ne suis qu'un débutant dans la matière, soyez indulgent avec moi ;)

    Merci d'avance de votre aide

    Cordialement REMY Hugo

    -
    Edité par HugoRemy1 10 juin 2021 à 20:14:28

    • Partager sur Facebook
    • Partager sur Twitter
      11 juin 2021 à 12:13:31

      Coucou !

      Peux-tu nous montrer ton code qui est censé afficher les pages stp ?

      Et tes messages sont bien rentrés dans la base de données ? 

      Matthieu

      • Partager sur Facebook
      • Partager sur Twitter
        12 juin 2021 à 19:55:43

        Salut !

        Mon site est déjà en ligne si tu veux voir le code source : https://mytems.fr/support.php

        Et justement, mes messages n'arrive pas jusque dans la base de données.

        Hugo

        • Partager sur Facebook
        • Partager sur Twitter
          12 juin 2021 à 20:43:11

          @HugoRemy1 Bonsoir, poste ici même le code PHP que tu as écrit en utilisant l'outil d'insertion de code soit le bouton code </>. 

          C'est bien d'avoir le visuel du résultat du code, mais il est plus utile pour pouvoir te répondre d'avoir le code source PHP et non le source générer.

          PS : La balise <style> ce place dans le <head>, rien entre </head> et <body>.

          Dans la <nav> tu as une div qui n'est pas fermée. Et </body> et </html> manquant.

          • Partager sur Facebook
          • Partager sur Twitter
            12 juin 2021 à 22:54:25



            Re

            Voila le code pour la page du formulaire :

            <!DOCTYPE html>
            <html>
                <head>
                    <meta charset="utf-8" />
                    <link rel="stylesheet" href="style.css" />
                    <title>Support</title>
                    <link rel="preconnect" href="https://fonts.gstatic.com">
                    <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@100;300&display=swap" rel="stylesheet">     
                    <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@500;900&display=swap" rel="stylesheet">
                </head>
                <style>
                form
                {
                    text-align:center;
                }
                </style>
                <body>
                    <nav>
                        <h1>MyTems</h1>
                        <div class="onglets">
                            <a href="index.html">Accueil</a>
                            <a href="boutique.html">Commander</a>
                            <a href="recrutement.html">Recrutement</a>
                            <a href="support.php">Support</a>
                    </nav>
                
                <form action="minichat_post.php" method="post">
                    <p>
                    <label for="pseudo">Pseudo</label> : <input type="text" name="pseudo" id="pseudo" /><br />
                    <label for="message">Message</label> :  <input type="text" name="message" id="message" /><br />
            
                    <input type="submit" value="Envoyer" />
                </p>
                </form>
            
            <?php
            // Connexion à la base de données
            try
            {
                $bdd = new PDO('mysql:host=localhost;dbname=u557670816_chat;charset=utf8', '**********', '********');
            }
            catch(Exception $e)
            {
                    die('Erreur : '.$e->getMessage());
            }
            
            // Récupération des 10 derniers messages
            $reponse = $bdd->query('SELECT pseudo, message FROM minichat ORDER BY ID DESC LIMIT 0, 10');
            
            // Affichage de chaque message (toutes les données sont protégées par htmlspecialchars)
            while ($donnees = $reponse->fetch())
            {
                echo '<p><strong>' . htmlspecialchars($donnees['pseudo']) . '</strong> : ' . htmlspecialchars($donnees['message']) . '</p>';
            }
            
            $reponse->closeCursor();
            
            ?>
                </body>
            </html>

            Et voila le code pour la page d'envoi à la base de donnée :

            <?php
            // Connexion à la base de données
            try
            {
            	$bdd = new PDO('mysql:host=localhost;dbname=u557670816_chat;charset=utf8', '**********', '*******');
            }
            catch(Exception $e)
            {
                    die('Erreur : '.$e->getMessage());
            }
            
            // Insertion du message à l'aide d'une requête préparée
            $req = $bdd->prepare('INSERT INTO minichat (pseudo, message) VALUES(?, ?)');
            $req->execute(array($_POST['pseudo'], $_POST['message']));
            
            // Redirection du visiteur vers la page du minichat
            header('Location: support.php');
            ?>



            -
            Edité par HugoRemy1 12 juin 2021 à 23:03:07

            • Partager sur Facebook
            • Partager sur Twitter
              12 juin 2021 à 23:00:14

              Bonsoir,

              Active les erreur PDO (cf signature)

              et édite ton message pour cacher tes identifiants et mdp, enfin tu es bon pour les changer

              Mets la redirection en commentaire, pour voir les erreurs

              -
              Edité par Aurélien10! 12 juin 2021 à 23:01:19

              • Partager sur Facebook
              • Partager sur Twitter
                14 juin 2021 à 18:31:55

                Re

                Je ne sais pas si les erreurs pdo sont bien activées, mais quand j'ouvre la page, ce message s'affiche "Erreur : SQLSTATE[HY000] [1045] Access denied for user 'u55*************'@'localhost' (using password: YES)". C'est peut être depuis que j'ai changé mon mdp.

                Ps: Il y a plusieurs choses que je ne comprends pas sur les base de données. Par exemple, dois-je utiliser le logiciel "wanp" "xamp" ou quelque chose comme ça ? Et quand j'ouvre ma bdd mysql, dans l'url doit-il être écrit "localhost"? Car dans pas mal de tuto que j'ai visionné, "localhost" était présent dans l'url.

                Encore une fois je débute vraiment dans ce domaine.

                Merci pour le temps que vous accordez à m'aider.

                Cordialement Hugo

                -
                Edité par AbcAbc6 14 juin 2021 à 18:38:57

                • Partager sur Facebook
                • Partager sur Twitter
                  14 juin 2021 à 18:43:10

                  Bonjour, j'ai masqué le nom d'utilisateur, on n'a pas à le connaitre.

                  Pour le  logiciel WAMP, XAMP c'est quand tu développes en local.

                  >> Et quand j'ouvre ma bdd mysql, dans l'url doit-il être écrit "localhost"?

                  Idem c'est quand tu es en local sur ta machine.

                  Je te recommande de lire le cours PHP de ce site Cours PHP/MySQL

                  Pour l'affichage des erreurs PDO https://www.php.net/manual/fr/pdo.error-handling.php

                  -
                  Edité par AbcAbc6 14 juin 2021 à 18:44:20

                  • Partager sur Facebook
                  • Partager sur Twitter
                    14 juin 2021 à 20:13:10

                    Et autre petite question concernant l'html et le css, pourquoi mon code est il différent en locale, et après la mise en ligne ?

                    Voila mon code css en local :

                    nav .onglets a{
                    	text-decoration: none;
                    	color: #000;
                    	margin-right: 10px;
                    	border-bottom: 1px solid #000;
                    	padding-bottom: 5px;
                    
                    }
                    
                    body{
                    	margin: 0;
                    	padding: 0;
                    	font-family: Roboto;
                    }
                    
                    nav{
                    	display: flex;
                    	flex-wrap: wrap;
                    	justify-content: center;
                    	align-items: center;
                    	border-bottom: 5px solid #6f6f6f;
                    }
                    
                    nav h1{
                    	color: #717171;
                    	font-size: 40px;
                    
                    }
                    
                    nav .onglets{
                    	margin-top: 3px;
                    	margin-left: 300px;
                    }
                    
                    @media screen and (max-width: 680px){
                    	nav .onglets{
                    		margin-left: 0px;
                    		margin-bottom: 20px;
                    	}
                    }
                    
                    header{
                    	display: flex;
                    	flex-direction: column;
                    	align-items: center;
                    	background: url('https://lh3.googleusercontent.com/3jaFrvAbmx4X7Oxgnt4BgXgNFU6x2UFv4FF-ep5C7mGjtG3ETKfD5RyhuexY8E6LIMkxYBc=s128');
                    	background-size: cover;
                    	color: #fff;
                    	padding: 40px;
                    	font-size: 2.5em;
                    	font-family: Noto Sans JP;
                    
                    }
                    
                    header h1{
                    	font-size: 50px;
                    }
                    
                    header h4{
                    	font-size: 25px;
                    	margin-top: -20px;
                    	border-bottom: 1px solid #fff;
                    }
                    
                    .main{
                        margin-top: 40px;
                        display: flex;
                        flex-direction: column;
                        align-items: center;
                    }
                    .main .content .card{
                        display: flex;
                        flex-wrap: wrap;
                        justify-content: center;
                        margin-bottom:20px;
                    }
                    .main .content .card .left{
                       flex: 0 0 30%;
                       padding: 20px;
                       background-color:black;
                       color:#fff;
                    }
                    .main .content .card .right img{
                        height:300px;
                        width: 400px;
                        margin-top: 5px;
                    }

                    Et vous pouvez voir mon code en ligne sur mytems.fr

                    Une fois la mise en ligne du code, il me manque la partie".main .content .card" et la partie ".main .content .card .left"

                    -
                    Edité par HugoRemy1 14 juin 2021 à 20:19:18

                    • Partager sur Facebook
                    • Partager sur Twitter
                      14 juin 2021 à 20:49:47

                      >> Et autre petite question concernant l'html et le css,

                      C'est une problématique par sujet. Il y a un forum HTML/CSS pour ces questions. 

                      Pour moi c'est identique => 87 lignes de code de chaque coté.

                      • Partager sur Facebook
                      • Partager sur Twitter

                      Problème pendant tp minichat

                      × 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