Problème dans mon code PHP

Fermé
FlorianJ29 Messages postés 68 Date d'inscription dimanche 22 janvier 2017 Statut Membre Dernière intervention 28 février 2019 - Modifié par FlorianJ29 le 22/02/2017 à 19:55
zucrezel Messages postés 30 Date d'inscription mardi 7 février 2017 Statut Membre Dernière intervention 19 juillet 2017 - 22 févr. 2017 à 20:39
Bonjour,

Je débute dans le PHP. J'aimerais tout simplement que quand je clique sur mon bouton "Envoyer le message", que le script vérifie si le contact existe, et si oui, enregistrer le message dans la base de données MySQL.

J'essayer ceci dans mon navigateur, et ça affiche toujours "Tous les champs doivent être complétés !", savez-vous pourquoi ?

Voici mon script PHP :
if(isset($_POST['envoi'])) {
$contact = htmlspecialchars($_POST['recherche']);

if(!empty($recherche) AND !empty($mon_message)) {
$requser = $bdd->prepare("SELECT * FROM utilisateurs WHERE pseudo = ?");
$requser->execute(array($contact));
$userexist = $requser->rowCount();

if($userexist == 1) {
$userinfo_contact = $requser->fetch();
$_SESSION['id'] = $userinfo_contact['id'];
$_SESSION['nom'] = $userinfo_contact['nom'];
$_SESSION['email'] = $userinfo_contact['email'];
$_SESSION['pseudo'] = $userinfo_contact['pseudo'];
$_SESSION['prenom'] = $userinfo_contact['prenom'];
$id_exp = $userinfo['id'];
$id_des = $userinfo_contact['id'];
$mon_message = htmlspecialchars($_POST['mon_message']);
$insertmbr = $bdd->prepare("INSERT INTO message_envoi(id_exp, id_des, mon_message) VALUES(?, ?, ?)");
$insertmbr->execute(array($id_exp, $id_des, $mon_message));
$erreur = "Message envoyé avec succes !";

} elseif($userexist == 0) {
$erreur = "Contact invalide !";
}

} else {
$erreur = "Tous les champs doivent être complétés !";
}
}


Voici mon code HTML :
<form method = "post" action = "">
<h1>Nouveaux messages</h1>

Choisir un contact :<br>
<input type = "text" name = "recherche" /><br><br>

Envoyer un message :<br>
<input type = "text" name = "mon_message" />
<br><br>
<input type = "submit" name = "envoi" value = "Envoyer le message" />

<?php
if(isset($erreur))
{
echo $erreur;
}
?>
</form>


Merci d'avance
Cordialement
FlorianJ29
A voir également:

2 réponses

zucrezel Messages postés 30 Date d'inscription mardi 7 février 2017 Statut Membre Dernière intervention 19 juillet 2017 4
22 févr. 2017 à 19:57
Tu ne récupères pas les variables $recherche et $mon_message,
$recherche=!empty($_POST['recherche'])?$_POST['recherche']:null;
$mon_message=!empty($_POST['mon_message'])?$_POST['mon_message']:null;
0
FlorianJ29 Messages postés 68 Date d'inscription dimanche 22 janvier 2017 Statut Membre Dernière intervention 28 février 2019 14
22 févr. 2017 à 20:29
Merci beaucoup, le code fonctionne bien !
Mais juste un petit truc qui me dérange...

En actualisant la page, l'erreur "Tout les champs doivent être complétés !" apparaît.
L'utilisateur n'a pas appuyé sur ce bouton, alors que l'erreur s'affiche quand même...

Merci de votre aide.
Cordialement
FlorianJ29
0
zucrezel Messages postés 30 Date d'inscription mardi 7 février 2017 Statut Membre Dernière intervention 19 juillet 2017 4
Modifié par zucrezel le 22/02/2017 à 20:42
Bonjour,
Après ton insert dans la BDD il faudrait faire une redirection vers une autre page ou la page courante, ce qui devrait permettre de vider les variables $_POST.
header('Location: http://www.example.com/tapage.php');
0