Rapatrier données d'un formulaire vers mail

Mysterious_fea Messages postés 406 Statut Membre -  
Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   -
Salut à tous !
Pour rappatrier les données d'un formulaire de contact sur mon site ( http://www.en-scene-association.fr ), j'utilisait jusqu'à présent le service gratuit de QuickWeb.com.
Mais voilà, la pub, ainsi que le message d'alerte terroriste (enfin presque...) à chaque envoi de formulaire, c'est pas le top.
Connaîtriez vous un autre service à installer directement sur son serveur, du style Raynette, pour faire cela ?
Ou alors suffit-il d'indiquer son mail en cible du formulaire ?

Un autre problème : la validation du formulaire avec les champs obligatoires, le type de données dans chaque champ, n'est pas très efficace avec Dreamweaver. Connaîtriez vous un site où c'est expliqué ou une astuce ou quelque chose pour le faire soi-même ?
Merci beaucoup d'avance
Ciao
A voir également:

37 réponses

paco66330 Messages postés 232 Statut Membre 11
 
Bonjour Mysterious_fea,

su peux faire ça, si tu veux l'envoyer sur ton mail perso :

<h3>Formulaire de contact</h3>
<p> </p>
<form action="mailto:franciskerros@aol.com" onSubmit="return checkrequired(this)" method="post" enctype="text/plain" name="mail0">
<p><strong>Motif de votre message :</strong>
<select name="Motif" id="Motif">
<option>Demander un renseignement</option>

<option>Prendre rendez-vous pour un cours</option>
<option>Autre motif</option>
</select>
</p>
<p><strong>Votre nom* :</strong>
<input name="Nom" type="text" id="Nom" size="35" maxlength="35" />
</p>
<p><strong>Votre adresse :</strong>
<input name="Adresse" type="text" id="Adresse" size="35" maxlength="60" />

<br />
<br />
<strong>Votre Code Postal :</strong>
<input name="Code_postal" type="text" id="Code_postal" size="5" maxlength="5" />
<br />
<br />
<strong>Votre ville :</strong>
<input name="Ville" type="text" id="Ville" value="" size="35" maxlength="35" />
</p>

<p><strong>Votre adresse e-mail :</strong>
<input name="Email" type="text" id="Email" value="" size="35" maxlength="45" />
</p>
<p><strong>Votre (vos) numéro(s) de téléphone :</strong>
<input name="Telephone1" type="text" id="Telephone1" size="10" maxlength="10" />
<strong>-</strong>
<input name="Telephone2" type="text" id="Telephone2" size="10" maxlength="10" />

</p>
<p><strong>Votre message* :</strong></p>
<p>
<textarea name="Message" cols="50" rows="12" wrap="virtual" id="Message"></textarea>
</p>
<p> </p>
<p align="center">Merci de renseigner les champs munis d'un <strong>*</strong> ainsi qu'un moyen de vous contacter<br />

(adresse, téléphone, mail) pour que nous puissions vous répondre </p>
<p align="center"><input name="Reinitialiser" type="reset" id="Reinitialiser" value="Réinitialiser" />
<input name="Envoyer" type="submit" id="Envoyer" value="Envoyer" /></p>
</form>

@+
0
Ssylvainsab Messages postés 2892 Statut Modérateur 825
 
Salut.

Regardes par là : webmaster un formulaire de contact pour votre site
0
Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
 
salut,

et aussi un cours sur developpez.com.
0
Mysterious_fea Messages postés 406 Statut Membre 35
 
Merci je vais regarder. Eng ros, Dalida, il suffit de mettre mon mail en "action", t'as pas besoin de out recopier...
Et les champs obligatoires ?
Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
 
la méthode de paco66330 est du html pur.
avantage : pas besoin d'un serveur php et le code est on ne peut plus simple.
inconvénient : ton mail apparait en clair (incitation au spam), aucune véritable vérification des données n'est possible (vérification possible avec JavaScript, mais il peut être désactivé).

pour vérifier les données envoyées il faut le faire avec php. pour cela utilises l'article de SSylvainSab, il y a tout ou presque.
j'ai ajouté le cours de developpez.com car il contient toutes les balises, ça te permets d'adapter le formulaire de SSylvainSab avec des listes d'option, des cases à cocher…

regarde aussi cet article pour le traitement des données du $_POST.
0
paco66330 Messages postés 232 Statut Membre 11
 
Bonsoir Dalida,

j'ai répondu à Mysterious_fea pour sa demande en HTML, parce que j'ai été voir son site qui est tout en HTML.

Je me suis dis que cela serait plus facile pour lui, cependant tu as tout à fait raison quand au PHP, pour la vérification des données.

@+
0
Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
 
je ne critiquais pas ta proposition, je voulais juste clarifier la situation au sujet de la vérification de données.

il est toujours bon à mon avis, de donner un maximum d'infos.
je crois qu'à trois on a réussi à faire le tour !!!
-;o)
0
Mysterious_fea Messages postés 406 Statut Membre 35
 
OK merci à vous. Là pour le moment je ne suis pas à fond dans les formulaires mais dès que j'ai un peu de temps je vais voir tout ça à tête reposé et je suis sûr que je trouverais ce que je cherche. Quant au PHP, je ne suis pas contre, et je vais surement l'utiliser, mais je verrais.
Merci à vous. Je vous informe de l'avancée de la situation...
Ciao
0
Mysterious_fea Messages postés 406 Statut Membre 35
 
C'est bon, j'ai commencé à m'y plonger.
Comment faire pour obliger un champ à être numérique et à contenir N chiffres ? (code postal ou téléphone)
Merci
0
Mysterious_fea Messages postés 406 Statut Membre 35
 
Merci de répondre à ma première question sur les nombres.
Un autre truc : regardez http://www.ensceneassociation.fr/formulaire.php
Comment faire pour que les boutons envoyer et reset soient sur la même ligne ?
Merci
0
Alain42
 
Pour que les boutons soient sur la même ligne, tu les mets tous les deux dans le même <p

<p class="bt">
<input name="envoi" id="send" tabindex="4" value="Envoyer" type="submit">

<input name="reini" id="reset" tabindex="5" value="Réinitialiser" type="reset"></p>


Pour la question sur la verif nombre tu veux en javascript ou en php

il y a les regex, vas voir sur le site www.siteduzero.com
0
Mysterious_fea Messages postés 406 Statut Membre 35
 
Merci
C'est en PHP
Mais est-ce possible de vérifier si c'est des chiffres mais de ne pas rendre le champ obligatoire ?
Ciao
0
Mysterious_fea Messages postés 406 Statut Membre 35
 
Pour revenir à ta dernière réponse :
Je pouvais pas faire ce que tu m'avais dis :

<?php
$Envoi="\n".'<p class="bt">
<input name="envoi" id="send" tabindex="4" value="Envoyer" type="submit"></p>';
$Reini="\n".'<p class="bt">
<input name="reini" id="reset" tabindex="5" value="R&eacute;initialiser" type="reset"></p>';


Comment je fais pour les mettre dans le même <p> si c'est deux variables différentes ? Eh ben j'ai enlevé les <p> pour mettre des <span>, et j'ai changé le CSS correspondant.
Merci
0
Alain42
 
Pour verifier si numerique et égal à 5:

une solution:

if($_POST['code_postal']!="" ){
if( is_numeric($_POST['code_postal']) && strlen($_POST['code_postal']=="5")) {

//ok
}
}
0
Mysterious_fea Messages postés 406 Statut Membre 35
 
Et il faut mettre quelque chose après les { ?
0
Mysterious_fea Messages postés 406 Statut Membre 35
 
Voilà mon code :

   <?php
$Envoi="\n".'<span class="bt">
<input name="envoi" id="send" tabindex="4" value="Envoyer" type="submit"></span>';
$Reini="\n".'<span class="bt">
<input name="reini" id="reset" tabindex="5" value="R&eacute;initialiser" type="reset"></span>';
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);
    $nom=preg_replace('#(<|>)#', '-', $_POST['nom']);
    $nom=str_replace('"', "'",$nom);
    $nom=str_replace('&', 'et',$nom);
	$adresse=preg_replace('#(<|>)#', '-', $_POST['adresse']);
    $adresse=str_replace('"', "'",$adresse);
    $adresse=str_replace('&', 'et',$adresse);
	$ville=preg_replace('#(<|>)#', '-', $_POST['ville']);
    $ville=str_replace('"', "'",$ville);
    $ville=str_replace('&', 'et',$ville);

    // On assigne et/ou protège nos variables
    $votremail=stripslashes(htmlentities($_POST['votremail']));
    $message=stripslashes(htmlspecialchars($message));
    $nom=stripslashes(htmlspecialchars($nom));
	$motif=stripslashes(htmlspecialchars($motif));
	$adresse=stripslashes(htmlspecialchars($adresse));
	$code=stripslashes(htmlspecialchars($code));
	$ville=stripslashes(htmlspecialchars($ville));
	$tel=stripslashes(htmlspecialchars($tel));
	$por=stripslashes(htmlspecialchars($por));
    //input envoi
    $envoi=htmlentities($_POST['envoi']);
    //on enlève les espaces
    $votremail=trim($votremail);
    $message=trim($message);
	$nom=trim($nom);
	$adresse=trim($adresse);
	$code=trim($code);
	$ville=trim($ville);
	$tel=trim($tel);
	$pot=trim($pot);


    /*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($nom))or(!preg_match($verif,$votremail)))
			  {
				//les 3 champs sont vides
				if(empty($votremail)and(empty($message))and(empty($nom)))
				  {
					echo '<p class="bt">Merci de remplir tous les champs marqués d\'une ast&eacute;risque.</p>';
					$message='';$votremail='';$nom='';
				  }
				//un des champs est vide
				else
				  {
					if(!preg_match($verif,$votremail))
					  echo'<p class="bt">Votre adresse e-mail n\'est pas valide.</p>';
					else
					{
					  echo'<p class="bt">Merci de remplir tous les champs munis d\'une ast&eacute;risque.</p>';
					 
					}
				  }
			  }
			else echo '<p class="bt">Le Code Postal que vous avez entré n\'est pas valide.</p>';
					$message='';$votremail='';$nom='';

    //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 class="bt">Le nom de domaine de l\'adresse e-mail que vous avez entr&eacute;e n\'existe pas.</p>';
        elseif(!empty($envoi))
            {
              $objet='.::'.$motif.' de '.$nom.' - Formulaire du site::.';
              $headers='From:'.$votremail."\r\n".'To:'.$mail."\r\n".'Subject:'.$objet."\r\n".'Content-type:text/html;charset=fr-ascii\r\n'.'MIME-Version: 1.0\r\n'.'Sent:'.date('l, F d, Y H:i');
			  $messagefinal='Motif du message : '.$motif."\r\n".'Nom : '.$nom."\r\n".'Adresse : '.$adresse.' - '.$code.' '.$ville."\r\n".'Num&eacute;ro(s) de t&eacute;l&eacute;phone : '.$tel.' - '.$por."\r\n".'Message : '."\r\n".$message."\r\n";
              if(mail($destinataire,$objet,$messagefinal,$headers))
              {
                echo "<script language=\"JavaScript\">
				<!-- 
				document.location=\"/formulaire-envoye.html#form\";
				//-->
				</script>";
              
              }
              else
                echo'<p class="bt">Votre message n\'a pas pu &ecirc;tre envoy&eacute; correctement. Merci de r&eacute;essayer.</p>';
            }
        else
          echo'<p class="bt">Une condition innatendue est survenue lors de l\'ex&eacute;cution du script. Merci de r&eacute;essayer en remplissant correctement tous les champs marqués d\'une ast&eacute;risque.</p>';
      }
  }
else
  {
  echo '<p class="bt">Remplissez tous les champs munis d\'une ast&eacute;risque et cliquez sur le bouton "Envoyer".</p>';
  $votremail='';$message='';$nom='';$adresse='';$code='';$ville='';$tel='';$por='';
  }
?>


Comment faire rentrer ma vérif. du Code Postal et du téléphone là-dedans ?
Merci
0
Alain42
 
Si tu veux un message d'erreur si pas numerique ou diff de 5:

if($_POST['code_postal']!="" ){
      if( !is_numeric($_POST['code_postal']) || strlen($_POST['code_postal']!="5")) {
            //message d'erreur
            echo "La saisie du code postal n'est pas correcte !";

     }
}


!is_numeric veut dire pas numerique et != pas égal à (!="" pas vide) (!="5" pas égal à 5) ( || OU )
0
Mysterious_fea Messages postés 406 Statut Membre 35
 
Je bloque là ! J'ai essayé de modifier le code, mais maintenant il me dis qu'il y a une erreur à la ligne 185.
Peux-tu localiser le problème stp ( http://www.ensceneassociation.fr/formulaire.txt ) ?
Merci beaucoup !
0
Alain42
 
Que contient la ligne 185 ?

si c'est la dernière c'est qu'il te manque une } à qq part
0
Mysterious_fea Messages postés 406 Statut Membre 35
 
Elle contient { et ce n'est pas la dernière.
Peux tu copier le fichier txt ds ton éditeur é essayé de voir stp ?
Merci
0
Dalida Messages postés 7114 Date d'inscription   Statut Contributeur Dernière intervention   923
 
salut,

tu pourrais donner l'erreur en entier et localiser la ligne.
c'est un strict minimum…

pour ton fichier, il fait 123 lignes, ça va être dur de trouver la ligne incriminée.
ça manque d'éléments !
0