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 :

Tester des champs avant envoie mail


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de neuneu1
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 874
    Par défaut Tester des champs avant envoie mail
    Bonjour encore moi

    Bon grace au divers tuto et faq de développer j avance mais je bute sur des point

    Je test si les champs son vide ou pas ainsi que la structure du champs mail.

    Mon problème est l imbrication du code ou la sortie si une condition n'est pas remplie :
    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
    100
    101
    102
     
    <?php
     
     
    if(!empty($_POST)){
        //
        // Debug
        //
        echo '<pre>';
        //print_r($_POST);
        echo '</pre>';
    }
    //
        // Récupération normale des informations
        //
        $missing_fields = array();
        if(empty($_POST['nom'])){
            $missing_fields[] = '"nom",';
        }
    	if(empty($_POST['prenom'])){
            $missing_fields[] = '"prenom",';
        }
    	if(empty($_POST['Telephone'])){
            $missing_fields[] = '"Telephone",';
        }
    	if(empty($_POST['date'])){
            $missing_fields[] = '"date",';
     
        }
     
    	    if(empty($missing_fields)){
            echo 'Tous les champs ont été renseignés';
        }
        else{
            echo 'Les champs suivants doivent être remplis :<br />';
            echo implode('<br />', $missing_fields);
        }
     
        echo '<br /><br />';
     
    $regex = "/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i";
    $courriel = "nom@domaine.com";
    if (preg_match($regex, $courriel)) {
        echo "L'adresse $courriel est valide";
    } else {
        echo "L'adresse $courriel n'est pas valide";
    }
     
    if(!empty($_POST)){
        //
        // Debug
        //
        echo '<pre>';
     
        echo '</pre>';
    }
     
     
     
     
    		if( isset($_POST['nom']) ) // si formulaire soumis
    	{
    		$to = 'toto@free.fr'
    		;
    		$sujet = 'demande de Pre-reservation'
    		;
    		$from = $_POST['mail']
    		;
    		$nom = "Nom :".$_POST['nom']."\n\r"
    		;
    		$Prenom = "Prenom : ".$_POST['prenom']."\n\r"
    		;
           $Telephone = "Telephone :".$_POST['Telephone']."\n\r"
    		;   
    		$message = "\nMessage:\n\t$Prenom\n\t$nom\n\t$Telephone"
    		;
    		if (mail($to , $sujet , $message , "From: $from"))
    		{
    			echo'
    				<script type="text/javascript">
    				<!--
    					alert("Votre message a été envoyé .");
    				//-->
    				</script>'
    			;
    		}
    		else
    		{
    			echo'
    				<script type="text/javascript">
    				<!--
    					alert("Votre message n\'a pas pu être envoyé !!!");
    				//-->
    				</script>'
    			;
    		}
    		;
    		}
    	;
     
     
    ?>
    je continue de chercher sur le net un exit ou autre

    merci
    a+

  2. #2
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Bonjour,

    je vois que tu as un array qui contient les champs manquant, si le nombre d'occurence de ce tableau est supérieur à 0, alors il faut afficher l'erreur, sinon, envoyer le mail.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if(count($missing_fields) > 0){
        echo '<strong>Il faut remplir les champs suivants</strong>'.implode(', ', $missing_fields);
    }
    else{
        // traitement
        mail();
    }
    Aussi, tu écris ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if(!empty($_POST)){
        //
        // Debug
        //
        echo '<pre>';
     
        echo '</pre>';
    }
    Cela aura pour effet d'écrire <pre/>, pourquoi ne pas imbriquer le traitement du mail dans cette condition pour s'assurer que les variables POST sont valorisées ? De plus tu fais cette condition alors qu'au dessus tu manipules déjà des variables POST.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    if(!empty($_POST)){
        // récupération missing fields
        if(count($missing_fields) > 0){
            echo '<strong>Il faut remplir les champs suivants</strong>'.implode(', ', $missing_fields);
        }
        else{
            // traitement
            mail();
        }
    }
    else{
        echo 'Veuillez saisir les informations dans les champs';
    }

  3. #3
    Membre éprouvé
    Avatar de neuneu1
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 874
    Par défaut
    Merci

    je vais tester,

    merci pour les précisions, comme je débute et que j utilise des bout de script tes infos me renseigne sur pas mal de chose

    a+

  4. #4
    Membre éprouvé
    Avatar de neuneu1
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 874
    Par défaut
    salut
    Bon j ai un petit proble de comprehension avec ce 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
     
     
    if(!empty($_POST)){
        // récupération missing fields
        if(count($missing_fields) > 0){
            echo '<strong>Il faut remplir les champs suivants</strong>'.implode(', ', $missing_fields);
        }
        else{
            // traitement
            mail();
        }
    }
    else{
        echo 'Veuillez saisir les informations dans les champs';
    }
    je peux utiliser ca a la place de if imbrique???

    a+

  5. #5
    Membre éprouvé
    Avatar de neuneu1
    Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Avril 2007
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 874
    Par défaut
    Re,
    désole j ai mal compris..

    juste une dernier petit question:

    après l envoie du mail j aimerai que ca la page soit redirige vers le site d origine..
    merci

  6. #6
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 494

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

Discussions similaires

  1. Controles des champs avant insertion dans la base de donnees avec talend
    Par tchanga dans le forum Développement de jobs
    Réponses: 3
    Dernier message: 16/06/2008, 16h56
  2. Tester des champs
    Par msahmi dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/02/2008, 16h25
  3. Formulaire : vérification des champs et envoi
    Par miltonis dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 21/11/2007, 16h00
  4. [PHP-JS] Comment tester un champ avant de valider avec GET ?
    Par anis_el_madani dans le forum Langage
    Réponses: 2
    Dernier message: 09/04/2007, 20h37
  5. traitement des données avant envoie dans MySQL
    Par italiasky dans le forum SQL Procédural
    Réponses: 13
    Dernier message: 07/02/2006, 22h50

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