bonjour, j'ai besoin d'une aide précieuse car j'ai réaliser mon formulaire de contact mais j'aimerai que lorsque qu'on appuie sur envoyer il me recharge pas la page c'est a dire que le message qui affiche comme quoi le formulaire s'est bien envoyer soit dans mon index donc pas de changement de page. est ce que quelqu'un pourrai m'aider car çà fais 1 heure que je me casse la tete dessus.
Il suffit de faire pointer ton formulaire vers la même page. Et dans ta page tu teste si le formulaire est validé, lequel cas tu envoie le message et tu affiche un message de succès.
quand je point c'est dans l'action que je met ma page ou je veux rester?. vous aurez pas un exemple a me montrer ou j'envoie quel partie de mon code pour que vous m'aidiez?
c'est pas possible si tu enlève le chemin qui va sur ton php rien ne s'envoie si tu n’écris nul pas le chemin vers ton php il va pas le trouver tout seul
j'essaie de faire comme toi aussi mais bon passer par ajax déjà que j'y comprend pas grand choses ...
Peut être un peu de recherche perso, tu récupères un code tout fait sur internet, copier coller et si ça ne marche pas, tu cherches la réponse sur un forum.
Initie toi au php, essaye de coder ce que tu cherches à faire par tes propores moyens, et demande dr l'aide pour un problème précis.
ben j'ai aussi mon code php mais mon probleme c'est quand qu eje clique sur le bouton pôur envoyer le formulaire je veux pas changer de page je veux rester dans ma page index quoi.
voici mon code php
<?php
/*
********************************************************************************************
CONFIGURATION
********************************************************************************************
*/
// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
$destinataire = 'jeremy06660@hotmail.Fr';
// 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=\"index.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é soumis
if (!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']) : '';
$prenom = (isset($_POST['prenom'])) ? Rec($_POST['prenom']) : '';
$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 != '') && ($prenom != '') && ($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.$prenom.' <'.$email.'>' . "\r\n" .
'Reply-To:'.$email. "\r\n" .
'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" .
'Content-Disposition: inline'. "\r\n" .
'Content-Transfer-Encoding: 7bit'." \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
$num_emails = 0;
$tmp = explode(';', $cible);
foreach($tmp as $email_destinataire)
{
if (mail($email_destinataire, $objet, $message, $headers))
$num_emails++;
}
if ((($copie == 'oui') && ($num_emails == 2)) || (($copie == 'non') && ($num_emails == 1)))
{
echo '<p>'.$message_envoye.'</p>';
}
else
{
echo '<p>'.$message_non_envoye.'</p>';
};
}
else
{
// une des 3 variables (ou plus) est vide ...
echo '<p>'.$message_formulaire_invalide.' <a href="index.html">Retour au formulaire</a></p>'."\n";
};
}; // fin du if (!isset($_POST['envoi']))
?>
Si ce dernier est la page index.php alors dans la partie "formulaire non envoyé", tu peux y insérer ton formulaire et changer le "action" de ton form pour te rediriger sur la page index.php (cette page)
j'ai pas trop compris en faire mon site ne contient qu'une page index.html et a la fin de ma page il y le code du formulaire qui est un peu plus heut. quand je clique sur mon bouton pour envoyer le formulaire sur mon mail, une nouvelle page toute blanche s'affiche en affichant le message comme quoi ca s'est envoyer. Or moi je veux que ce message s'affiche en bas du formulaire et en réinitialisent le formulaire c'est a dire que je reste toujours sur ma page index.html c'est comprehensible ou j'explique mieux?
Bon j'arrive après la bataille mais je veux quand même préciser certaines choses.
Beaucoup conseillent l'Ajax, utile lorsque l'on ne veut pas recharger la page. Pourquoi pas, mais une solution beaucoup plus simple est de revenir sur la page où il y avait le formulaire. Sauf mention contraire non précisée par l'OP, cette solution est plus simple à mettre en place.
Si la page de ton formulaire se nomme formulaire.php, alors tu fait pointer ton formulaire vers formulaire.php
Sur cette page, tu teste si un formulaire est envoyé (par exemple en testant si $_POST['quelquechose'] existe). Si c'est le cas, tu envoie le mail et tu affiche le message de succès, sinon tu affiche le formulaire.
ben justement quand je veux afficher mon message comme quoi le formulaire est bien envoyer il s'ouvre sur une nouvelle page et quand je regarde l'URL il y a l'adresse de mon fichier php, ce qui est normal. Mais moi je veux que ce message s'affiche en bas du bouton envoyer et qu'il réinitialise mon formule. Est-ce simple à réaliser?
voici mon code si sa peu t'aider (c'est la page complète) récupère juste ce qu'il te faut le code php au début et la partie formulaire mais a moins tu voie comment ça fonctionne ça ma bien servie .
<?php
/*
********************************************************************************************
CONFIGURATION
********************************************************************************************
*/
// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
$destinataire = 'jeremy06660@hotmail.Fr';
// 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=\"index.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
********************************************************************************************
*/
/*
* 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']) : '';
$prenom = (isset($_POST['prenom'])) ? Rec($_POST['prenom']) : '';
$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 != '') && ($prenom != '') && ($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.$prenom.' <'.$email.'>' . "\r\n" .
'Reply-To:'.$email. "\r\n" .
'Content-Type: text/plain; charset="utf-8"; DelSp="Yes"; format=flowed '."\r\n" .
'Content-Disposition: inline'. "\r\n" .
'Content-Transfer-Encoding: 7bit'." \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
$num_emails = 0;
$tmp = explode(';', $cible);
foreach($tmp as $email_destinataire)
{
if (mail($email_destinataire, $objet, $message, $headers))
$num_emails++;
}
if ((($copie == 'oui') && ($num_emails == 2)) || (($copie == 'non') && ($num_emails == 1)))
{
echo '<p>'.$message_envoye.'</p>';
}
else
{
echo '<p>'.$message_non_envoye.'</p>';
};
}
else
{
// une des 3 variables (ou plus) est vide ...
echo '<p>'.$message_formulaire_invalide.'</p>';
};
?>
et voici mon code jquery:
$(document).ready(function() {
let contactForm = $('form#contact'); // "let" a le même fonctionnement que "var", mais en mieux.
contactForm.on('submit', function(ev) {
ev.preventDefault(); // On empêche le formulaire d'être envoyé au fichier PHP
// On envoie le formulaire nous même de façon asynchrone
$.post({
url: 'contacttest.php', // url définie le fichier qui traitera notre requête
data: contactForm.serialize(), // data récolte les données à envoyer (pour plus d'info sur .serialize() => http://api.jquery.com/serialize/)
success: function(data) { // success définie la fonction à appeler quand la requète se termine avec succès
$('#form-notif').html(data);
},
dataType: 'text' // dataType est le format dans lequel on récupère les données
});
});
});
Activer les erreurs PDO / (julp) htmlspecialchars / FAQ PHP / Pas d'aide par MP
Activer les erreurs PDO / (julp) htmlspecialchars / FAQ PHP / Pas d'aide par MP
Activer les erreurs PDO / (julp) htmlspecialchars / FAQ PHP / Pas d'aide par MP
comme ca?
Activer les erreurs PDO / (julp) htmlspecialchars / FAQ PHP / Pas d'aide par MP
Activer les erreurs PDO / (julp) htmlspecialchars / FAQ PHP / Pas d'aide par MP