Salut, j'ai fais un petit système de micropost, mais quand j'essaye d'envoyer un message sur mon mur, il l'envoi sans problème, mais le message ne s'affiche pas tout de suite, je suis obligé de re-actualiser la page encore une fois pour le voir.
C'est assez génant.

<?php
require_once 'inc/db.php';
require_once 'inc/constants.php';
require_once 'inc/functions.php';
logged_only();
if($_SERVER['REQUEST_METHOD'] === 'POST'){
   if(strlen($_POST['new_msg']) > 240){
      $_SESSION['flash']['danger'] = 'Votre message est trop long!';
   }
   $req = $pdo->prepare("INSERT INTO posts SET id_user = ?, message = ?");
   $pdo->exec("SET CHARACTER SET utf8");
   $req->execute([$_SESSION['auth']->id, $_POST['new_msg']]);
}
?>

Si vous avez des idées, faite moi en part!

8 réponses


betaWeb
Réponse acceptée

Viens plutôt sur Discord à ce moment là http://www.grafikart.fr/tchat

Salut,

Tu voudrais que tes posts s'affichent instantanément et sans refresh ?

Yubo
Auteur

Non, juste que des que je cliques sur envoyer, que ça l'affichage après le refresh :/
car la c'est assez bizzare que je sois obligé de refresh pour le voir.
Si tu as ts ou skype, ça sera plus simple pour te montrer ^^

Yubo
Auteur

j'y suis ^^

tu peux le faire en js aussi.

J'ai l'impression que tu listes tes postes avant d'ajouter le nouveau, ce qui explique pourquoi tu ne le voies pas : il n'arrive dans la bdd que après que tu aies affiché tes posts.

Pourquoi pas essayer de mettre un Location header:"ta page"; pour qu'il rafraichisses automatiquement, et ainsi afficher le nouveau message

c'est aussi une solution.