[RESOLU] paramètre textarea pour envoie de formulaire

NinitDUT
Invité n'ayant pas de compte PHPfrance

22 janv. 2022, 11:31

Bonjour,

Je suis un étudiant en deuxième année de DUT et dans le carde d'un projets je dois créer un site web avec une page de contact. Mon site web fonctionne très bien juste la page de contact qui ne fonctionne pas pour le moment. C'est notamment pour cette page que j'ai besoin de votre aide !!!!

Pour cette page j'ai besoin de récupérer un email et un message, pour le mail j'ai utilisé un <input> et j'arrive a récupérer cette variable et a l'envoyer dans ma bdd. Pour le Message les choses se complique : j'ai dans un premier temps fait un test avec un <input> sa marchait très bien. Je suis donc passer a un <textarea> pour pouvoir mettre plus de texte et la plus rien ne vas. Je n'arrive pas a récupérer la valeur de ma variable $Message et quand j'essaye d'envoyer sur ma base de donnée un message d'erreur qui dis que ma variable $Message n'est pas déclarer.

J'ai rechercher sur pas mal de site web (openclassroom, develloper.mozilla ...) regarder des formulaire de site web existant et je ne comprends pas pourquoi ma page de contact ne fonctionne pas.

Merci d'avance pour votre aide !!

Je vous joins mon code, page de contact :
<?php
include 'template/menu.php';
?>

<body>
<div class="container">
<h1>Contact</h1>
<p>Si vous avez la moindre question, contactez nous via le formulaire ci dessous</p>
<form action="php/Message.php" method="POST">
<div form="mb-3">
<label for="mail" class="form-label">Email</label><br>
<input type="mail" name="mail"><br>
</div>
<div form="mb-3">
<label for="message" class="form-label">Message</label><br>
<textarea type="text" name="Message" rows="10%" cols="100%" maxlength="300" id="Message">300 caractère max.</textarea>
</div>
<button type="submit" class="btn btn-primary">Envoyer</button>
</form>
<P>Vous pouvez égalemnt nous joindre par mail : </P>
</div>
</body>


page pour qui récupère les information et envoie sur ma base de donnée :
<?php
include '../template/connect.php';

$mail = $_POST["mail"];
$Message = $_POST['Message'];
echo "$mail, $Mesage, ceci est un test";
$data = [
'mail' => $mail,
'Message' => $Message,
];

$sql = "INSERT INTO message (mail, Message) VALUES (:mail, :Message)";
$stmt= $dbh->prepare($sql);
$stmt->execute($data);

?>

Mammouth du PHP | 2703 Messages

22 janv. 2022, 15:10

cette requête exécutée dans phpmyadmin fonctionne ?
INSERT INTO message (mail, Message) VALUES ('mail', 'Message')

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

22 janv. 2022, 16:53

Attention aux fautes de frappes dans ton echo.
Pour débuguer, fait un var_dump($_POST) pour voir tout ce que tu reçoit en POST depuis ton formulaire.

Un conseil, même si ce n'est normalement pas gênant, mais ça peut éviter les problème, évite d'utiliser des majuscules, ça permet degarder une cohérence dans tes noms de variables et donc d'éviter les risque de fautes de frappe.
Quand tout le reste a échoué, lisez le mode d'emploi...