En php , la page contact

Résolu/Fermé
Shippuden Messages postés 45 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 22 février 2008 - 14 janv. 2008 à 18:53
Shippuden Messages postés 45 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 22 février 2008 - 15 janv. 2008 à 08:58
Bonjour,

voila j'aimerais trouver pourquoi quand je click sur envoyé sa ne fonctionne pas et aussi que vous enleviez l'option aperçus svp , voici les codes de ma pages :

<?php
//Ecrivez votre adresse e-mail entre les guillemets
$destinataire='mjs.team-alphaomega@live.fr';
?><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="fr">
<head>
<title>Contact</title>
<style type="text/css">
form#contact{border:0px solid red;width:70%;padding:1em}
p#msg,p#adr,p#obj{border:0px solid green;margin-right:10%;padding:10px}
p#msg textarea{border:1px solid blue;height:250px;width:550px}
p#adr input,p#obj input{border:0px blue solid;height:20px}
p.bt{text-align:center}
p.bt input{border:0px red solid;width:150px;height:15px}
</style>
<meta http-equiv="content-type" content="Content-type:text/html;charset=iso-8859-1">
</head>
<body style="direction: ltr;">
<h5>Contact</h5>
<?php
$Previsualiser='<p class="bt">
<input type="submit" name="previsualiser" tabindex="3" value="Prévisualiser"></p>';
$Envoi="\n".'<p class="bt">
<input name="envoi" tabindex="4" value="Envoyer" type="submit"></p>';
if (isset($_POST['message']))
{
// 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}$#';
//quelques remplacements pour les specialchars
$message=preg_replace('#(<|>)#', '-', $_POST['message']);
$message=str_replace('"', "'",$message);
$message=str_replace('&', 'et',$message);
$objet=preg_replace('#(<|>)#', '-', $_POST['objet']);
$objet=str_replace('"', "'",$objet);
$objet=str_replace('&', 'et',$objet);
// On assigne et/ou protège nos variables
$votremail=stripslashes(htmlentities($_POST['votremail']));
$message=stripslashes(htmlspecialchars($message));
$objet=stripslashes(htmlspecialchars($objet));
//input envoi/previsualiser
$envoi=htmlentities($_POST['envoi']);
$previsualiser=htmlentities($_POST['previsualiser']);
//on enlève les espaces
$votremail=trim($votremail);
$message=trim($message);
$objet=trim($objet);

$apercu_resultat='<p>Aperçu du résultat :</p>';

/*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(!preg_match($verif,$votremail)))
{
//les 3 champs sont vides
if(empty($votremail)and(empty($message))and(empty($objet)))
{
echo '<p>Tous les champs sont vides.</p>';
$message='';$votremail='';$objet='';$apercu_resultat='';
}
//un des champs est vide
else
{
if(!preg_match($verif,$votremail))
echo'<p>Votre adresse e-mail n\'est pas valide.</p>';
else
{
echo'<p>Il faut remplir tous les champs !</p>';
if(empty($message))
$apercu_resultat='';
}
}
}
//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)
echo'<p>Le nom de domaine de l\'adresse e-mail que vous avez donné n\'existe pas.</p>';
elseif(!empty($previsualiser))
{
$apercu_resultat='<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".<br>Prévisualisation :</p>';
$Previsualiser='';
}
elseif(!empty($envoi))
{
$objet='[SITE] : '.$objet;
$headers='From:'.$votremail."\r\n".'To:'.$mail."\r\n".'Subject:'.$objet."\r\n".'Content-type:text/plain;charset=is-8859-1'."\r\n".'Sent:'.date('l, F d, Y H:i');
if(mail($destinataire,$objet,$message,$headers))
{
echo '<p>Votre message a bien été envoyé. Merci.</p><p><a href="/">Retour à la page d\'accueil</a></p>';
$Envoi='';
$Previsualiser='';
}
else
echo'<p>Un problème est survenu durant l\'envoi du mail.</p>';
}
else
echo'<p>Une condition innatendue est survenue lors de l\'exécution du script.</p>';
}
echo $apercu_resultat;
}
else
{
echo '<p>Vous pouvez utiliser ce formulaire pour me contacter.</p>';
$votremail='';$message='';
}
$bas_formulaire=$Previsualiser.$Envoi;
?>
<form id='contact' method="post" action="<?php echo $_SERVER['PHP_SELF'];?>" enctype="multipart/form-data">
<p id='obj'><label for='objet'>Objet de votre message :<br>
<h6><input type='text' name='objet' id='objet' tabindex='20' size='40'></h6></label></p>

<p id="adr"><label for="mail">Votre Adresse E-mail :<br>
<h6><input name="votremail" tabindex="20" size="40" type="text" id="mail" value="<?php echo $votremail; ?>"></h6></label></p>

<p id="msg"><label for="message">Votre message :<br>
<textarea tabindex="30" rows="20" cols="120" name="message" id="message"><?php echo $message; ?></textarea>
</label></p>
<h6><?php echo $bas_formulaire;?></h6>
</form>
</body>
</html>

j'attend votre aide , ces assez urgent merci!!
A voir également:

11 réponses

pour améliorer la lisibilité j'ai mis le code en forme un minimum et posté sur pastebin pour avoir la colorisation syntaxique:
http://pastebin.com/m3cb15511

au premier coup d'oeil il y a beaucoup de boucle if imbriquées, pour ne ps dire trop...
1
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 922
14 janv. 2008 à 19:26
salut,

oui nous pouvons t'aider mais on ne va peut être pas tout faire non plus !

si cela ne fonctionne pas, qu'est-ce qui ne fonctionne pas ? tu as un message d'erreur ?
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 922
14 janv. 2008 à 20:07
c'est sympa, mais est-ce que tu peux nous en dire plus sur ce qui se passe ?!
0
Shippuden Messages postés 45 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 22 février 2008
14 janv. 2008 à 23:04
aucune msg d'érreur , c'est juste que quand je clique sur envoyé , y'a aucun méssage qui est envoyé , il doit avoir une erreur de code mais laquelle je ne sais pas :(

mais j'aimerais que le bouton prévisualiser n'apprais plus car il sert pas vraiment :x

lol Dalida ce qui se passe c'est que comme je l'ai dit rien se passe quand je clique sur envoyé ^^

onan , je suis censé faire quoi ?

sinon si vous avais une autre manière de procéder sous html , ma page est en php car mon site l'est mais cepandant ma page contact peut etre fait en html , donc si y'a une autre solution et manière plus simple , je vous remercierais de m'éclairer svp ^^
0

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 922
14 janv. 2008 à 23:50
re,

je ne voulais pas mettre le nez dans ton code, il a bien fallu mais je me suis vite arrêté !
les balises sont utilisées n'importe comment, en plus il y a ce bouton en trop.

regarde plutôt ce code, ça ira sans doute beaucoup plus vite !
0
Shippuden Messages postés 45 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 22 février 2008
15 janv. 2008 à 01:13
dalida le code que j'ai c/c est exactement celui dont tu me demande de regarder , j'avais besoin d'un formulaire alors j'ai pris celui ci , d'ailleur si tu compare tu verras que c'est exactement la même chose :x

merci de ton aide mais si les balises sont mal utilisé faut dire a celui qui a poster le formulaire :(

moi j'ai juste copie / coller et mis mon e-mail :x

maintenant si ce formulaire est trop compliqué j'aimerais bien connaitre un de plus facile à utiliser merci!!
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 922
15 janv. 2008 à 06:02
salut,

c'est la meilleure de l'année celle-là, ça m'apprendra à pas assez lire les articles de la faq !

il fonctionne très bien ce code mais tu ne peux pas le faire fonctionner en local.

et ton serveur ne doit pas être bien paramétré car il aurait dû te renvoyer deux erreurs.
vérifie que tu aies bien ces valeurs dans ton 'php.ini' :
error_reporting  =  E_ALL
display_errors = On

le code sans preview :
<?php
//Ecrivez votre adresse e-mail entre les guillemets
$destinataire='mathieuadrien@hotmail.fr';
?><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="fr">
<head>
  <title>Contact</title>
  <meta http-equiv="content-type" content="Content-type:text/html;charset=iso-8859-1">
  <style type="text/css">
    form#contact{border:2px solid red;width:70%;padding:1em}
    p#msg,p#adr,p#obj{border:2px solid green;margin-right:10%;padding:10px}
    p#msg textarea{border:2px solid blue;height:30em;width:80%}
    p#adr input,p#obj input{border:2px solid blue}
    p.bt{text-align:center}
    p.bt input{border:1px red solid;width:50%}
  </style>
</head>
<body style="direction: ltr;">
<h1>Contact</h1>
<?php
$Envoi="\n".'<p class="bt">
<input name="envoi" tabindex="4" value="Envoyer" type="submit"></p>';
if (isset($_POST['message']))
  {
    // 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}$#';
    //quelques remplacements pour les specialchars
    $message=preg_replace('#(<|>)#', '-', $_POST['message']);
    $message=str_replace('"', "'",$message);
    $message=str_replace('&', 'et',$message);
    $objet=preg_replace('#(<|>)#', '-', $_POST['objet']);
    $objet=str_replace('"', "'",$objet);
    $objet=str_replace('&', 'et',$objet);
    // On assigne et/ou protège nos variables
    $votremail=stripslashes(htmlentities($_POST['votremail']));
    $message=stripslashes(htmlspecialchars($message));
    $objet=stripslashes(htmlspecialchars($objet));
    //input envoi/previsualiser
    $envoi=htmlentities($_POST['envoi']);
    //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(!preg_match($verif,$votremail)))
      {
        //les 3 champs sont vides
        if(empty($votremail)and(empty($message))and(empty($objet)))
          {
            echo '<p>Tous les champs sont vides.</p>';
            $message='';$votremail='';$objet='';$apercu_resultat='';
          }
        //un des champs est vide
        else
          {
            if(!preg_match($verif,$votremail))
              echo'<p>Votre adresse e-mail n\'est pas valide.</p>';
            else
            {
              echo'<p>Il faut remplir tous les champs !</p>';
              if(empty($message))
                $apercu_resultat='';
            }
          }
      }
    //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)
          echo'<p>Le nom de domaine de l\'adresse e-mail que vous avez donn&eacute; n\'existe pas.</p>';
        elseif(!empty($envoi))
            {
              $objet='[SITE] : '.$objet;
              $headers='From:'.$votremail."\r\n".'To:'.$mail."\r\n".'Subject:'.$objet."\r\n".'Content-type:text/plain;charset=is-8859-1'."\r\n".'Sent:'.date('l, F d, Y H:i');
              if(mail($destinataire,$objet,$message,$headers))
              {
                echo '<p>Votre message a bien été envoy&eacute;. Merci.</p><p><a href="/">Retour &agrave; la page d\'accueil</a></p>';
                $Envoi='';
                $Previsualiser='';
              }
              else
                echo'<p>Un probl&egrave;me est survenu durant l\'envoi du mail.</p>';
            }
        else
          echo'<p>Une condition innatendue est survenue lors de l\'ex&eacute;cution du script.</p>';
      }
  }
else
  {
  echo '<p>Vous pouvez utiliser ce formulaire pour me contacter.</p>';
  $votremail='';$message='';
  }
$bas_formulaire=$Envoi;
?>
<form id='contact' method="post" action="<?php echo $_SERVER['PHP_SELF'];?>" enctype="multipart/form-data">
  <p id='obj'><label for='objet'>Objet de votre message :<br>
  <input type='text' name='objet' id='objet' tabindex='10' size='30'></label></p> 

  <p id="adr"><label for="mail">Votre Adresse E-mail<br>
  <input name="votremail" tabindex="20" size="30" type="text" id="mail" value="<?php echo $votremail; ?>"></label></p>
  
  <p id="msg"><label for="message">Votre message<br>
  <textarea tabindex="30" rows="20" cols="120" name="message" id="message"><?php echo $message; ?></textarea>
  </label></p>
<?php echo $bas_formulaire;?>
</form>
</body>
</html>
0
Shippuden Messages postés 45 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 22 février 2008
15 janv. 2008 à 07:51
okiz me disais aussi , merci .

tu serais me conseiller un bon hébergeur web gratuit stp ?

car j'ai des problèmes pour affichage sous firefox donc il faudrait que je mette en ligne pour qu'ont puisse mieux m'aider a ce sujet.
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 922
15 janv. 2008 à 08:08
tu as une liste dans la faq.

selon ce que tu veux faire un hébergeur payant peut valoir le coût, tu dois pouvoir en trouver pour une vingtaine d'euros par an.

je viens de coder une version PHP5 du formulaire de contact, veux-tu être le premier bêta testeur ?
0
Shippuden Messages postés 45 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 22 février 2008
15 janv. 2008 à 08:44
je veut bien , mais dans ce cas tu doit me dire comment l'insérer , car j'ai pas de problèmes avec le reste de mon web :D
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 922
15 janv. 2008 à 08:46
MP
0
Shippuden Messages postés 45 Date d'inscription jeudi 18 octobre 2007 Statut Membre Dernière intervention 22 février 2008
15 janv. 2008 à 08:58
ok c'est fait mais y'a un pb tous mes liens fonctionnes plus -_- , rad zone a modif mon index reste à peine 10 érreurs mais les liens ne fonctionne plus , en clair je ne peut allez sur aucune autre de mes pages :x

que faire :'(
0