Problème dans mon code PHP
FlorianJ29
Messages postés
68
Date d'inscription
Statut
Membre
Dernière intervention
-
zucrezel Messages postés 30 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 :
Voici mon code HTML :
Merci d'avance
Cordialement
FlorianJ29
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
2 réponses
-
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;
-
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
-
-
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');