Je rencontre un problème avec la création d'un minichat via php. Je suis en train de suivre actuellement la formation php myadmin, et j'en suis au moment de la création d'un tp mini-chat. J'ai copié/collé la correction pour créer un minichat, j'ai configuré une table avec les accès sur phpmyadmin (id, mdp...). Mais quand j'essaye d'écrire un message sur mon site, rien ne s'affiche. Vous pouvez tester mon site --> mytems.fr
Ps: j'ai accédé à phpmyadmin depuis mon hébergeur (hostinger)
Et pour précisé, je ne suis qu'un débutant dans la matière, soyez indulgent avec moi
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" href="style.css" />
<title>Support</title>
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@100;300&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@500;900&display=swap" rel="stylesheet">
</head>
<style>
form
{
text-align:center;
}
</style>
<body>
<nav>
<h1>MyTems</h1>
<div class="onglets">
<a href="index.html">Accueil</a>
<a href="boutique.html">Commander</a>
<a href="recrutement.html">Recrutement</a>
<a href="support.php">Support</a>
</nav>
<form action="minichat_post.php" method="post">
<p>
<label for="pseudo">Pseudo</label> : <input type="text" name="pseudo" id="pseudo" /><br />
<label for="message">Message</label> : <input type="text" name="message" id="message" /><br />
<input type="submit" value="Envoyer" />
</p>
</form>
<?php
// Connexion à la base de données
try
{
$bdd = new PDO('mysql:host=localhost;dbname=u557670816_chat;charset=utf8', '**********', '********');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
// Récupération des 10 derniers messages
$reponse = $bdd->query('SELECT pseudo, message FROM minichat 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['pseudo']) . '</strong> : ' . htmlspecialchars($donnees['message']) . '</p>';
}
$reponse->closeCursor();
?>
</body>
</html>
Et voila le code pour la page d'envoi à la base de donnée :
<?php
// Connexion à la base de données
try
{
$bdd = new PDO('mysql:host=localhost;dbname=u557670816_chat;charset=utf8', '**********', '*******');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
// Insertion du message à l'aide d'une requête préparée
$req = $bdd->prepare('INSERT INTO minichat (pseudo, message) VALUES(?, ?)');
$req->execute(array($_POST['pseudo'], $_POST['message']));
// Redirection du visiteur vers la page du minichat
header('Location: support.php');
?>
Je ne sais pas si les erreurs pdo sont bien activées, mais quand j'ouvre la page, ce message s'affiche "Erreur : SQLSTATE[HY000] [1045] Access denied for user 'u55*************'@'localhost' (using password: YES)". C'est peut être depuis que j'ai changé mon mdp.
Ps: Il y a plusieurs choses que je ne comprends pas sur les base de données. Par exemple, dois-je utiliser le logiciel "wanp" "xamp" ou quelque chose comme ça ? Et quand j'ouvre ma bdd mysql, dans l'url doit-il être écrit "localhost"? Car dans pas mal de tuto que j'ai visionné, "localhost" était présent dans l'url.
Encore une fois je débute vraiment dans ce domaine.
>> Et autre petite question concernant l'html et le css,
C'est une problématique par sujet. Il y a un forum HTML/CSS pour ces questions.
Pour moi c'est identique => 87 lignes de code de chaque coté.
Problème pendant tp minichat
× 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.
Activer les erreurs PDO / (julp) htmlspecialchars / FAQ PHP / Pas d'aide par MP