Vous n'êtes pas connecté - 0 membre connecté
Tutoriaux
Les 10 derniers tutoriaux
Créer un logo...
Créer un logo rétro
Auteur : doss
Posté le 29 01 2010 à 11h32
Vu 99329 fois
Scanner comme...
Scanner comme les pros !
Auteur : Amo
Posté le 01 07 2009 à 19h07
Vu 26259 fois
Ultimate flas...
Ultimate flash button (AS2)
Auteur : Neoblue
Posté le 06 06 2009 à 19h46
Vu 17142 fois
Boîte à photo...
Boîte à photos pliable
Auteur : Neoblue
Posté le 10 01 2009 à 19h53
Vu 22415 fois
Peinture à pa...
Peinture à partir d'une photo
Auteur : Nounet
Posté le 30 12 2008 à 15h01
Vu 13374 fois
Portrait Pop-...
Portrait Pop-Art
Auteur : Nounet
Posté le 23 09 2008 à 01h43
Vu 28655 fois
Une jaquette ...
Une jaquette de CD "Grunge"
Auteur : Neovea
Posté le 05 04 2008 à 18h45
Vu 32412 fois
Trainées lumi...
Trainées lumineuses TOS (technique orientée souris)
Auteur : Neoblue
Posté le 31 01 2008 à 08h47
Vu 39258 fois
Dégradé coule...
Dégradé couleur -> transparent
Auteur : PiKa
Posté le 27 01 2008 à 00h37
Vu 43313 fois
Formulaire co...
Formulaire contact
Auteur : Geoffroy
Posté le 03 05 2007 à 00h28
Vu 47554 fois
Détail du tutorial
PHP > Formulaire contact
Difficulté : facile
Tutorial en 3 étapes
Posté le 03 05 2007 à 00h28

salut les jeunes !
Pas tout à fait un tuto.
plutôt une ressource. qui vous permetra grace à php d'etablir un formulaire de contact, avec :
verification de validité Email
Champs obligatoires
Limitat ion à 1000 caracteres de la taille du message

Notre fichier se nommera : mail.php
Geoffroy - Membre - www
verification et mise en forme
 
<?php
    
function valideEmail($email)
    {
        return 
eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$"$email);
    }
?>
    <?php
        
if($_GET['action'] == "post")
        {
            
$titre $_POST['titre'];
            
$nom stripslashes($_POST['nom']);
            
$prenom stripslashes($_POST['prenom']);
            
                        
            
$email stripslashes($_POST['email']);
            
$email_confirmation stripslashes($_POST['email_confirmation']);
                
            
$telephone stripslashes($_POST['telephone']);
            
$portable stripslashes($_POST['portable']);
            
            
$probleme nl2br(stripslashes($_POST['probleme']));
            
            
$erreur "";
            
            
$erreur_nom false;
            
$erreur_prenom false;
            
$erreur_email false;
            
$erreur_email_confirmation false;
            
$erreur_telephone false;
            
$erreur_portable false;
            
$erreur_probleme false;
            
            if(empty(
$nom))
            {
                
$erreur_nom true;
            }
            if(empty(
$prenom))
            { 
                
$erreur_prenom true;
            }
            if(empty(
$email))
            {
                
$erreur_email true;
            }
            if(empty(
$email_confirmation))
            {
                
$erreur_email_confirmation true;
            }
            if(empty(
$probleme))
            {
                
$erreur_probleme true;
            }
            
            if(
$erreur_nom || $erreur_prenom || $erreur_email || $erreur_email_confirmation
                 
|| $erreur_probleme)
            {
                
$erreur .= "<li>Tous les champs sont obligatoires.</li>";
            }
            if(
$email != $email_confirmation)
            {
                
$erreur_email true;
                
$erreur_email_confirmation true;
                
$erreur .= "<li>L'adresse email et l'adresse email de confirmation ne sont pas égales.</li>";
            }
            if(!
valideEmail($email))
            {
                
$erreur_email true;
                
$erreur .= "<li>L'adresse email n'a pas un format correct (nom@domaine.ext).</li>";
            }
            if(!
valideEmail($email_confirmation))
            {
                
$erreur_email_confirmation true;
                
$erreur .= "<li>L'adresse email de confirmation n'a pas un format correct (nom@domaine.ext).</li>";
            }
            
            if(empty(
$portable) && (strlen($telephone) != 10 || !is_numeric($telephone)))
            {
                
$erreur_telephone true;
                
$erreur .= "<li>Le numéro de téléphone entré n'est pas valide.</li>";
            }
            if(empty(
$telephone) && (strlen($portable) != 10 || !is_numeric($portable)))
            {
                
$erreur_portable true;
                
$erreur .= "<li>Le numéro de portable entré n'est pas valide.</li>";
            }
            if(!isset(
$telephone) && !isset($portable))
            {
                
$erreur_portable true;
                
$erreur_telephone true;
                
$erreur .= "<li>Vous devez entrer au moins un numéro de téléphone.</li>";
            }
            
            if(
strlen($probleme) > 1000)
            {
                
$erreur_probleme true;
                
$erreur .= "<li>L'explication ne doit pas dépasser 1000 caractères.</li>";
            }
            else
            {
                if(empty(
$erreur))
                {
                    
$destinataire "tonmail@ext.com";
                    
                    
                    
$message "Bonjour, nn";
                    
$message .= "Le message a été envoyé le ".date("d-m-Y")." à ".date("H:i:s")." par ";
                    
$message .= $titre." ".strtoupper($nom)." ".$prenom."nn";
                    
$message .= "Les données sont les suivantes :nn";
                    
$message .= "Email : ".$email."n";
                    
$message .= "Téléphone : ".$telephone."n";
                    
$message .= "Portable : ".$portable."n";
                    
$message .= "Explication du problème :nn";
                    
$message .= $probleme;
                    
                    
$headers "From: contact <touyoutoutou@yeah.com>n";
                    
$headers .= "Reply-To: Clubdesbisous <touyoutoutou@yeah.com>n";
                    
$headers .= "Return-Path: ".$nom." ".$prenom." <".$email.">n";
                    
                    
$sujet "Contact";
                    
                    
mail($destinataire$sujet$message$headers);
                
                    echo 
"Message envoyé !<br /><br />";
                }
            }
            
            if(!empty(
$erreur))
            {            
                echo 
"<div class="erreurs"><ul>".$erreur."</ul></div><br />";
            }
        }
        else
        {
    
?>
   
    <?php
        
}
    
?>
dans le tuyau !
 
<form action="mail.php?action=post" id="formulaire-contact" method="post">
      <label for="titre">Titre : *</label>
      <br />
      <select class="form-contact" id="titre" name="titre">
        <option <?php if($titre == "Monsieur") { echo "selected=\"selected\""; } ?>>Monsieur</option>
        <option <?php if($titre == "Madame") { echo "selected=\"selected\""; } ?>>Madame</option>
        <option <?php if($titre == "Mademoiselle") { echo "selected=\"selected\""; } ?>>Mademoiselle</option>
      </select>
      <br />
      <label <?php if($erreur_nom) { echo "class=\"erreur\""; } ?>for="nom">Nom
      : *</label>
      <br />
      <input class="form-contact" id="nom" name="nom" type="text" <?php if(isset($nom)) { echo "value=\"".$_POST['nom']."\""; } ?> />
      <br />
      <label <?php if($erreur_prenom) { echo "class=\"erreur\""; } ?>for="prenom">Prénom
      : * </label>
      <br />
      <input class="form-contact" id="prenom" name="prenom" type="text" <?php if(isset($prenom)) { echo "value=\"".$_POST['prenom']."\""; } ?> />
      <br />
      
      </select>
      <br />
      <label <?php if($erreur_email) { echo "class=\"erreur\""; } ?>for="email">Email
      : *</label>
      <br />
      <input class="form-contact" id="email" name="email" type="text" <?php if(isset($email)) { echo "value=\"".$_POST['email']."\""; } ?> />
      <br />
      <label <?php if($erreur_email_confirmation) { echo "class=\"erreur\""; } ?>for="email_confirmation">Email
      confirmation : *</label>
      <br />
      <input class="form-contact" id="email_confirmation" name="email_confirmation" type="text" <?php if(isset($email_confirmation)) { echo "value=\"".$_POST['email_confirmation']."\""; } ?> />
      <br />
      <label <?php if($erreur_telephone) { echo "class=\"erreur\""; } ?>for="telephone">Téléphone
      : **</label>
      <br />
      <input class="form-contact" id="telephone" name="telephone" type="text" <?php if(isset($telephone)) { echo "value=\"".$_POST['telephone']."\""; } ?> />
      <br />
      <label <?php if($erreur_portable) { echo "class=\"erreur\""; } ?>for="portable">Téléphone
      portable : **</label>
      <br />
      <input class="form-contact" id="portable" name="portable" type="text" <?php if(isset($portable)) { echo "value=\"".$_POST['portable']."\""; } ?> />
      <br />
     
      <label <?php if($erreur_probleme) { echo "class=\"erreur\""; } ?>for="probleme">Exprimez vous ! (1000 caratères maxi) : *</label>
      <br />
      <textarea name="probleme" rows="7" class="form-contact" id="probleme"><?php if(isset($probleme)) { echo $_POST['probleme']; } ?></textarea>
et c'est... fini !
 
  
      <p><img src="style/icon/icone_attention.png"> * Champs obligatoires.<br />
      ** Vous devez indiquer au minimum un num&eacute;ro de t&eacute;l&eacute;phone. </p>
      <br />
      <input name="reset" type="reset" value="Effacer" />
      <input name="submit" type="submit" value="Envoyer" />
    </form>

Commentaires
<< 1 2 >>
et pourquoi le action tu le mets pas dans un champ hidden genre:

<input type="hidden" name="action" value="post">

et après faire le test sur if($_POST['action'] == "post")
Commentaire Posté le 04 05 2007 à 14h40
Pierrot - Membre
Je ne comprend pas ce que tu as voulu dire Pierrot :
<input type="hidden" name="action" value="post">
Edit:
ça y est j'ai compri ^^
c'est vrai que la question peut se poser, tu peux ensuite faire un test :
<?php
if(isset($_POST['action']) && $_POST['action']=="post") {
//traitement du formulaire.
}
?>
Commentaire Posté le 06 05 2007 à 16h03
chat007 - Membre - www
Moi je comprend pas pourquoi tu utilise une variables GET (action=post) dans l'envoi de ton formulaire POST...

Au lieu de
if($_GET['action'] == "post")

J'aurai plus vu :
if($_POST['submit]) {
// envoi du formulaire
}

Cela revient exactement au même mais c'est plus logique je trouve.

Tu devrais également te munir d'un captcha anti-spam, j'ai d'ailleurs écrit un classe php5 extensible, je la mettrait en ligne lorsque j'aurais plus de temps...
A+ ;)
Commentaire Posté le 13 05 2007 à 16h43
Phoenix - Membre - www
 Pourquoi créer autant de variables d'erreurs qui ne servent qu'une fois ($erreur_nom etc...), un OR sur les valeurs est amplement plus simple (cette forme serait utile si tu voulais personnaliser tes messages d'erreur):

if(empty($nom) || empty($prenom) || etc...)
{
$message_derreur = 'bla bla';
}
Commentaire Posté le 27 06 2007 à 19h59
tyler - Membre - www
Poreil, pas antant de variables pour stoquer les erreurs.
Un ptit tableau du genre : $erreur_array[] = "Message d'erreur"; pour chaque vérif.
Et si tout se passe bien c'est que count($erreur_array) == 0.
Commentaire Posté le 16 07 2007 à 11h14
cob - Membre
je vous conseille fortement d'aller lire cet article :

phpsecure.info
Ca ouvre un peu les yeux !

Il faut VRAIMENT faire attention, si vous ne prennez pas de mesure pour lutter contre le spam, un simple formulaire peut-être transformer en machine à spam !

C'est du vécu ;)
Commentaire Posté le 24 07 2007 à 21h15
caniche - Membre - www
<< 1 2 >>
Partenaires

Catégories
After Effects
1 Tutorial
Flash
2 Tutoriaux
Lightwave
1 Tutorial
Divers
1 Tutorial
Photoshop
15 Tutoriaux
Illustrator
4 Tutoriaux
Indesign
2 Tutoriaux
PHP
3 Tutoriaux
Blender
1 Tutorial
Mentions légales   -   Crédits   -   Nous contacter   -   © Benzor 2006