Faire Appraitre un chat après avoir remplir un input et cliker sur ok
- Accueil
- Forum
- Programmation
- PHP
- Faire Appraitre un chat après avoir remplir un input et cliker sur ok
stranger98 Le 11 novembre 2016 à 14:56 (Édité le 25 janvier 2019 à 17:52)
j'ai créer un chat simple avec actualisation automatique jusqu'à la tout va bien,
maintenant je voulais juste faire apparaître le input du pseudo et quand je mets le pseudo et je Click sur ok
et ben ça apparaît le textarea avec le pseudo, pour pouvoir chatter avec mon pseudo.
voila mon code:
<?php
$bdd = new PDO("mysql:host=127.0.0.1;dbname=page", "root", "");
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(?, ?)');
$insertmsg->execute(array($pseudo, $message));
header('Location: chat.php');
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Chat</title>
<meta charset="utf-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
</head>
<body>
<form method="POST" action="">
<input id="pseudo" type="text" placeholder="Pseudo" name="pseudo" value="<?php if(isset($pseudo)) {echo $pseudo;} ?>" /><br>
<textarea id="message" type="text" name="message" placeholder="Message"></textarea><br>
<input type="submit" value="Envoyer" />
</form>
<div id="tout">
<?php
$allmsg = $bdd->query('SELECT * FROM chat ORDER BY id DESC');
while($msg = $allmsg->fetch())
{
?>
<b><?php echo $msg['pseudo']; ?> :</b>
<?php echo $msg['message']; ?><br>
<?php
}
?>
</div>
<script>
setInterval('load_messages()', 2500);
function load_messages()
{
$('#tout').load("load.php");
}
</script>
</body>
</html>
Merci d'avance TheOldNoob Le 11 novembre 2016 à 18:02 (Édité le 1 janvier 1970 à 01:00)
Tu peu faire ça avec les cookies, c'est assez facile a faire. Je te laisse cherché un peu comment on les utilise, si tu galère, tu reviens nous voir 😀
stranger98 Le 11 novembre 2016 à 18:55 (Édité le 1 janvier 1970 à 01:00)
j'ai changé ça :
<?php
$bdd = new PDO("mysql:host=127.0.0.1;dbname=page", "root", "");
setcookie('pseudo',$_POST['pseudo'], time() + 365*24*3600, null, null, false, true);
if(!empty($_POST['pseudo']) AND !empty($_POST['message']))
{
$pseudo = htmlspecialchars(trim($_POST['pseudo']));
$message = htmlspecialchars(trim($_POST['message']));
$insertmsg = $bdd->prepare('INSERT INTO chat(pseudo, message) VALUES(?, ?)');
$insertmsg->execute(array($pseudo, $message));
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Chat</title>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="styl.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
</head>
<body>
<div align="center">
<form method="POST" action="">
<input id="pseudo" type="text" placeholder="Pseudo" name="pseudo" value="<?php if(isset($_COOKIE['pseudo'])) {echo $_COOKIE['pseudo'];} ?>" /><br>
<textarea id="message" type="text" name="message" placeholder="Message"></textarea><br><br>
<input type="submit" value="Envoyer" />
</form>
</div>
<div id="tout" align="center">
<?php
$allmsg = $bdd->query('SELECT * FROM chat ORDER BY id DESC');
while($msg = $allmsg->fetch())
{
?>
<b><?php echo $msg['pseudo']; ?> :</b>
<?php echo $msg['message']; ?><br>
<?php
}
?>
</div>
<script>
setInterval('load_messages()', 2500);
function load_messages()
{
$('#tout').load("load.php");
}
</script>
</body>
</html>
Mais au fait, je voulais que le pseudo deviennent readonly, disabled ou qu'on puisse pas le changer,
genre tu mets ton pseudo et quand tu click sur message et ben ça devient inchangeable automatiquement, je sais pas si c'est avec javascript, php ou css
merci l'ami
TheOldNoob Le 11 novembre 2016 à 19:02 (Édité le 1 janvier 1970 à 01:00)
stranger98 Le 11 novembre 2016 à 19:10 (Édité le 1 janvier 1970 à 01:00)
Mais bon je vois que c'est un peu irréalisable merci de toute façon 😀
Balatharas Le 12 novembre 2016 à 12:09 (Édité le 1 janvier 1970 à 01:00)
Si tu veux mettre le pseudo a saisir sur la meme page que la textarea, qui doit apparaitre une fois le pseudo saisi, alors tu peux utiliser 3 methodes differentes:
- du javascript pour afficher la textarea quand on appuie sur le submit
- Une condition du type: si on a le cookie pseudo, alors on affiche la textarea et une input contenant le pseudo avec l'attribut readonly
- A la fin de ton script php, rajouter un header qui redirige vers la meme page MAIS avec un parametre get: online (ex: tonchat.php puis apres avoir rentré le pseudo: tonchat.php?online)
TheOldNoob Le 12 novembre 2016 à 13:07 (Édité le 1 janvier 1970 à 01:00)
Et biensur, pensé a définir au préalable que la div est en false sinon ça marche pas 😋
Balatharas Le 12 novembre 2016 à 17:48 (Édité le 1 janvier 1970 à 01:00)
J'avais juste oublier de préciser que pour
Il faut aussi afficher la textarea si on a ?online
- A la fin de ton script php, rajouter un header qui redirige vers la meme page MAIS avec un parametre get: online (ex: tonchat.php puis apres avoir rentré le pseudo: tonchat.php?online)