Redirection formulaire de contact

Fermé
débutantprog - 22 avril 2015 à 14:46
VlkPr3s Messages postés 235 Date d'inscription vendredi 30 mai 2014 Statut Membre Dernière intervention 27 juin 2016 - 23 avril 2015 à 17:10
Bonjour,
J'utilise un formulaire de contact PHP trouvé le net. J'aimerais que, une fois le formulaire rempli, l'utilisateur soit redirigé vers une page. Dans le script original, un simple message s'affiche :

// Messages de confirmation du mail
$message_envoye = "Votre message nous est bien parvenu !";
$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP.";


Pouvez vous m'aider à remplacer ce message par une redirection ?

Merci d'avance !

5 réponses

VlkPr3s Messages postés 235 Date d'inscription vendredi 30 mai 2014 Statut Membre Dernière intervention 27 juin 2016 130
22 avril 2015 à 14:54
Je pense qu'avec un vrai formulaire ça irais ;)

if(!empty($_POST['Mail'])
{
header('Location:pageconfirmantlenvoisdumessage.php');
}
else
{
echo "Champs non remplis"
}

<form method="post" action="cettepage.php" class="login">
<p>
<label for="login">Email:</label>
<input type="text" name='Mail'>
</p>

<p class="login-submit">
<button type="submit" class="login-button">Se connecter'</button>
</p>
</form>


0
débutantprog
22 avril 2015 à 15:06
Salut,
Désolé mais je débute en prog et ne comprends pas ta réponse...
Le formulaire complet se trouve ici :
http://www.php-astux.info/script-formulaire-contact.php

Je n'ai copié que l'extrait qui concerne les effets de l'envoi du formulaire.
Merci de ton aide ! :)
0
VlkPr3s Messages postés 235 Date d'inscription vendredi 30 mai 2014 Statut Membre Dernière intervention 27 juin 2016 130
22 avril 2015 à 15:13
tu crée un formulaire c'est ce que j'ai fais via form method, on définit le formulaire en post.

On lui donne une action c'est à dire vers quelle page on va se rediriger à savoir soit celle actuelle soit une autre.

la class est optionnel cela permet juste de mettre en forme via le css ton formulaire.

<p> définit un nouveau paragraphe
<label for="login"> définit un style aussi niveau css
donc tu peux très bien faire simplement
<label>Email<label>

input est le type d'élément que tu stockes dans ton formulaire à savoir ici du texte et son nom est celui que tu vas tester ensuite pour voir si le champ est vide ou non.

Le reste permet juste de fournir un bouton d'envois de mail .
0
débutantprog
22 avril 2015 à 17:15
J'ai un formulaire html en bon et due forme, avec tous les champs, etc.
J'ai remplacé ces lignes de mon script (ce qui est en GRAS seulement) :
// Envoi du mail
if (mail($cible, $objet, $message, $headers))
{
echo '<p>'.$message_envoye.'</p>'."\n";
}

par celles là du tien :

if(!empty($_POST['Mail'])
{
header('Location:index.php');
}


Mais ça ne marche pas :(. Des suggestions ? J'aimerais juste que le message de succès soit remplacé par une redirection...
0
VlkPr3s Messages postés 235 Date d'inscription vendredi 30 mai 2014 Statut Membre Dernière intervention 27 juin 2016 130
22 avril 2015 à 17:20
Poste ton formulaire stp Merci ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
débutantprog
23 avril 2015 à 14:16
Mon formulaire :
Code PHP :
<?php
/*
                                                                                                                                                                                        • CONFIGURATION *********************************************************************************************/// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule$destinataire = '***@***'; // copie ? (envoie une copie au visiteur)$copie = 'oui'; // 'oui' ou 'non' // Messages de confirmation du mail$message_envoye = "Votre message nous est bien parvenu !";$message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP."; // Messages d'erreur du formulaire$message_erreur_formulaire = "Vous devez d'abord <a href=\"contact.html\">envoyer le formulaire</a>.";$message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur."; /* ******************************************************************************************** FIN DE LA CONFIGURATION *********************************************************************************************/ // on teste si le formulaire a été soumisif (!isset($_POST['envoi'])){ // formulaire non envoyé echo '<p>'.$message_erreur_formulaire.'</p>'."\n";}else{ /* * cette fonction sert à nettoyer et enregistrer un texte */ function Rec($text) { $text = htmlspecialchars(trim($text), ENT_QUOTES); if (1 === get_magic_quotes_gpc()) { $text = stripslashes($text); } $text = nl2br($text); return $text; }; /* * Cette fonction sert à vérifier la syntaxe d'un email */ function IsEmail($email) { $value = preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $email); return (($value === 0) || ($value === false)) ? false : true; } // formulaire envoyé, on récupère tous les champs. $nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : ''; $email = (isset($_POST['email'])) ? Rec($_POST['email']) : ''; $objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : ''; $message = (isset($_POST['message'])) ? Rec($_POST['message']) : ''; // On va vérifier les variables et l'email ... $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré if (($nom != '') && ($email != '') && ($objet != '') && ($message != '')) { // les 4 variables sont remplies, on génère puis envoie le mail $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'From:'.$nom.' <'.$email.'>' . "\r\n" . 'Reply-To:'.$email. "\r\n" . 'X-Mailer:PHP/'.phpversion(); // envoyer une copie au visiteur ? if ($copie == 'oui') { $cible = $destinataire.','.$email; } else { $cible = $destinataire; }; // Remplacement de certains caractères spéciaux $message = str_replace("'","'",$message); $message = str_replace("’","'",$message); $message = str_replace(""",'"',$message); $message = str_replace('<br>','',$message); $message = str_replace('<br />','',$message); $message = str_replace("<","<",$message); $message = str_replace(">",">",$message); $message = str_replace("&","&",$message); // Envoi du mail if (mail($cible, $objet, $message, $headers)) { echo '<p>'.$message_envoye.'</p>'."\n"; } else { echo '<p>'.$message_non_envoye.'</p>'."\n"; }; } else { // une des 3 variables (ou plus) est vide ... echo '<p>'.$message_formulaire_invalide.' <a href="contact.html">Retour au formulaire</a></p>'."\n"; };}; // fin du if (!isset($_POST['envoi']))?>


HTML:
<form id="contact" method="post" action="traitement_formulaire.php">
<fieldset><legend>Vos coordonnées</legend>
<p><label for="nom">Nom :</label><input type="text" id="nom" name="nom" tabindex="1" /></p>
<p><label for="email">Email :</label><input type="text" id="email" name="email" tabindex="2" /></p>
</fieldset>

<fieldset><legend>Votre message :</legend>
<p><label for="objet">Objet :</label><input type="text" id="objet" name="objet" tabindex="3" /></p>
<p><label for="message">Message :</label><textarea id="message" name="message" tabindex="4" cols="30" rows="8"></textarea></p>
</fieldset>

<div style="text-align:center;"><input type="submit" name="envoi" value="Envoyer le formulaire !" /></div>
</form>
0
VlkPr3s Messages postés 235 Date d'inscription vendredi 30 mai 2014 Statut Membre Dernière intervention 27 juin 2016 130
23 avril 2015 à 17:10
Oula ... c'est quoi toutes ces lignes de code pour rien ... au final je vois pas ce qui se passe dans ton php ... mais bon coté html pour ton formulaire c'est plus clair le mien .. si tu respectes ce que je t'avais publié au départ tu auras ton résultat.

tu récupères la variable post envoyé pour voir si elle contient quelque chose et si c'est le cas tu fais un header vers une autre page.
0