IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

formulaire simple en php


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 28
    Points : 23
    Points
    23
    Par défaut formulaire simple en php
    bonjour j'ai codé un formulaire en html mais maintenant pour le traiter en php je ne sais pas. auriez vous du code simple pour le fichier contact.php

    en vous remerciant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    </p>
    					   <form action="contact.php" onSubmit="return check()" method="post" enctype="text/plain" name="contact" align="center"class="gris" id="contact">
    					     <p align="left">
    				         <label for="nom">Nom *&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;</label>
    				         <input type="text" size="20" maxlength="20" name="nom" id="nom" required title="Veuillez remplir tous les champs du formulaire" x-moz-errormessage="Veuillez remplir tous les champs du formulaire" /></p>
    				         <br /><p align="left">
    				         <label for="prénom">Prénom *&nbsp;:&nbsp;</label>
    				         <input type="text" size="20" maxlength="20" name="prénom" id="prénom" required title="Veuillez remplir tous les champs du formulaire" x-moz-errormessage="Veuillez remplir tous les champs du formulaire" /></p>
    					     <br /><p align="left">
    						 <label for="e-mail">E-mail *&nbsp;: &nbsp;&nbsp;&nbsp;</label>
    						 <input type="text" size="20" maxlength="40" name="e-mail" id="e-mail" input required title="Veuillez remplir tous les champs du formulaire" x-moz-errormessage="Veuillez remplir tous les champs du formulaire" /></p>
    					     <br /><p align="left"><label for="e-mail">Tel *&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label><input type="text" size="20" maxlength="20" name="tel" id="tel" input required title="Veuillez remplir tous les champs du formulaire" x-moz-errormessage="Veuillez remplir tous les champs du formulaire" /></p>
    					     <br /><p align="left">
    					       <label for="sujet">Sujet *&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
    					       <input name="sujet" type="text" class="center" id="sujet" size="40" input required title="Veuillez remplir tous les champs du formulaire" x-moz-errormessage="Veuillez remplir tous les champs du formulaire"/>
    					     </p>
    					     <br /><p align="left">
    						   <label for="message">Message *&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>
    						   <br /><br />			       
    					       &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    					       <textarea name="message" cols="40" rows="6" id="message" value="Message" input required title="Veuillez remplir tous les champs du formulaire" x-moz-errormessage="Veuillez remplir tous les champs du formulaire"></textarea>
    					     </p>
     
    					     <p align="center">&nbsp;</p>
    					     <p align="center">
    					       <input type="submit" value="Envoyer" />
    				         </p>
    					   </form>
    					   <script type=text/javascript>
    function check() {
      if (document.contact.nom.value == '') {
        alert('Veuillez remplir tous les champs du formulaire');
        return false;
      }
      if (document.contact.prénom.value == '') {
        alert('Veuillez remplir tous les champs du formulaire');
        return false;
      }
      if (document.contact.email.value == '') {
        alert('Veuillez remplir tous les champs du formulaire');
        return false;
      }
      if (document.contact.tel.value == '') {
        alert('Veuillez remplir tous les champs du formulaire');
        return false;
      }
      if (document.contact.sujet.value == '') {
        alert('Veuillez remplir tous les champs du formulaire');
        return false;
      }
      if (document.contact.message.value == '') {
        alert('Veuillez remplir tous les champs du formulaire');
        return false;
      }
      return true;
      }
    </script>

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059

  3. #3
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Points : 1 638
    Points
    1 638
    Par défaut
    Citation Envoyé par andry.aime Voir le message
    Pas mieux

    Sinon, quand je vois des accents dans les name du genre :


    Je ne suis pas expert PHP, mais généralement on évite tous caractères accentués et spéciaux pour les noms car la condition suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if (document.contact.prénom.value == '') {
        alert('Veuillez remplir tous les champs du formulaire');
        return false;
      }
    fait tout aussi bizarre
    Règle N° 1 : Si tout va bien, ne touchez à rien.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 28
    Points : 23
    Points
    23
    Par défaut
    j'ai mis ce code en php mais j'ai des erreurs sur la ligne :
    $tvar=array($_POST['name'],$_POST['prenom'],$_POST['email'],$_POST['tel'],$_POST['sujet'],$_POST['message']);

    les erreurs sont :
    Notice: Undefined index: name in C:\wamp\www\direct-promo\contact.php on line 12
    Notice: Undefined index: prenom in C:\wamp\www\direct-promo\contact.php on line 12
    et pareil pour email, tel, sujet, message ...

    auriez vous une aide svp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <?php
     
    //Vérifier que tous les champs ont été correctement remplis
    $tvar=array($_POST['name'],$_POST['prenom'],$_POST['email'],$_POST['tel'],$_POST['sujet'],$_POST['message']);
    foreach($tvar as $var)
    	{
    	if(!isset($var) OR is_null($var))
    		exit('Vous n\'avez pas rempli correctement le formulaire.');
    	}
     
    //Destinataire, sujet, expéditeur, message
    $destinataire='email@yahoo.fr';
    $sujet=$_POST['sujet'];
    $header='expediteur:'.$_POST["nom"].' '.$_POST["prenom"].' '.'<'.$_POST["email"].'>'.$_POST["tel"];
    $msg=$_POST['message'];
     
    //Envoi du mail
    if(mail($dest,$sujet,$header,$msg)) { 
    	echo 'Le message a &eacute;t&eacute; transmis.';
    } else { 
    	echo 'D&eacute;sol&eacute;, une erreur est survenue, le message n\'a pas &eacute;t&eacute; transmis.';
    }
    ?>

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonsoir,

    Cela veut dire que tu n'as pas d'élément avec l'attribut name="name", prenom, ... dans le variable $_POST du formulaire. Tu dois les tester avec la fonction isset() d'abord.

    A+.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 28
    Points : 23
    Points
    23
    Par défaut
    oui mais ça donnerai quoi alors pour nom ou prenom alors si t'as une ou deux ligne pour exemple stp

  7. #7
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Il ne fallait tester qu'un seul élément du formulaire, sauf si tu as une case à cocher qui est obligatoire que tu dois tester
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (issett($_POST['nom']))
    {
      if (trim($_POST['nom']) =="" ||  trim($_POST['prénom'])=="" ...)
         exit('Vous n\'avez pas rempli correctement le formulaire.');
    }
    Tu peux aussi voir la fonction empty().

    A+.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 28
    Points : 23
    Points
    23
    Par défaut
    je te remercie bien

    pourriez vous me dire s'il existe un site ou l'on peut acheter des scripts php pour formulaire et autres fonctionnalités ce sera plus simple

  9. #9
    Membre averti Avatar de Njörd
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 190
    Points : 390
    Points
    390
    Par défaut
    Bonjour barbato,

    Ce genre de script est tout ce qu'il y a de plus simple si tu prends la peine de forcer un peu.

    Acheter des scripts pour traiter un formulaire en PHP c'est comment dire ... jeter l'argent par les fenêtres

    D'autant plus qu'il y a une multitudes de scripts gratuitement mis à disposition sur Internet.

    Google est ton ami

  10. #10
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    voici un tutoriel qui traite le sujet de manière assez exhaustive : Les formulaires et PHP5

    Il suffit de le lire, et tester les exemples proposés.

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2012
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2012
    Messages : 28
    Points : 23
    Points
    23
    Par défaut
    oui en se creusant la tête on peut trouver quelque chose de correct.
    que pensez vous de ce code en php pour traiter le formulaire

    est il sécurisé ou manque t il des données ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
     
    <?php
    //Vérifier que tous les champs ont été envoyés
    if (isset($_POST) && isset($_POST['nom']) && isset($_POST['prenom']) && isset($_POST['email']) && isset($_POST['tel']) && isset($_POST['tel']) && isset($_POST['sujet']) && isset($_POST['message'])){
    	//Extraire les variables postées
    	extract($_POST);
    	//Vérifier que les champs ne sont pas vides
    	if(!empty($nom) && !empty($prenom) && !empty($email) && !empty($tel) && !empty($sujet) && !empty($message)){
    	//Définir les variables de la fonction mail
    			$message=str_replace("\'","'",$message);
    			$destinataire="e-mail@yahoo.fr";
    			$sujet="Formulaire de contact";
    			$entete="From: $nom \n Reply to: $email";
    			$msg="un nouveau message est arrivé \n
    			Nom: $nom \n
    			Prenom: $prenom \n
    			Tel: $tel \n
    			E-mail: $email \n
    			Sujet: $sujet \n
    			Message: $message";
    			mail($destinataire,$sujet,$entete,$msg);
    			echo 'Votre message nous a bien été envoyé !';
    	}
    	else{
    			echo 'vous n\'avez pas rempli tous les champs';
    	}
    }
    ?>
    par contre la fonction echo ne marche pas c'est bizzare lorsque j'envoie le mail il n'y a pas d'erreur mais Votre message nous a bien été envoyé n'apparait pas.

    il faut dire que je le teste en local peut être chez l'hébergeur ça marche

Discussions similaires

  1. [PDF] Remplir un formulaire PDF avec PHP
    Par Orionmel dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 21/10/2013, 10h14
  2. Formulaire simple en PHP
    Par Becorp dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 11
    Dernier message: 24/02/2009, 10h53
  3. Réponses: 15
    Dernier message: 13/03/2006, 16h24
  4. [MySQL] Formulaire de recherche PHP + un script d recherche en HTML
    Par Dsphinx dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 09/11/2005, 19h44
  5. Problème Formulaire + popup + page PHP
    Par nesbla dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 25/02/2005, 00h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo