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 :

recuperation des donnes du formulaire


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2011
    Messages : 59
    Points : 15
    Points
    15
    Par défaut recuperation des donnes du formulaire
    Bonjour à tous,

    je me suis inspiré d'un tuto pour créer un formulaire dont je dois récupérer les données en php pour les envoyer sur une adresse mail.
    J'ai donc une boucle qui vérifie que les cases ne sont pas vides, si c'est le cas le mail est envoyé, sinon un message s'affiche "Tous les champs doivent être complétés !"

    Quand je teste, le message s'affiche au départ. si je remplit les cases, il s'affiche aussi ! donc le mail ne part jamais...



    Voici mon code :

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    <?php
     
    	if(isset($_POST['mailform']))
    	{
    		if(!empty($_POST['nom']))
    		{
     
    		$header="MIME-Version: 1.0\r\n";
    		$header.='From:"FED"<expediteur@gmail.com>'."\n";
    		$header.='Content-Type:text/html; charset="utf-8"'."\n";
    		$header.='Content-Transfer-Encoding: 8bit';
     
    		$message='
    		<html>
    			<body>
    				<div align="center">
    					<u>Nom de l\'expéditeur :</u>' .$_POST['nom'].'<br />
    					<u>Email de l\'expéditeur :</u>' .$_POST['email'].'<br />
    					<u>Nombre de personnes :</u>' .$_POST['nb_personnes'].'<br />
    					<u>Plutôt maison ou appart :</u>' .$_POST['maison_ou_appart'].'<br />
    					<u>Ville :</u>' .$_POST['ville'].'<br />
    					<u>Centre-ville ou extérieur :</u>' .$_POST['cv_ext'].'<br />
    					<u>Animaux acceptés :</u>' .$_POST['animaux'].'<br />
    					<u>Aménagé handicapé :</u>' .$_POST['invalide'].'<br />
    					<u>Nombre de chambres :</u>' .$_POST['nb_chambres'].'<br />
    					<br />
    					Message : '.nl2br($_POST['message']).'
    					<br />
    				</div>
    			</body>
    		</html>	
    		';
     
    	mail("mon_mail@gmail.com", "Formulaire contact - mon_site", $message, $header);
    	$msg="Votre message a bien été envoyé !!";
    		}
    	}
    		else
    		{
    			$msg="Tous les champs doivent être complétés !";
    		}
    ?>
     
     
     
    <html>
        <head>
        <title>Ma page de test</title>
    	   <meta charset="utf-8" />
     
            <title>mon-site</title>  
     
    		<link href="style.css" rel="stylesheet" type="text/css" />
     
        </head>
        <body>
    	<h2>Formulaire de contact</h2></p></p>
        <form method="post">
     
    		<input type="text" name="nom" placeholder="Votre nom" value="<?php if(isset($_POST['nom'])) { echo $_POST['nom']; } ?>" /></p>
     
    		<input type="email" name="email" placeholder="Votre email" value="<?php if(isset($_POST['email'])) { echo $_POST['email']; } ?>" /></p> </p>
     
    		<input type="text" name="nb_personnes" placeholder="Nombre de personnes" value="<?php if(isset($_POST['nb_personnes'])) { echo $_POST['nb_personnes']; } ?>" /></p> </p>
     
    		<input type="text" name="maison_ou_appart" placeholder="Maison ou appartement" value="<?php if(isset($_POST['maison_ou_appart'])) { echo $_POST['maison_ou_appart']; } ?>" /></p> </p>
     
    		<input type="text" name="ville" placeholder="Ville" value="<?php if(isset($_POST['ville'])) { echo $_POST['ville']; } ?>" /></p> </p>
     
    		Centre ville ou extérieur ? </p>
    		<input type="radio" name="cv_ext" value="centre_ville"> Plutôt centre-ville </br>
    		<input type="radio" name="cv_ext" value="exterieur"> Plutôt extérieur</br>
    		<input type="radio" name="cv_ext" value="peu importe"> Peu importe</p>
     
    		Animaux acceptés ? </p>
    		<input type="radio" name="animaux" value="oui"> Oui </br>
    		<input type="radio" name="animaux" value="non"> Non</p>
     
    		Aménagé invalide ? </p>
    		<input type="radio" name="invalide" value="oui"> Oui </br>
    		<input type="radio" name="invalide" value="non"> Non</p>
     
     
    		<input type="text" name="nb_chambres" placeholder="Nombre de chambres ?" value="<?php if(isset($_POST['nb_chambres'])) { echo $_POST['nb_chambres']; } ?>" /></p> </p>
     
    		 message : </p>
    		<textarea name="message"><?php if(isset($_POST['message'])) { echo $_POST['message']; } ?></textarea> </p>
     
    		<input type = "submit" value = "Envoyer">
        </form>
     
    	<?php
    		if(isset($msg))
    		{
    			echo $msg;
    		}
    	?>
    	</body>
    </html>
    La boucle ne fonctionne pas, je trouve pas pourquoi, c'est peut-être tout bête mais à force de chercher, je vois plus rien...

    merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Aucun champs de name 'mailform' dans le formulaire.

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    En complément, ton submit n'a pas de name. Donc d'ici à supposer que mailform était le name du submit...

    Pour le debug, n'hésites pas à afficher le contenu de POST : var_dump($_POST);
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2011
    Messages : 59
    Points : 15
    Points
    15
    Par défaut
    merci pour vos réponses,

    jreaux62 : Comme j'ai précisé dans mon premier post je me suis inspiré d'un tuto, et la seule chose inexpliquée entre 2 tutos est l'apparition de ce "mailform". Je me suis dit que ça venait peut-être de là, mais ne comprenant pas à quoi il est sensé correspondre, je ne sais pas par quoi le remplacer...

    Celira : J'ai donc testé en rajoutant un name="mailform" dans le submit, et du coup j'ai 3 lignes en erreur :

    Notice: Undefined index: cv_ext in G:\EasyPHP-12.1 ...
    sur les lignes 22, 23 et 24.

    Les trois correspondent aux boutons radios, y aurait-il une erreur de syntaxe, les boutons radios ne se traitent peut-être pas comme les type="text"...

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- "s'inspirer d'un tuto" suppose de COMPRENDRE ce qui est montré (et généralement expliqué)...

    2- d'autre part, tu ne nous dis pas de QUEL tuto... On ne peut pas deviner...


    3- Du coup, il faudrait peut-être que tu passes D'ABORD à un tuto plus... "basique" :


  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2011
    Messages : 59
    Points : 15
    Points
    15
    Par défaut
    le tuto, c'est celui là :


    La vidéo précédente explique comment envoyer un mail, j'ai réussi à le reproduire.

    Ce nouveau explique comment envoyer les donnees du form par mail, il est très bien expliqué donc accessible pour un débutant sauf ce "mailform" qui est apparu sans explication...

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2011
    Messages : 59
    Points : 15
    Points
    15
    Par défaut
    Bon, ça y est ça fonctionne !

    merci Celira pour le debug ! j'ai fini par mettre une otion automatique sur les boutons radio, car à chaque rafraichissement la variable était logiquement vide. Du coup, plus d'erreur, et le mail m'est bien parvenu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/09/2012, 23h04
  2. Réponses: 1
    Dernier message: 09/10/2007, 00h07
  3. recuperer des données sur un formulaire?
    Par youpi1 dans le forum VBA Access
    Réponses: 4
    Dernier message: 12/05/2007, 17h43
  4. Recuperation des données d'un formulaire
    Par Seth77 dans le forum Langage
    Réponses: 6
    Dernier message: 26/10/2006, 10h20
  5. Recuperation des données d'un formulaire
    Par Him dans le forum PHP & Base de données
    Réponses: 18
    Dernier message: 04/08/2006, 17h02

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