A voir également:
- Petit bête PHP
- Easy php - Télécharger - Divers Web & Internet
- Petit colis distribution - Forum Réseaux sociaux
- Petit 1 comme ² ✓ - Forum Windows
- Excel trier du plus grand au plus petit - Guide
- Petit 3 ✓ - Forum Word
2 réponses
jordane45
Messages postés
38288
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
15 novembre 2024
4 703
10 juin 2020 à 12:32
10 juin 2020 à 12:32
Bonjour,
Avant tout, il faut correctement écrire ton code...
Les fonctions ne se placent pas dans le IF .. mais en dehors ( au début du code par exemple )
Il faut également activer l'affichage des erreurs PHP ( ce qui aurait montrer une erreur à la ligne 71 )
De plus, la norme veut que les IF / ELSE .. s'écrivent de cette façon ( l'accoloade en bout de ligne )
et même pour un if avec une seule ligne de code à exécuter... utiliser les accolades évite d'éventuelles futures erreurs.
Bref, ton code corrigé devrait ressembler à ça
Et pour en revenir à ton message d'erreur... et bien c'est qu'il entre dans le IF ....
Donc, ta variable $_POST['envoi'] n'existe pas.
L'as tu bien mis dans ton formulaire ?
As tu bien précisé la méthode POST ?
Il serait bien de nous montrer le code de ton formulaire.
Avant tout, il faut correctement écrire ton code...
Les fonctions ne se placent pas dans le IF .. mais en dehors ( au début du code par exemple )
Il faut également activer l'affichage des erreurs PHP ( ce qui aurait montrer une erreur à la ligne 71 )
De plus, la norme veut que les IF / ELSE .. s'écrivent de cette façon ( l'accoloade en bout de ligne )
if (condition ) { // si condition vraie } else { // si condition fausse }
et même pour un if avec une seule ligne de code à exécuter... utiliser les accolades évite d'éventuelles futures erreurs.
Bref, ton code corrigé devrait ressembler à ça
<?php // Affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); // Fonctions function Rec($text) { $text = htmlspecialchars(trim($text), ENT_QUOTES); if (1 === get_magic_quotes_gpc()) { $text = stripslashes($text); } $text = nl2br($text); return $text; }; 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; } $destinataire = '***@***'; $copie = 'oui'; $message_envoye = "Votre message nous est bien parvenu, l'équipe vous répondera le plus vite possible !"; $retour_accueil = "Pour revenir à <a href=\"Accueil.html\">l'accueil</a>"; $message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP."; $message_erreur_formulaire = "Vous devez d'abord <a href=\"contact.html\">envoyer et remplir le formulaire</a>."; $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis et que l'email soit sans erreur."; if (!isset($_POST['envoi'])) { echo '<p>'.$message_erreur_formulaire.'</p>'."\n"; // si tu arrives là... c'est que la variable POST envoi n'existe pas ! // }else { $nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : ''; $mail = (isset($_POST['mail'])) ? Rec($_POST['mail']) : ''; $objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : ''; $message = (isset($_POST['message'])) ? Rec($_POST['message']) : ''; $mail = (IsEmail($mail)) ? $mail : ''; if (($nom != '') && ($mail != '') && ($objet != '') && ($message != '')) { $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'From:'.$nom.' <'.$mail.'>' . "\r\n" . 'Reply-To:'.$mail. "\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(); if ($copie == 'oui'){ $cible = $destinataire.';'.$mail; } else{ $cible = $destinataire; } $caracteres_speciaux = array("'", "’", '"', '<br>', '<br />', '<', '>', '&','…',"’", "‘"); $caracteres_remplacement = array("'","'",'"','','', '<', '>','&','...', '>>','<<'); $objet = str_replace($caracteres_speciaux, $caracteres_remplacement, $objet); $message = str_replace($caracteres_speciaux, $caracteres_remplacement, $message); $num_emails = 0; $tmp = explode(';', $cible); foreach($tmp as $mail_destinataire) { if (mail($mail_destinataire, $objet, $message, $headers)) { $num_emails++; } } if ((($copie == 'oui') && ($num_emails == 2)) || (($copie == 'non') && ($num_emails == 1))){ echo '<p>'.$message_envoye.'</p>'; echo '<p>'.$retour_accueil.'</p>'."\n"; } else { echo '<p>'.$message_non_envoye.'</p>'; } } else { echo '<p>'.$message_formulaire_invalide.' <a href="contact.html">Retour au formulaire</a></p>'."\n"; }; }; ?>
Et pour en revenir à ton message d'erreur... et bien c'est qu'il entre dans le IF ....
Donc, ta variable $_POST['envoi'] n'existe pas.
L'as tu bien mis dans ton formulaire ?
As tu bien précisé la méthode POST ?
Il serait bien de nous montrer le code de ton formulaire.