Partage
  • Partager sur Facebook
  • Partager sur Twitter

Un mini Chat

Sujet résolu
    27 mai 2018 à 0:01:18

    Bonsoir a vous tous.

    j'ai rencontre un problème avec mon code PHP

    voilà le message d'erreur.

    Parse error: syntax error, unexpected 'nom' (T_STRING) in C:\wamp\www\PHP\minichat_post.php on line 13


    et mon code source

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

    la suite du code

    !DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>Tout pour moi</title>
        </head>
        <body>
        
    		<form action="minichat_post.php" method="post">
    			<p>
    				<label for="nom">Pseudo</label> : <input type="text" name="nom" id="nom" /><br />
    				<label for="prenom">Message</label> :  <input type="text" name="prenom" id="prenom" /><br />
    
    				<input type="submit" value="Envoyer" />
    			</p>
    		</form>
        </body>
    </html>
    <?php
    	// Connexion à la base de données
    			try
    				{
    					$bdd = new PDO('mysql:host=localhost;dbname=rien;charset=utf8', 'root', '');
    				}
    				catch(Exception $e)
    				{
    						die('Erreur : '.$e->getMessage());
    				}
    
    				// Récupération des 10 derniers messages
    				$reponse = $bdd->query('SELECT nom, prenom, DAY(date) AS jour, MONTH(date) AS mois, YEAR(date) AS annee, HOUR(date) AS heure, MINUTE(date) AS minute, SECOND(date) AS seconde FROM mini_chat 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['nom']). "</strong> :" .htmlspecialchars($donnees['prenom']) . "</p>";
    				}
    				$reponse->closeCursor();
    
    ?>
    

    merci pour vos réponde;

    • Partager sur Facebook
    • Partager sur Twitter
      27 mai 2018 à 0:03:17

      Bonsoir,

      Ouh il est tard et une petite révision sur les requêtes préparer s'impose...

      • Partager sur Facebook
      • Partager sur Twitter
        27 mai 2018 à 0:55:01

        c'est une requête préparer elle n'est pas sensé savoir ce qu'elle reçois mais toi la tu lui indique que c'est le nom, prénom qu'elle va recevoir c'est contradictoire
        • Partager sur Facebook
        • Partager sur Twitter
          28 mai 2018 à 9:55:55

          Bonjour a vous tous.

          "CrownBacken" j'ai fait ce que tu m'avait dit voilà ce que j

          j'ai rencontre comme message erreur,

          là voilà

          Parse error: syntax error, unexpected 'echo' (T_ECHO) in C:\wamp\www\PHP\connection.php on line 48


          mon code source est là

          <!DOCTYPE html>
           
          <html>
          	<head>
          	 
          	<meta charset="utf-8" />
          	<title>mini_chat</title>
          	</head>
          	<body>
          		<p>
          		<header>
          			</p>
          			<form action="minichat_post.php" method="post">
          			<p>
          			pseudo :<input type="text" name="pseudo" value=" 
          			<?php 
          					if (isset($_COOKIE['pseudo']))
          				{
          					echo $_COOKIE['pseudo'];
          				}
          				else
          				{
          					echo ' pseudo';
          				} 
          			?> " />
          			<br/>
          			message :<input type="text" name="message" /> <br/>
          			<input type="submit" value="Valider" /> <br/><input type="button" value="Actualiser" Onclick="javascript:window.history.go(0)">
          			</p>
          		</header>
          		<section>
          		<?php
          			try
          			{
          				$bdd = new PDO('mysql:host=localhost;dbname=mini_chat', 'root', '');
          			}
          			catch (Exception $e)
          			{
          				die('Erreur : ' . $e->getMessage());
          			}
          				$reponse = $bdd->query('SELECT * FROM chat ORDER BY id DESC LIMIT 0, 10');
          				while ($donnees = $reponse->fetch())
          			{
          		?>
          			<p>
          			le
          		 <?php 
          				echo $donnees['date']. "<strong>".echo htmlspecialchars($donnees['pseudo'])."</strong>".echo htmlspecialchars($donnees['message'])."<br /></p>" ;
          			?>
          			<?php
          				$reponse->closeCursor();
          			?>
          		</section>
          		</form>
          	</body>
          </html>


          le deuxième code source

          <?php
          	setcookie('pseudo', $_POST['pseudo'], time() + 365*24*3600, null, null, false, true);
          	try
          	{
          		$bdd = new PDO('mysql:host=localhost;dbname=mini_chat', 'root', '');
          	}
          	catch (Exception $e)
          	{
          		die('Erreur : ' . $e->getMessage());
          	}
          	 
          	$req = $bdd->prepare('INSERT INTO chat(pseudo, message) VALUES(:pseudo,:message)');
          	$req->execute(array(
          	'pseudo' => $_POST['pseudo'],
          	'message' => $_POST['message'],
          	));
          	 
          	header('Location: minichat.php');
          ?>


          merci pour vos réponse!!!

          -
          Edité par André Parfait 28 mai 2018 à 10:00:32

          • Partager sur Facebook
          • Partager sur Twitter
            28 mai 2018 à 11:55:01

            echo $donnees['date']. "<strong>".echo htmlspecialchars($donnees['pseudo'])."</strong>".echo htmlspecialchars($donnees['message'])."<br /></p>" ;



            Là, tu met un echo, dans un echo, lui même dans un echo ;)
            • Partager sur Facebook
            • Partager sur Twitter
              28 mai 2018 à 13:33:19

              Oui c'est vrais que la y a trop d'echo dit nous si ça marche ou pas
              • Partager sur Facebook
              • Partager sur Twitter
                28 mai 2018 à 13:44:12

                je  viens de modifié près que tout le code source  tout marche;

                mais la date ne s'affiche pas normalement;

                l'Affichage de mini chat

                voilà le code source

                <!DOCTYPE html>
                <html>
                	<head>
                		<meta charset="utf-8" />
                		<title>mini_chat</title>
                	</head>
                	<body>
                		<center>
                			<form action="exo.php" method="post">
                					<p>
                				pseudo :<input type="text" name="nom" value="
                				<?php 
                					if (isset($_COOKIE['nom']))
                				{
                					echo $_COOKIE['nom'];
                				}
                					else
                				{
                					echo 'nom';
                				} 
                				?> " />
                				<br/>
                						message :<input type="text" name="message" /> <br/>
                				<input type="submit" value="Valider" /> 
                						</p>
                			</form>
                		</center>
                	</body>
                </html>
                <?php
                	try
                		{
                			$bdd = new PDO('mysql:host=localhost;dbname=mini_chat', 'root', '');
                		}
                		catch (Exception $e)
                		{
                			die('Erreur : ' . $e->getMessage());
                		}
                			$reponse = $bdd->query('SELECT * FROM chats ORDER BY id DESC LIMIT 0, 10');
                			while ($donnees = $reponse->fetch())
                		{
                			echo $donnees['date']."<strong>".htmlspecialchars($donnees['nom'])."</strong> ".htmlspecialchars($donnees['message'])."<br /></p>" ;
                		}
                	
                		$reponse->closeCursor();
                ?>

                deuxième code source

                <?php
                	setcookie('nom', $_POST['nom'], time() + 365*24*3600, true, true, true, true);
                	try
                		{
                			$bdd = new PDO('mysql:host=localhost;dbname=mini_chat', 'root', '');
                		}
                		catch (Exception $e)
                		{
                			die('Erreur : ' . $e->getMessage());
                		}
                		 
                		$req = $bdd->prepare('INSERT INTO chats(nom, message) VALUES(:nom,:message)');
                		$req->execute(array(
                		'nom' => $_POST['nom'],
                		'message' => $_POST['message'],
                		));
                		 
                		header('Location: connection.php');
                ?>




                • Partager sur Facebook
                • Partager sur Twitter
                  28 mai 2018 à 13:54:48

                  il faut mettre un NOW() dans ta requête d'insertion pour dire que c'est la date de maintenant
                  • Partager sur Facebook
                  • Partager sur Twitter
                    28 mai 2018 à 14:27:42

                    j'ai essaie mais ça ne marche pas?

                    • Partager sur Facebook
                    • Partager sur Twitter
                      28 mai 2018 à 14:40:15

                      Bonjour,

                      Pourriez-vous nous montrer votre table ?

                      -
                      Edité par Max Imus 28 mai 2018 à 14:46:20

                      • Partager sur Facebook
                      • Partager sur Twitter
                        28 mai 2018 à 15:44:30

                        Bonjour,

                        On peut voir la modification avec "NOW()" ?

                        Active les erreurs PDO (cf ma signature)

                        Merci

                        • Partager sur Facebook
                        • Partager sur Twitter
                          28 mai 2018 à 15:50:01

                          En ce qui me concerne dans ma table, j'ai configuré la ligne date avec OUI  pour NULL et CURRENT_TIMESTAMP pour valeur par défaut .

                          -
                          Edité par Max Imus 28 mai 2018 à 16:01:43

                          • Partager sur Facebook
                          • Partager sur Twitter

                          Un mini Chat

                          × 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