Problème dans mon code PHP

FlorianJ29 Messages postés 69 Statut Membre -  
zucrezel Messages postés 30 Statut Membre -
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 Statut Membre 4
 
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 69 Statut Membre 15
 
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 Statut Membre 4
 
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