18041 sujets
Questions générales et questions de débutants
Après avoir relu tes explications plusieurs fois, je crois bien avoir tout compris !
Je n'ai pas encore cette logique, j'espère bien l'acquérir un jour !
J'ai placé le code php qui inclu cible.php après ma balise </form> pour que mon formulaire reste affiché.
Tout marche nickel ! merci beaucoup ! Merci d'y avoir consacré du temps !
Si tu as encore un peu de temps, est-ce que ça serait possible de m'expliquer cette fonction :
Je n'ai pas encore cette logique, j'espère bien l'acquérir un jour !
J'ai placé le code php qui inclu cible.php après ma balise </form> pour que mon formulaire reste affiché.
Tout marche nickel ! merci beaucoup ! Merci d'y avoir consacré du temps !
Si tu as encore un peu de temps, est-ce que ça serait possible de m'expliquer cette fonction :
function verifieEmail($mail)
{
if (preg_match('/^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$]/i',$mail)) return false;
list ($nom,$domaine) = explode ('@',$mail);
if (getmxrr($domaine,$mxhosts)) return true;
else return false;
}
Uria a écrit :
J'ai placé le code php qui inclu cible.php après ma balise </form> pour que mon formulaire reste affiché.
Que tu fasses l'inclusion avant ou après le formulaire ne change rien pour celui-ci : il sera affiché dans tous les cas. Le seul truc qui va changer, c'est la position du message d'erreur (ou d'information comme quoi tout va bien) qui sera placé avant ou après le formulaire.$
Uria a écrit :
Tout marche nickel ! merci beaucoup ! Merci d'y avoir consacré du temps !
De rien.
Uria a écrit :
Si tu as encore un peu de temps, est-ce que ça serait possible de m'expliquer cette fonction :
function verifieEmail($mail) { if (preg_match('/^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$]/i',$mail)) return false; list ($nom,$domaine) = explode ('@',$mail); if (getmxrr($domaine,$mxhosts)) return true; else return false; }
T'as de la chance, on n'est pas encore prêt pour l'apéro.
Cette fonction provient des FAQ du site php.net.
La fonction preg_match() teste la validité de $mail à l'aide d'une expression régulière (un truc assez complexe qui permet l'analyse d'une chaine de caractère). En gros, on vérifie qu'on a bien un morceau de chaine qui ne contient que des lettres, chiffres, ".", "-", ... suivi d'un "@" suivi d'un autre morceau de chaine qui ne contient que des lettres, chiffres, ".", "-"...
La fonction explode() permet de couper $mail en deux en utilisant le "@" comme séparateur.
La fonction getmxrr() vérifie que le nom de domaine de l'adresse email existe bien.
Amicalement,
Modifié par parsimonhi (04 Jan 2015 - 20:12)
Uria a écrit :
Ok j'ai tout compris !
Quoi non sauf un point , lorsque j'ai placé le code php à rajouter dans ma page contact avant le formulairele formulaire disparaissait totalement. Donc je ne comprends pas pourquoi d'après ton explication.<form>
Hmmm. Bizarre ! Il reste une erreur quelque part.
Est-ce que le message comme quoi la demande a été prise en compte s'affiche bien quand tu mets le include après le formulaire ?
Amicalement,
Bonjour,
Oui, des echos.
Mais avant ça, il faudrait que tu repartes d'un script propre, parce qu'on a fait plein de modifications, et je suspecte une erreur de typo quelque part.
Voilà ce que j'ai comme dernière version, et qui marche chez moi quelque soit l'endroit où je l'inclus (je te conseille de copier cette version-là, de modifier la ligne où tu dois mettre ton email, de re-tester en incluant le script avant le formulaire, puis si ça marche toujours, de re-tester en l'incluant après le formulaire) :
Amicalement
Oui, des echos.
Mais avant ça, il faudrait que tu repartes d'un script propre, parce qu'on a fait plein de modifications, et je suspecte une erreur de typo quelque part.
Voilà ce que j'ai comme dernière version, et qui marche chez moi quelque soit l'endroit où je l'inclus (je te conseille de copier cette version-là, de modifier la ligne où tu dois mettre ton email, de re-tester en incluant le script avant le formulaire, puis si ça marche toujours, de re-tester en l'incluant après le formulaire) :
$s = "";
function verifieEmail($mail)
{
if (preg_match('/^[a-zA-Z0-9_]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$]/i',$mail)) return false;
list ($nom,$domaine) = explode ('@',$mail);
if (getmxrr($domaine,$mxhosts)) return true;
else return false;
}
if (!empty($_POST['nom']) && !empty($_POST['email']) && !empty($_POST['message']))
{
$destinataire = "ton-email@xxx.com";
$sujet = "Demande de contact";
$message = "Nom : ".$_POST['nom']."\r\n";
$message .= "Prenom : ".$_POST['prenom']."\r\n";
$message .= "Adresse email : ".$_POST['email']."\r\n";
$message .= "Message : ".$_POST['message']."\r\n";
$from = $_POST['email'];
if (verifieEmail($from))
{
$entete = 'From: '.$from;
if (mail($destinataire,$sujet,$message,$entete))
{
$s = "Votre demande a été envoyée.";
}
else
{
$s = "Une erreur s'est produite. Votre demande n'a pas été envoyée.";
}
}
else
{
$s = "Votre email est invalide. Votre demande n'a pas été envoyée.";
}
}
else
{
$s = "Vous n'avez pas rempli tous les champs. Votre demande n'a pas été envoyée.";
}
if ($s) echo $s;
Amicalement