Ajouter la date et l'heure pour mini tchat.

Fermé
luluwebmaster Messages postés 409 Date d'inscription mardi 19 février 2013 Statut Membre Dernière intervention 3 février 2018 - 23 mars 2013 à 17:03
luluwebmaster Messages postés 409 Date d'inscription mardi 19 février 2013 Statut Membre Dernière intervention 3 février 2018 - 26 mars 2013 à 11:12
Bonjour a tous,
je rencontre un petit problème avec un formulaire PHP pour afficher une mini tchat.
J'aimerais que l'on vois la date et l'heur a la quelle les messages on etait envoyé, comment faire ?

Voici le code du fichier minichat.php :
<?php setcookie('pseudo', time() + 365*24*3600, null, null, false, true); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Mini-chat</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
 
	     <style>
    form
    {
        text-align:center;
    }
    </style>

	 
    <form action="minichat_post.php" method="post" >
        <p>
        <label for="Pseudo">Pseudo</label> : <input type="text" name="Pseudo" id="Pseudo" /><br />
        <label for="Messages">Message</label> :  <input type="text" name="Messages" id="Messages" /><br />
 
        <input id="envoyer" type="submit" value="Envoyer" />
    </p>
    </form>
 <div id="tchatbox">
<?php
// Connexion à la base de données
try
{
    $bdd = new PDO('mysql:host=localhost;dbname=NOM_BASE_DE_DONNE', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}
 
// Récupération des 10 derniers messages
                        
$reponse = $bdd->query('SELECT Pseudo, Messages FROM minitchat ORDER BY ID DESC LIMIT 0, 100');
 
// Affichage de chaque message (toutes les données sont protégées par htmlspecialchars)
while ($donnees = $reponse->fetch())
{
    echo '<p><center><strong>' . htmlspecialchars($donnees['Pseudo']) . '</strong> : ' . htmlspecialchars($donnees['Messages']) . '</center></p>';
}
 
$reponse->closeCursor();
 
?>
</div>

    </body>
</html>


Et le code du fichier minichat_post.php :
<?php
// Connexion à la base de données
try
{
    $bdd = new PDO('mysql:host=localhost;dbname=NOM_BASE_DE_DONNE', '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 minitchat (Pseudo, Messages) VALUES(?, ?)');
$req->execute(array($_POST['Pseudo'], $_POST['Messages']));
 
// Redirection du visiteur vers la page du minichat
header('Location:minichat.php');
?>


Dans ma base de donnée, j'ai une table contenant :
ID
Messages
Pseudo
Merci d'avance a celui qui sauras me répondre :)

26 réponses

dugenou Messages postés 6087 Date d'inscription mercredi 19 janvier 2005 Statut Contributeur Dernière intervention 30 juillet 2021 1 451
24 mars 2013 à 20:46
Ce champ fait double emploi avec le champ Date qui contient déjà la date et l'heure du message.
0
luluwebmaster Messages postés 409 Date d'inscription mardi 19 février 2013 Statut Membre Dernière intervention 3 février 2018 5
25 mars 2013 à 07:00
Je viens d'enlever tout les maj, voici le nouveau code ( avec le champs heure (H/M) et date (J/M/A)) Voici donc les nouveau codes :
minichat.php :

<?php setcookie('pseudo', time() + 365*24*3600, null, null, false, true); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Mini-chat</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
 
	     <style>
    form
    {
        text-align:center;
    }

    </style>

    <form action="minichat_post.php" method="post">
        <p>
        <label for="Pseudo">Pseudo</label> : <input type="text" name="Pseudo" id="Pseudo" /><br />
        <label for="Messages">Message</label> :  <input type="text" name="Messages" id="Messages" /><br />
 
        <input id="envoyer" type="submit" value="Envoyer" />
    </p>
    </form>

 <div id="tchatbox">
<?php

// Connexion à la base de données
try
{
    $bdd = new PDO('mysql:host=localhost;dbname=luc_mergault', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}
 
// Récupération des 10 derniers messages
                        
$reponse = $bdd->query('SELECT pseudo, messages, date, heure FROM minitchat 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><center><strong>' . htmlspecialchars($donnees['pseudo']) . ' le ' . htmlspecialchars($donnees['date']) . ' à</br> '  . htmlspecialchars($donnees['heure']) . '</strong> : </br>' . htmlspecialchars($donnees['messages']) . '</center></p>';
}
 
$reponse->closeCursor();
 
?>
</div>

    </body>
</html>

minichat_post.php :

<?php
$date = date("d/m/Y"); 
$heure = date("H:i");
// Connexion à la base de données
try
{
    $bdd = new PDO('mysql:host=localhost;dbname=luc_mergault', '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 minitchat (pseudo, messages, date) VALUES(?, ?)'); 
$req->execute(array($_POST['pseudo'], $_POST['messages'], $_POST['date'])); 

 
// Redirection du visiteur vers la page du minichat
header('Location:minichat.php');
?>


ça ne fonctionne toujours pas ..... :(

Voici une image de ma base de donné :
http://nsa33.casimages.com/img/2013/03/25//130325070136389354.png
0
dugenou Messages postés 6087 Date d'inscription mercredi 19 janvier 2005 Statut Contributeur Dernière intervention 30 juillet 2021 1 451
25 mars 2013 à 12:37
Bonjour,

Il faudrait déjà savoir, si les données s'écrivent bien dans la base de données, pour essayer de déterminer à quel moment il y a un problème, si c'est au moment de l'écriture ou au moment de la lecture.

J'ai repris un peu ton code, mais avant de modifier quoi que ce soit, vérifie le contenue de ta base de données.

minichat.php :


<?php setcookie('pseudo', time() + 365*24*3600, null, null, false, true); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
        <title>Mini-chat</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    </head>
    <body>
 
	     <style>
    form
    {
        text-align:center;
    }

    </style>

    <form action="minichat_post.php" method="post">
        <p>
        <label for="Pseudo">Pseudo</label> : <input type="text" name="pseudo" id="pseudo" /><br />
        <label for="Messages">Message</label> :  <input type="text" name="messages" id="messages" /><br />
 
        <input id="envoyer" type="submit" value="Envoyer" />
    </p>
    </form>

 <div id="tchatbox">
<?php

// Connexion à la base de données
try
{
    $bdd = new PDO('mysql:host=localhost;dbname=luc_mergault', 'root', '');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}
 
// Récupération des 10 derniers messages
                        
$reponse = $bdd->query('SELECT pseudo, messages, date, heure FROM minitchat 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><center><strong>' . htmlspecialchars($donnees['pseudo']) . ' le ' . htmlspecialchars($donnees['date']) . ' à</br> '  . htmlspecialchars($donnees['heure']) . '</strong> : </br>' . htmlspecialchars($donnees['messages']) . '</center></p>';
}
 
$reponse->closeCursor();
 
?>
</div>

    </body>
</html>



minichat_post.php :


<?php

empty($_POST['pseudo']) ? $pseudo = '' : $pseudo = $_POST['pseudo'];
empty($_POST['messages']) ? messages = '' : $messages = $_POST['messages'];

$date = date("d/m/Y"); 
$heure = date("H:i");

// Connexion à la base de données
try
{
    $bdd = new PDO('mysql:host=localhost;dbname=luc_mergault', '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 minitchat (pseudo, messages, date) VALUES(?, ?)'); 
$req->execute(array($pseudo, $messages, $date)); 

 
// Redirection du visiteur vers la page du minichat
header('Location:minichat.php');
?>
0
luluwebmaster Messages postés 409 Date d'inscription mardi 19 février 2013 Statut Membre Dernière intervention 3 février 2018 5
25 mars 2013 à 12:51
Le code que tu viens de me donner, ne fonctionne pas, il me met cette erreur après avoir envoyer le message :
( ! ) Parse error: syntax error, unexpected '=' in C:\wamp\www\Luc_Mergault\haut_page\mini_tchat\minichat_post.php on line 4
0
dugenou Messages postés 6087 Date d'inscription mercredi 19 janvier 2005 Statut Contributeur Dernière intervention 30 juillet 2021 1 451
25 mars 2013 à 15:35
C'est normal, il manque le symbole $ devant la variable messages
empty($_POST['messages']) ? messages = '' : $messages = $_POST['messages'];

empty($_POST['messages']) ? $messages = '' : $messages = $_POST['messages'];
0
luluwebmaster Messages postés 409 Date d'inscription mardi 19 février 2013 Statut Membre Dernière intervention 3 février 2018 5
25 mars 2013 à 18:56
Ok, ça ne fonctionne toujours pas ...
Le messages date et heur ne sont pas inscrit dans la base de donné ...
0
dugenou Messages postés 6087 Date d'inscription mercredi 19 janvier 2005 Statut Contributeur Dernière intervention 30 juillet 2021 1 451
25 mars 2013 à 19:16
C'est seulement la date et l'heure qui ne s'enregistrent pas, ou aussi le pseudo et les messages ?

Est-ce qu'il y a un message d'erreur quand tu valides le formulaire ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dugenou Messages postés 6087 Date d'inscription mercredi 19 janvier 2005 Statut Contributeur Dernière intervention 30 juillet 2021 1 451
25 mars 2013 à 19:25
Essaye de le modifier le fichier minichat_post.php de cette manière :


<?php

empty($_POST['pseudo']) ? $pseudo = '' : $pseudo = $_POST['pseudo'];
empty($_POST['messages']) ? messages = '' : $messages = $_POST['messages'];
empty($_GET['date']) ? $date = '' : $date = $_GET['date'];
empty($_GET['heure']) ? $heure = '' : $heure = $_GET['heure'];

$date = date("d/m/Y");
$heure = date("H:i");

// Connexion à la base de données
try
{
$bdd = new PDO('mysql:host=localhost;dbname=luc_mergault', '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 minitchat (pseudo, messages, date, heure) VALUES(?, ?)');
$req->execute(array($pseudo, $messages, $date, $heure));


// Redirection du visiteur vers la page du minichat
header('Location:minichat.php');
?>
0
luluwebmaster Messages postés 409 Date d'inscription mardi 19 février 2013 Statut Membre Dernière intervention 3 février 2018 5
25 mars 2013 à 19:51
Même problème, rien ne s'enregistre dans la BDD.
0
dugenou Messages postés 6087 Date d'inscription mercredi 19 janvier 2005 Statut Contributeur Dernière intervention 30 juillet 2021 1 451
25 mars 2013 à 20:09
Et avant la modification de ton script (celui de ton premier message) pour insérer la date, le pseudo et les messages s'enregistraient bien dans ta base de données ?
0
luluwebmaster Messages postés 409 Date d'inscription mardi 19 février 2013 Statut Membre Dernière intervention 3 février 2018 5
25 mars 2013 à 20:35
Quand il y avait juste la date les message et pseudo, non plus ...
0
dugenou Messages postés 6087 Date d'inscription mercredi 19 janvier 2005 Statut Contributeur Dernière intervention 30 juillet 2021 1 451
25 mars 2013 à 20:46
Non, sans la date, avec le script que tu as mis dans ton premier message.

Le code du fichier minichat_post.php :

<?php
// Connexion à la base de données
try
{
    $bdd = new PDO('mysql:host=localhost;dbname=NOM_BASE_DE_DONNE', '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 minitchat (Pseudo, Messages) VALUES(?, ?)');
$req->execute(array($_POST['Pseudo'], $_POST['Messages']));
 
// Redirection du visiteur vers la page du minichat
header('Location:minichat.php');
?>
0
luluwebmaster Messages postés 409 Date d'inscription mardi 19 février 2013 Statut Membre Dernière intervention 3 février 2018 5
26 mars 2013 à 06:36
Sa ne fonctionne plus, les messages et pseudo ne sont pas enregistré dans la base de donné ....
0
ThEBiShOp Messages postés 8378 Date d'inscription jeudi 22 mars 2007 Statut Contributeur Dernière intervention 8 février 2021 1 566
26 mars 2013 à 08:48
reprends les codes que tu avais donné dans ton tout premier message pour voir si ça fonctionne toujours.

Et un détail important, quand "sa ne fonctionne plus", il faut dire exactement ce qu'il se passe, s'il y a un message d'erreur, il faut absolument le dire, et si au contraire il n'y en a pas, il faut le préciser aussi, on ne risque pas de deviner.
0