Contact [PHP] erreurs !
Fermé
bg62
Messages postés
23663
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
8 décembre 2024
-
4 mars 2008 à 14:36
bg62 Messages postés 23663 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 8 décembre 2024 - 6 mars 2008 à 17:03
bg62 Messages postés 23663 Date d'inscription samedi 22 octobre 2005 Statut Modérateur Dernière intervention 8 décembre 2024 - 6 mars 2008 à 17:03
A voir également:
- Contact [PHP] erreurs !
- Easy php - Télécharger - Divers Web & Internet
- Créer un groupe whatsapp sans contact - Guide
- Bloquer contact whatsapp - Guide
- Recuperer contact carte sim - Guide
- Wwwfacebook. com/mobile/messenger/contact - Forum Facebook Messenger
6 réponses
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
4 mars 2008 à 14:47
4 mars 2008 à 14:47
salut,
la balise PHP ('<?php') doit être le premier caractère du fichier et le 'session_start()' la première instruction.
ça devrait suffire !
à toi d'adapter ton script pour pouvoir faire les traitements avant de renvoyer quoi que ce soit.
plus d'infos dans la faq
à plus !
la balise PHP ('<?php') doit être le premier caractère du fichier et le 'session_start()' la première instruction.
ça devrait suffire !
à toi d'adapter ton script pour pouvoir faire les traitements avant de renvoyer quoi que ce soit.
plus d'infos dans la faq
à plus !
bg62
Messages postés
23663
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
8 décembre 2024
2 391
4 mars 2008 à 15:01
4 mars 2008 à 15:01
voici le code de la page (la balise y est ...)
@+
b g
<?php define("ST_READY", 0); // La page a été appellée pour la 1ere fois (aucun bouton n'a donc pu être cliqué) define("ST_OK", 1); // La page a été appellée avec le bouton [Envoyer] et l'envoi du mail s'est bien passé define("ST_PREVIEW", 2); // La page a été avec le bouton [Prévisualiser] define("ST_ERROR", 3); // Une erreur s'est produite lors de la vérification de la page function remplacements_speciaux($txt) { $txt=preg_replace('#(<|>)#', '-', $txt); $txt=str_replace('"', "'",$txt); $txt=str_replace('&', 'et',$txt); return $txt; } function mail_valide($mail) { // La variable $verif va nous permettre d'analyser si la sémantique de l'email est bonne $verif='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#'; return preg_match($verif,$mail); } $reponse=""; // On regarde si la réponse a été postée par l'utilisateur if (isset($_POST['reponse'])) $reponse=$_POST['reponse']; $message=""; $objet=""; $votretelephone=""; $votremail=""; // On suppose qu'il y a une erreur par défaut même si ce n'est pas le cas. // Raisonnement par l'absurde en quelque sorte ... $status=ST_ERROR; //input button envoi/previsualiser $envoi=isset($_POST['envoi']) ? htmlentities($_POST['envoi']) : ""; $previsualiser=isset($_POST['previsualiser']) ? htmlentities($_POST['previsualiser']) : ""; if (isset($_POST['message'])) { //quelques remplacements pour les specialchars $message=remplacements_speciaux($_POST['message']); $objet=isset($_POST['objet']) ? remplacements_speciaux($_POST['objet']) : ""; // On assigne et/ou protège nos variables $votremail=stripslashes(htmlentities($_POST['votremail'])); $message=stripslashes(htmlspecialchars($message)); $objet=stripslashes(htmlspecialchars($objet)); $votretelephone=isset($_POST['votretelephone']) ? htmlentities($_POST['votretelephone']) : ""; //on enlève les espaces $votremail=trim($votremail); $message=trim($message); $objet=trim($objet); /*On vérifie si l'e mail et le message sont pleins, et on agit en fonction. (on affiche Apercu du resultat, tel ou tel champ est vide, etc...*/ //Si ca ne vas pas (mal rempli, mail non valide...) if((empty($message)) or (empty($objet)) or (!mail_valide($votremail))) { //les 3 champs sont vides if(empty($votremail) and (empty($message)) and (empty($objet))) { $msgerr='Tous les champs sont vides.'; } //un des champs est vide else { if(!mail_valide($votremail)) { $msgerr='Votre adresse e-mail n\'est pas valide.'; } else { $msgerr='Il faut remplir tous les champs !'; } } } //Si les deux sont pleins et que l'adresse est valide, on envoie on on prévisualise sans envoi else { $domaine=preg_replace('#[^@]+@(.+)#','$1',$votremail); $DomaineMailExiste=checkdnsrr($domaine,'MX'); if(!$DomaineMailExiste) { $msgerr='Le nom de domaine de l\'adresse e-mail que vous avez donné n\'existe pas.'; } elseif(!empty($previsualiser)) { $status=ST_PREVIEW; } elseif(!empty($envoi)) { // Test si la réponse au captcha est correcte ! if (isset($_SESSION['solution'])) { if ($_SESSION['solution'] != $reponse) { $msgerr="Mauvaise réponse à la question posée ! Réessayez."; } else { $objet='[contact SITE teria] : '.$objet; $destinataire='monmail@monfai.ici'; $mail=$destinataire; $headers='From:'.$votremail."\r\n". 'Subject:'.$objet."\r\n". 'Content-type: text/plain; charset=ISO-8859-1'."\r\n". 'Sent:'.date('l, F d, Y H:i'); $message = $message."\nTéléphone : ".$votretelephone; if(mail($destinataire,$objet,$message,$headers)) { $status=ST_OK; } else { $msgerr='Un problème est survenu durant l\'envoi du mail.'; } } } else { $msgerr="Votre session a expirée ! Veuillez répondre de nouveau à la question puis valider."; } } else { $msgerr='Une condition innatendue est survenue lors de l\'exécution du script.'; } } } else { $status=ST_READY; } switch ($status) { case ST_READY : echo '<p>Tous les champs doivent être renseignés, merci.</p>'; break; case ST_OK : echo '<p>Votre message a bien été envoyé. Merci.</p><p><a href="/">Retour à la page d\'accueil</a></p>'; break; case ST_PREVIEW : echo '<p>Votre message et votre adresse e-mail sont valides et prêts à être envoyés. <br />Vous n\'avez plus qu\'à cliquer sur le bouton "Envoyer" sans oublier de répondre à la question posée.<br />Prévisualisation :</p>'; break; case ST_ERROR : if (isset($msgerr) && !empty($msgerr)) { echo "<p>".$msgerr."</p>"; } else { echo "<p>Erreur non prévue !</p>"; } break; } ?> <form id='contact' method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"" enctype="multipart/form-data"> <p id='obj'>Utilisez ce formulaire et je vous réponds au plus vite, merci</p> <p id='obj'>(* champs obligatoires)</p> <p> <label for='objet'>*Objet de votre message :<br /> <input type='text' name='objet' id='objet' tabindex='10' size='50' value='<?php echo $objet;?>' /> </label> </p> <p id="adr"> <label for="mail">*Votre Adresse E-mail<br /> <input name="votremail" tabindex="20" size="40" type="text" id="mail" value="<?php echo $votremail; ?>" /> </label> </p> <p id="tel"> <label for="telephone">Votre téléphone(si vous désirez être contactés)<br /> <input name="votretelephone" tabindex="30" size="30" type="text" id="telephone" value="<?php echo $votretelephone ?>" /> </label> </p> <p id="msg"> <label for="message">*Votre message<br /> <textarea tabindex="40" rows="10" cols="50" name="message" id="message"><?php echo $message; ?></textarea> </label> </p> <?php include("captcha.php"); $captcha=new capcha(); // Création d'un nouvel objet (instance) de classe capcha $bouton_previsualiser='<p class="bt"><input type="submit" name="previsualiser" tabindex="3" value="Prévisualiser" /></p>'; $bouton_envoi='<p class="bt">'.$captcha->q().' <input type="text" name="reponse" id="reponse" size="4"> '. '<input name="envoi" tabindex="4" value="Envoyer" type="submit" /></p>'; switch ($status) { case ST_READY : echo $bouton_previsualiser.$bouton_envoi; break; case ST_PREVIEW : echo $bouton_envoi; break; case ST_ERROR : echo $bouton_previsualiser.$bouton_envoi; break; } if (isset($_SESSION)) { session_destroy(); } session_start(); // Restaure la session précédente ou démarre ou nouvelle session // Sauvegarde dans la session de la réponse attendue issue du captcha $_SESSION['solution'] = substr($captcha->word,$captcha->num-1,1); ?> </form>
@+
b g
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
4 mars 2008 à 15:14
4 mars 2008 à 15:14
re,
la balise PHP ('<?php') doit être le premier caractère du fichier et le 'session_start()' la première instruction.
commence ton script par :
et le reste idem en supprimant le 'session_start()' du bas.
la balise PHP ('<?php') doit être le premier caractère du fichier et le 'session_start()' la première instruction.
commence ton script par :
<?php session_start();
et le reste idem en supprimant le 'session_start()' du bas.
bg62
Messages postés
23663
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
8 décembre 2024
2 391
4 mars 2008 à 15:24
4 mars 2008 à 15:24
donc comme ceci :
@+
b g
<?php session_start(); define("ST_READY", 0); // La page a été appellée pour la 1ere fois (aucun bouton n'a donc pu être cliqué) define("ST_OK", 1); // La page a été appellée avec le bouton [Envoyer] et l'envoi du mail s'est bien passé define("ST_PREVIEW", 2); // La page a été avec le bouton [Prévisualiser] define("ST_ERROR", 3); // Une erreur s'est produite lors de la vérification de la page function remplacements_speciaux($txt) { $txt=preg_replace('#(<|>)#', '-', $txt); $txt=str_replace('"', "'",$txt); $txt=str_replace('&', 'et',$txt); return $txt; } function mail_valide($mail) { // La variable $verif va nous permettre d'analyser si la sémantique de l'email est bonne $verif='#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#'; return preg_match($verif,$mail); } $reponse=""; // On regarde si la réponse a été postée par l'utilisateur if (isset($_POST['reponse'])) $reponse=$_POST['reponse']; $message=""; $objet=""; $votretelephone=""; $votremail=""; // On suppose qu'il y a une erreur par défaut même si ce n'est pas le cas. // Raisonnement par l'absurde en quelque sorte ... $status=ST_ERROR; //input button envoi/previsualiser $envoi=isset($_POST['envoi']) ? htmlentities($_POST['envoi']) : ""; $previsualiser=isset($_POST['previsualiser']) ? htmlentities($_POST['previsualiser']) : ""; if (isset($_POST['message'])) { //quelques remplacements pour les specialchars $message=remplacements_speciaux($_POST['message']); $objet=isset($_POST['objet']) ? remplacements_speciaux($_POST['objet']) : ""; // On assigne et/ou protège nos variables $votremail=stripslashes(htmlentities($_POST['votremail'])); $message=stripslashes(htmlspecialchars($message)); $objet=stripslashes(htmlspecialchars($objet)); $votretelephone=isset($_POST['votretelephone']) ? htmlentities($_POST['votretelephone']) : ""; //on enlève les espaces $votremail=trim($votremail); $message=trim($message); $objet=trim($objet); /*On vérifie si l'e mail et le message sont pleins, et on agit en fonction. (on affiche Apercu du resultat, tel ou tel champ est vide, etc...*/ //Si ca ne vas pas (mal rempli, mail non valide...) if((empty($message)) or (empty($objet)) or (!mail_valide($votremail))) { //les 3 champs sont vides if(empty($votremail) and (empty($message)) and (empty($objet))) { $msgerr='Tous les champs sont vides.'; } //un des champs est vide else { if(!mail_valide($votremail)) { $msgerr='Votre adresse e-mail n\'est pas valide.'; } else { $msgerr='Il faut remplir tous les champs !'; } } } //Si les deux sont pleins et que l'adresse est valide, on envoie on on prévisualise sans envoi else { $domaine=preg_replace('#[^@]+@(.+)#','$1',$votremail); $DomaineMailExiste=checkdnsrr($domaine,'MX'); if(!$DomaineMailExiste) { $msgerr='Le nom de domaine de l\'adresse e-mail que vous avez donné n\'existe pas.'; } elseif(!empty($previsualiser)) { $status=ST_PREVIEW; } elseif(!empty($envoi)) { // Test si la réponse au captcha est correcte ! if (isset($_SESSION['solution'])) { if ($_SESSION['solution'] != $reponse) { $msgerr="Mauvaise réponse à la question posée ! Réessayez."; } else { $objet='[contact SITE teria] : '.$objet; $destinataire='monmail@monfai.ici'; $mail=$destinataire; $headers='From:'.$votremail."\r\n". 'Subject:'.$objet."\r\n". 'Content-type: text/plain; charset=ISO-8859-1'."\r\n". 'Sent:'.date('l, F d, Y H:i'); $message = $message."\nTéléphone : ".$votretelephone; if(mail($destinataire,$objet,$message,$headers)) { $status=ST_OK; } else { $msgerr='Un problème est survenu durant l\'envoi du mail.'; } } } else { $msgerr="Votre session a expirée ! Veuillez répondre de nouveau à la question puis valider."; } } else { $msgerr='Une condition innatendue est survenue lors de l\'exécution du script.'; } } } else { $status=ST_READY; } switch ($status) { case ST_READY : echo '<p>Tous les champs doivent être renseignés, merci.</p>'; break; case ST_OK : echo '<p>Votre message a bien été envoyé. Merci.</p><p><a href="/">Retour à la page d\'accueil</a></p>'; break; case ST_PREVIEW : echo '<p>Votre message et votre adresse e-mail sont valides et prêts à être envoyés. <br />Vous n\'avez plus qu\'à cliquer sur le bouton "Envoyer" sans oublier de répondre à la question posée.<br />Prévisualisation :</p>'; break; case ST_ERROR : if (isset($msgerr) && !empty($msgerr)) { echo "<p>".$msgerr."</p>"; } else { echo "<p>Erreur non prévue !</p>"; } break; } ?> <form id='contact' method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"" enctype="multipart/form-data"> <p id='obj'>Utilisez ce formulaire et je vous réponds au plus vite, merci</p> <p id='obj'>(* champs obligatoires)</p> <p> <label for='objet'>*Objet de votre message :<br /> <input type='text' name='objet' id='objet' tabindex='10' size='50' value='<?php echo $objet;?>' /> </label> </p> <p id="adr"> <label for="mail">*Votre Adresse E-mail<br /> <input name="votremail" tabindex="20" size="40" type="text" id="mail" value="<?php echo $votremail; ?>" /> </label> </p> <p id="tel"> <label for="telephone">Votre téléphone(si vous désirez être contactés)<br /> <input name="votretelephone" tabindex="30" size="30" type="text" id="telephone" value="<?php echo $votretelephone ?>" /> </label> </p> <p id="msg"> <label for="message">*Votre message<br /> <textarea tabindex="40" rows="10" cols="50" name="message" id="message"><?php echo $message; ?></textarea> </label> </p> <?php include("captcha.php"); $captcha=new capcha(); // Création d'un nouvel objet (instance) de classe capcha $bouton_previsualiser='<p class="bt"><input type="submit" name="previsualiser" tabindex="3" value="Prévisualiser" /></p>'; $bouton_envoi='<p class="bt">'.$captcha->q().' <input type="text" name="reponse" id="reponse" size="4"> '. '<input name="envoi" tabindex="4" value="Envoyer" type="submit" /></p>'; switch ($status) { case ST_READY : echo $bouton_previsualiser.$bouton_envoi; break; case ST_PREVIEW : echo $bouton_envoi; break; case ST_ERROR : echo $bouton_previsualiser.$bouton_envoi; break; } if (isset($_SESSION)) { session_destroy(); } EN SUPPRIMANT AUSSI CETTE LIGNE ??? ::::session_start(); // Restaure la session précédente ou démarre ou nouvelle session // Sauvegarde dans la session de la réponse attendue issue du captcha $_SESSION['solution'] = substr($captcha->word,$captcha->num-1,1); ?> </form>
@+
b g
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
4 mars 2008 à 15:29
4 mars 2008 à 15:29
oui !
as-tu essayé ?
as-tu essayé ?
bg62
Messages postés
23663
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
8 décembre 2024
2 391
4 mars 2008 à 15:33
4 mars 2008 à 15:33
non ce n'est pas sur mon site ...
comme on dit chez nous ... je vais transmettre, ... " je t'appelle et je te dis quoi "
grand merci
@+
b g
comme on dit chez nous ... je vais transmettre, ... " je t'appelle et je te dis quoi "
grand merci
@+
b g
bg62
Messages postés
23663
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
8 décembre 2024
2 391
4 mars 2008 à 16:01
4 mars 2008 à 16:01
je viens de faire un test en ligne et j'ai sans arrêt ceci en haut de page :
et apparemment rien n'arrive
@+
b g
Votre session a expirée ! Veuillez répondre de nouveau à la question puis valider.
et apparemment rien n'arrive
@+
b g
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
>
bg62
Messages postés
23663
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
8 décembre 2024
4 mars 2008 à 16:16
4 mars 2008 à 16:16
et tu veux pas essayer (enfin, faire essayer, lol !) celui de la faq ?
en plus je n'ai pas beaucoup testé la version PHP5 et je ne sais pas si elle passe sur toute les configs…
je vais essayer ton code chez oim;
en plus je n'ai pas beaucoup testé la version PHP5 et je ne sais pas si elle passe sur toute les configs…
je vais essayer ton code chez oim;
bg62
Messages postés
23663
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
8 décembre 2024
2 391
>
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
4 mars 2008 à 16:28
4 mars 2008 à 16:28
??? celui de la FAQ n'est pas sécurisé, c'est pour ça que j'avais envoyé celui-là qui fonctionne avec un captcha facile ...
ce que je ne comprends pas, c'est que d'origine il marche nickel, sans modif (mais sur ovh) il vient de poser problèmes et avec les modifs il ne fonctionne pas sur mon site ... mystère ...
@+
b g
ce que je ne comprends pas, c'est que d'origine il marche nickel, sans modif (mais sur ovh) il vient de poser problèmes et avec les modifs il ne fonctionne pas sur mon site ... mystère ...
@+
b g
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
>
bg62
Messages postés
23663
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
8 décembre 2024
4 mars 2008 à 16:31
4 mars 2008 à 16:31
faut que j'ajoute une captcha…
on va le mettre dans la ToDo…
on va le mettre dans la ToDo…
Dalida
Messages postés
6728
Date d'inscription
mardi 14 mai 2002
Statut
Contributeur
Dernière intervention
11 janvier 2016
921
6 mars 2008 à 16:44
6 mars 2008 à 16:44
re,
je crois que je l'ai ('contact.php', ligne 238) :
pour OuinOuin c'est la fonction 'checkdnsrr()', il connait pas…
je crois que je l'ai ('contact.php', ligne 238) :
if (isset($_SESSION)) { session_destroy(); }
pour OuinOuin c'est la fonction 'checkdnsrr()', il connait pas…
bg62
Messages postés
23663
Date d'inscription
samedi 22 octobre 2005
Statut
Modérateur
Dernière intervention
8 décembre 2024
2 391
6 mars 2008 à 17:03
6 mars 2008 à 17:03
pas tout compris ....
@+
b g
@+
b g