Ajoter une date au mini-tchat
- Accueil
- Forum
- Programmation
- PHP
- Ajoter une date au mini-tchat
stranger98 Le 17 septembre 2016 à 20:45 (Édité le 25 janvier 2019 à 17:52)
voici le code:
<?php
session_start();
$bdd = new PDO("mysql:host=127.0.0.1;dbname=tuto", "root", "");
if(isset($_GET['id']) AND $_GET['id'] > 0)
{
$getid = intval($_GET['id']);
$requser = $bdd->prepare('SELECT * FROM membres WHERE id = ?');
$requser->execute(array($getid));
$userinfo = $requser->fetch();
if(empty($_SESSION['id']))
{
header('Location: chat_connexion.php');
}
if(isset($_POST['Pseudo']) AND isset($_POST['Message']) AND !empty($_POST['Pseudo']) AND
!empty($_POST['Message']))
{
$pseudo = htmlspecialchars($_POST['Pseudo']);
$message = htmlspecialchars($_POST['Message']);
$insertmsg = $bdd->prepare('INSERT INTO chat(pseudo, message) VALUES (?, ?)');
header('Location: chat.php?id='.$_SESSION['id']);
$insertmsg->execute(array($pseudo, $message));
}
?>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="stylechat.css">
<meta charset="utf-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<title>Zone The Walking Dead</title>
</head>
<body>
<?php include("../Inclusions/image.php") ?>
<?php include("../Inclusions/menu.php") ?>
<table cellspacing="0" cellpadding="0" align="center">
<td height="1500">
<div id="table">
<table width="600" cellspacing="0" cellpadding="0" align="center">
<td bgcolor="#54542c" height="1500" valign="top">
<div id="titre">
<p>
Tchat ZoneTWD
</p>
</div>
<div id="deconnexion"><a href="chat_deconnexion.php">Se deconnecter</a></div>
<form method="post" action="">
<input type="text" name="Pseudo" placeholder="PSEUDO" readonly="readonly" class="pseudo"
value="<?php echo $_SESSION['pseudo']; ?>"</input><br>
<textarea type="text" name="Message" class="message"></textarea><br>
<input type="submit" value="Envoyer" class="envoyer">
</form>
<div id="messages">
<?php
$allmsg = $bdd->query('SELECT * FROM chat ORDER BY id DESC LIMIT 0,15');
while ($msg = $allmsg->fetch())
{
?>
<div class="boite">
<b><?php echo $msg['pseudo']; ?> : </b>
<?php echo $msg['message']; ?><br>
</div>
<?php
}
?>
</div>
</td>
</table>
</div>
</td>
</table>
<?php include("../Inclusions/footer.php") ?>
<script>
setInterval('load_messages()', 2000);
function load_messages() {
$('#messages').load("load_messages.php");
}
</script>
</body>
</html>
<?php
}
?>
merci TheOldNoob Le 17 septembre 2016 à 20:59 (Édité le 1 janvier 1970 à 01:00)
C'est franchement pas compliquer.
Dans ta base de donnée, tu va ajouter après pseudo et message un nouveau champ que tu va appeler par exemple : "date_add"
Pour le remplir se champ, tu va utilisé l'attribut NOW() qui défini la date au moment ou l'entré dans la bdd se fait, c'est a dire maintenantn.
Après, tu fait un affichage du champ comme tu le fait pour les autres champs. Seul petit problème que tu va rencontré, c'est que l'affichage de base se fait en US.
Je ferais donc ça pour un affichage de la date au format français :
$allmsg = $bdd->query('SELECT pseudo, message, DATE_FORMAT(date_add, "%d-%m-%Y à %Hh%i") AS date FROM chat ORDER BY date_add DESC');
while ($msg = $allmsg->fetch()){ ?>
<a><?php echo $msg['date'];?></a>
<b style="font-size:1.4rem; color: white;"><?php echo $msg['pseudo'];?> : </b>
<a style="font-size:1.2rem; color: white;"><?php echo $msg['message']; ?></a><br>
Balatharas Le 17 septembre 2016 à 21:11 (Édité le 1 janvier 1970 à 01:00)
Elle permet d'afficher par exemple: "Samedi 17 Septembre 2016"
Celle ci est vraiment très différente, et permet de ne pas se casser la tête avec le formatage via SQL ou strftime en PHP.
Tu va créer un champ jour ou date_chat (pas date tout court, ce nom est réservé par MySql) de type text (ne m'engueule pas @TheHoldNoob xD)
Et avant l'insertion tu met:
$nom_jour_fr = array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi");
$mois_fr = array("", "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre");
list($nom_jour, $jour, $mois, $annee) = explode('/', date("w/d/n/Y"));
$jour = htmlspecialchars($nom_jour_fr[$nom_jour].' '.$jour.' '.$mois_fr[$mois].' '.$annee);
Tu n'a pas besoin de toucher à tout ça
Ensuite à l'insertion tu met tout simplement:
$insertmsg = $bdd->prepare('INSERT INTO chat(pseudo, message, jour/*, heure*/) VALUES (?, ?, ?/*, ?*/)');
$insertmsg->execute(array($pseudo, $message, $jour/*, $heure*/));
header('Location: chat.php?id='.$_SESSION['id']);
Bon je sais que certains vont s'arracher les yeux en voyant que je lui propose de caser la date et l'heure dans deux champs différents, mais chacun sa méthode 😋.
Beignet
TheOldNoob Le 17 septembre 2016 à 21:20 (Édité le 1 janvier 1970 à 01:00)
ahahah, non, c'est une bonne méthode pour avoir une date en français, qui est souvent utilisé en plus. Donc je te tapperais pas pour cette fois, ni la prochaine d'ailleurs, je suis passifiste 😀
stranger98 Le 17 septembre 2016 à 21:41 (Édité le 1 janvier 1970 à 01:00)
Merci de m'avoir repondre est-ce que tu pourrais l'ajouter a mon code stp parceque j'arrive pas a comprendre
TheOldNoob Le 17 septembre 2016 à 21:49 (Édité le 1 janvier 1970 à 01:00)
:)
Je t'aide un peu plus précisement.
Dans ta base de donnée, tu rajoute un champ date_add qui sera un DATETIME. Jusque la, j'espère que tu y arrive seul, parce que je peu pas le faire a ta place !
Ensuite, sur ta ligne 19, tu rajoute après le champs pseudo et le champs message, le nouveau champ que tu viens de créer, n'oublie pas de rajouter un ? egalement pour avoir 3 nous de champs et 3 entrés 😀
Puis, tu remplace ta ligne 55 par ma ligne 1
Pour finir, tu rajoute la date comme tu l'a déjà fait avec le pseudo et le message dans ta div boite 😉
Voilà, je pense pas pouvoir faire plus claire.
stranger98 Le 17 septembre 2016 à 21:58 (Édité le 1 janvier 1970 à 01:00)
stranger98 Le 17 septembre 2016 à 22:15 (Édité le 1 janvier 1970 à 01:00)
TheOldNoob Le 17 septembre 2016 à 22:32 (Édité le 1 janvier 1970 à 01:00)
C'est ma faute, désoler 😉
stranger98 Le 17 septembre 2016 à 22:45 (Édité le 1 janvier 1970 à 01:00)
J'ai pas compris, ou est-ce que je dois mettre now(), pourquoi la date est en 00-0000 et pourquoi il s'envoi plu
TheOldNoob Le 17 septembre 2016 à 22:47 (Édité le 1 janvier 1970 à 01:00)
$insertmsg = $bdd->prepare('INSERT INTO chat(pseudo, message, date_add) VALUES (?, ?, NOW())');
stranger98 Le 17 septembre 2016 à 22:57 (Édité le 1 janvier 1970 à 01:00)
et non plus les date
TheOldNoob Le 17 septembre 2016 à 22:59 (Édité le 1 janvier 1970 à 01:00)
stranger98 Le 18 septembre 2016 à 14:05 (Édité le 1 janvier 1970 à 01:00)
<?php
session_start();
$bdd = new PDO("mysql:host=127.0.0.1;dbname=tuto", "root", "");
if(isset($_GET['id']) AND $_GET['id'] > 0)
{
$getid = intval($_GET['id']);
$requser = $bdd->prepare('SELECT * FROM membres WHERE id = ?');
$requser->execute(array($getid));
$userinfo = $requser->fetch();
$nom_jour_fr = array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi");
$mois_fr = array("", "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août",
"Septembre", "Octobre", "Novembre", "Décembre");
list($nom_jour, $jour, $mois, $annee) = explode('/', date("w/d/n/Y"));
if(empty($_SESSION['id']))
{
header('Location: chat_connexion.php');
}
if(isset($_POST['Pseudo']) AND isset($_POST['Message']) AND !empty($_POST['Pseudo']) AND
!empty($_POST['Message']))
{
$pseudo = htmlspecialchars($_POST['Pseudo']);
$message = htmlspecialchars($_POST['Message']);
$jour = htmlspecialchars($nom_jour_fr[$nom_jour].' '.$jour.' '.$mois_fr[$mois].' '.$annee);
$insertmsg = $bdd->prepare('INSERT INTO chat(pseudo, message, jour) VALUES (?, ?, ?)');
$insertmsg->execute(array($pseudo, $message, $jour));
header('Location: chat.php?id='.$_SESSION['id']);
}
?>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="stylechat.css">
<meta charset="utf-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<title>Zone The Walking Dead</title>
</head>
<body>
<?php include("../Inclusions/image.php") ?>
<?php include("../Inclusions/menu.php") ?>
<table cellspacing="0" cellpadding="0" align="center">
<td height="1500">
<div id="table">
<table width="600" cellspacing="0" cellpadding="0" align="center">
<td bgcolor="#54542c" height="1500" valign="top">
<div id="titre">
<p>
Tchat ZoneTWD
</p>
</div>
<div id="deconnexion"><a href="chat_deconnexion.php">Se deconnecter</a></div>
<form method="post" action="">
<input type="text" name="Pseudo" placeholder="PSEUDO" readonly="readonly"
class="pseudo" value="<?php echo $_SESSION['pseudo']; ?>"</input><br>
<textarea type="text" name="Message" class="message"></textarea><br>
<input type="submit" value="Envoyer" class="envoyer">
</form>
<div id="messages">
<?php
$allmsg = $bdd->query('SELECT * FROM chat ORDER BY id DESC LIMIT 0,15');
while ($msg = $allmsg->fetch())
{
?>
<div class="boite">
<a class="label"><?php echo $msg['pseudo']; ?> le <?php echo $msg['jour'];?> : </a><br>
<p style="margin:15px; font-size:20px; font-family:calibri;"><?php echo $msg['message']
; ?></p><br>
</div>
<?php
}
?>
</div>
</td>
</table>
</div>
</td>
</table>
<?php include("../Inclusions/footer.php") ?>
<script>
setInterval('load_messages()', 2000);
function load_messages() {
$('#messages').load("load_messages.php");
}
</script>
</body>
</html>
<?php
}
?>
Balatharas Le 18 septembre 2016 à 14:19 (Édité le 1 janvier 1970 à 01:00)
$heure = strftime("%H:%M:%S");
MAIS si tu es sur Hostinger et que tu vois, que, l'heure affiche 2 heures de retard, ajoute ceci au lieu du code de là haut:
$heure = strftime("%H:%M:%S",strtotime("+2 hours"));
Dans ta bdd tu as juste a ajouter un champ heure de type time, et je te laisse adapter l'insertion. stranger98 Le 18 septembre 2016 à 15:31 (Édité le 1 janvier 1970 à 01:00)
quand j’écris un long message, il depasse le cadre, je vais te mettre un exemple en photo:
le code:
<?php
session_start();
$bdd = new PDO("mysql:host=127.0.0.1;dbname=tuto", "root", "");
if(isset($_GET['id']) AND $_GET['id'] > 0)
{
$getid = intval($_GET['id']);
$requser = $bdd->prepare('SELECT * FROM membres WHERE id = ?');
$requser->execute(array($getid));
$userinfo = $requser->fetch();
$nom_jour_fr = array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi");
$mois_fr = array("", "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août",
"Septembre", "Octobre", "Novembre", "Décembre");
list($nom_jour, $jour, $mois, $annee) = explode('/', date("w/d/n/Y"));
if(empty($_SESSION['id']))
{
header('Location: chat_connexion.php');
}
if(isset($_POST['Pseudo']) AND isset($_POST['Message']) AND !empty($_POST['Pseudo']) AND
!empty($_POST['Message']))
{
$pseudo = htmlspecialchars($_POST['Pseudo']);
$message = htmlspecialchars($_POST['Message']);
$jour = htmlspecialchars($nom_jour_fr[$nom_jour].' '.$jour.' '.$mois_fr[$mois].' '.$annee);
$heure = strftime("%H:%M:%S", strtotime("+2 hours"));
$insertmsg = $bdd->prepare('INSERT INTO chat(pseudo, message, jour, heure) VALUES (?, ?, ?, ?)');
$insertmsg->execute(array($pseudo, $message, $jour, $heure));
header('Location: chat.php?id='.$_SESSION['id']);
}
?>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="stylechat.css">
<meta charset="utf-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<title>Zone The Walking Dead</title>
</head>
<body>
<?php include("../Inclusions/image.php") ?>
<?php include("../Inclusions/menu.php") ?>
<table cellspacing="0" cellpadding="0" align="center">
<td height="1500">
<div id="table">
<table width="600" cellspacing="0" cellpadding="0" align="center">
<td bgcolor="#54542c" height="1500" valign="top">
<div id="titre">
<p>
Tchat ZoneTWD
</p>
</div>
<div id="deconnexion"><a href="chat_deconnexion.php">Se deconnecter</a></div>
<form method="post" action="">
<input type="text" name="Pseudo" placeholder="PSEUDO" readonly="readonly"
class="pseudo" value="<?php echo $_SESSION['pseudo']; ?>"</input><br>
<textarea type="text" name="Message" class="message"></textarea><br>
<input type="submit" value="Envoyer" class="envoyer">
</form>
<div id="messages">
<?php
$allmsg = $bdd->query('SELECT * FROM chat ORDER BY id DESC LIMIT 0,15');
while ($msg = $allmsg->fetch())
{
?>
<div class="boite">
<a class="label"><?php echo $msg['pseudo']; ?> le <?php echo $msg['jour'];?>
<?php echo $msg['heure'];?> : </a><br>
<p style="margin:15px; font-size:20px; font-family:calibri;"><?php echo $msg['message']
; ?></p><br>
</div>
<?php
}
?>
</div>
</td>
</table>
</div>
</td>
</table>
<?php include("../Inclusions/footer.php") ?>
<script>
setInterval('load_messages()', 2000);
function load_messages() {
$('#messages').load("load_messages.php");
}
</script>
</body>
</html>
<?php
}
?>
body {
background-image: url(http://images4.alphacoders.com/165/165394.jpg);
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
overflow-x: hidden;
margin: 0;
padding: 0;
}
body, a:hover {cursor: url(http://cur.cursors-4u.net/holidays/hol-1/hol31.cur), progress !important;}
nav {
min-width: 1200px;
height: 70px;
background-color: #424558;
}
nav ul {
margin: 0;
padding: 0;
list-style: none;
font-size: 0;
text-align:center;
}
nav li {
display:inline-block;
position:relative;
}
nav li li {
display:block;
}
nav a {
display:block;
width:150px;
height:30px;
font-size:25px;
padding: 20px 30px;
color:#fff;
font-family: Cooper Black, Franklin Gothic Heavy, Calibri;
text-decoration:none;
cursor: pointer;
}
nav > ul >li {
position: relative;
}
nav li ul {
left:-4000px;
position:absolute;
}
nav li:hover > ul {
left: 0;
}
nav li li:hover > ul {
left: 210px;
top: 0;
}
.menu:hover {
border-top: 5px solid #BBB;
padding: 15px 30px 20px 30px;
}
.sous-menu {
background-color: #33331a;
font-size: 20px;
height: 20px;
border-bottom: 1px solid #FFF;
}
.sous-menu:hover {
background-color: #54542b;
}
.sousmenu {
background-color: RGB(230, 100, 40);
color: #000000;
font-size: 17px;
height: 10px;
}
.sousmenu:hover {
background-color: #FFF;
}
#table {
float: left;
border-right: black solid 5px;
border-left: black solid 5px;
border-bottom: black solid 5px;
}
#titre {
text-align: center;
font-family: arial black;
font-size: 40px;
}
#deconnexion {
text-align: right;
font-size: 25px;
text-decoration:none;
color: #0078d7;
font-family: calibri;
margin-bottom: 10px;
}
#deconnexion a {
text-decoration:none;
}
#deconnexion:hover a {
color: grey;
}
.pseudo {
width: 620px;
height: 30px;
text-align:center;
font-family: calibri;
font-size: 30px;
}
.message {
width: 620px;
height: 250px;
}
.envoyer {
background-color: red;
width: 625px;
height: 40px;
margin-bottom: 30px;
border-radius: 8px;
cursor: pointer;
font-family: impact;
font-size: 20px;
}
.envoyer:hover {
background-color: #4CAF50;
color: white;
}
.boite {
border-bottom: 2px solid grey;
width: 600px;
margin-left: 10px;
background-color: white;
}
.label {
font-family: segoe print, segoe script, calibri;
font-size: 15px;
margin: 15px;
}
.footer {
width: 100%;
height: 50px;
background-color: #54542c;
margin-top: 50px;
border-top: black solid 5px;
}
TheOldNoob Le 18 septembre 2016 à 15:39 (Édité le 18 septembre 2016 à 15:40)
Je t'invite a lire cette article d'Alsacréation qui va t'aider a choisir comment reglé ton problème.
Parce que oui, tu a de la chance, il y a plusieurs solutions 😀
http://www.alsacreations.com/tuto/lire/1038-gerer-debordement-contenu-et-cesures-css.html
stranger98 Le 18 septembre 2016 à 16:02 (Édité le 1 janvier 1970 à 01:00)
je vais le mettre en resolu
TheOldNoob Le 18 septembre 2016 à 16:27 (Édité le 1 janvier 1970 à 01:00)