Infos récupérées, phrase pour champs vide

Petit nouveau ! | 3 Messages

16 mai 2014, 12:40

Hello à tous,

Je rame bcp en PHP et j'aurais besoin d'un peu d'aide.

Comment rajouter une phrase du type "Non renseigné" pour les champs laissé vide par le visiteur dans le mail que je reçois ?

Du genre si les champs adresse et téléphone sont laissés vides je reçois quelque chose comme ça :

Nom : Test
Prénom : Test
Adresse : Non renseigné
Téléphone : Non renseigné
Email : [email protected]

J'ai écrit ça pour mon fichier de traitement :
<?php
    if(isset($_POST) && isset($_POST['form3_prenom']) && isset($_POST['form3_nom']) && isset($_POST['form3_email']) && isset($_POST['form3_telephone']) && isset($_POST['form3_message'])) {
        extract($_POST);
        if(!empty($form3_prenom) && !empty($form3_nom) && !empty($form3_email) && !empty($form3_message)) {
 
            $to = '[email protected]'; // Mon adresse réelle
 
            $subject = 'Contact depuis le site';
 
            $headers = 'MIME-Version: 1.0' . "\r\n";
            $headers .= 'Content-Type: text/html; charset=UTF-8' . "\r\n";
            $headers .= 'From:' .$form3_firstname. " " .$form3_name. "\r\n";
            $headers .= 'Reply-To:'.$form3_email. "\r\n";
 
            $message = '<html><body>';
            $message .= '<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>';
            $message .= '<table>';
            $message .= '<tr><td colspan="2"><p>MESSAGE</p></td></tr>';
            $message .= '<tr><td>Prénom :</td><td>'.$form3_prenom.'</td></tr>';
            $message .= '<tr><td>Nom :</td><td>'.$form3_nom.'</td></tr>';
            $message .= '<tr><td>Email :</td><td>'.$form3_email.'</td></tr>';
            $message .= '<tr><td>Telephone :</td><td>'.$form3_telephone.'</td></tr>';
            $message .= '<tr><td>Message :</td<td>'.stripslashes($form3_message).'</td></tr>';
            $message .= '</table>';
            $message .= '</body></html>';
 
 
            if(mail($to, $subject, $message, $headers)){
                echo "Formulaire envoyé";
            } else {
                echo "Formulaire non envoyé";
            }
 
        } else {
            echo "Vous n'avez pas rempli tous les champs";
        }
    }
    ?>
Merci d'avance pour votre aide.

Eléphant du PHP | 422 Messages

16 mai 2014, 13:31

hello

si dans $_POST tu n'as que des var liées au form alors tu peux faire un truc du genre
foreach($_POST as $index=>$valeur){ //pour chaque élément dans le tableau $_POST je récupère l'index et la valeur

   if($_POST[$index] === ""){ // si il n'y a rien comme valeur
      $_POST[$index] = "Non renseigné"; //je met 'non renseigné'
   }
}
toujours faire une recherche sur http://www.php.net et/ou sur http://www.google.fr :)
utiliser http://ideone.com/ pour vos codes :)

Invité
Invité n'ayant pas de compte PHPfrance

16 mai 2014, 15:58

Merci pour ta réponse !

C'est une portion de code qui est "générique" ? Ou je dois le personnaliser pour chaque champ ?

Si c'est générique je dois l'insérer ou dans mon code exactement ? Avant l'isset ?

Merci d'avance

Eléphant du PHP | 422 Messages

16 mai 2014, 16:51

hello

après isset et avant extract
toujours faire une recherche sur http://www.php.net et/ou sur http://www.google.fr :)
utiliser http://ideone.com/ pour vos codes :)

Invité
Invité n'ayant pas de compte PHPfrance

16 mai 2014, 17:16

C'est juste parfait, je te remercie ! :D :D