[ Résolu] Formulaire base de données + mail

WiseFun
Invité n'ayant pas de compte PHPfrance

04 sept. 2011, 23:38

Bonjour,

je viens de faire un formulaire de contact qui est directement enregistré dans une base de données.
Je voudrais aussi qu'il soit envoyé en même temps par mail.

cela est-il possible?

Si oui comment.

Merci
Modifié en dernier par WiseFun le 14 sept. 2011, 22:31, modifié 1 fois.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

05 sept. 2011, 05:45

salut,

oui a l'aide la fonction mail


@+
Il en faut peu pour être heureux ......

WiseFun
Invité n'ayant pas de compte PHPfrance

05 sept. 2011, 14:18

Bonjour,

Merci pour le lien.
Mais je dois placer le code ou dans ma page Php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <title>Accueil ConseilSyndical-DomaineDeLaSource</title>
        <link href="Base.css" rel="stylesheet" type="text/css"/>

    </head>
    <body>
        <div id="global">
            <div id="header">
                
            </div>
            <div id="colonneGauche">
                <?php
                include_once"ColonneGauche.php"
                ?>
            </div>
            <div id ="principale">
                    <p>
                        <center><h1>Contacter le Conseil Syndical </h1> </center>
                    </p>
                <div id="form">
             <form method="post" action="AddContact.php" enctype="multipart/form-data">
                 <div id="label">
                     <label> Nom *</label> 
                     <br/>
                     <label> Prénom *</label>
                     <br/>
                     <label> Adresse mail *</label> 
                     <br/>
                     <label> Téléphone</label>
                     <br/>
                     <label>Sujet *</label>
                     <br/>
                     <label>Description *</label>
                 </div>
                 <div id="texteBox">
                    <input type="text" name="Name" value="" size="27"/>
                    <br/>
                    <input type="text" name="LastName" value="" size="27"/>
                    <br/>
                    <input type="text" name="Email" value="" size="27"/>
                    <br/>
                    <input type="text" name="Tel" value="" size="27"/>
                    <br/>
                    <select name="liste">
                        <option value="conseil">Conseil Syndical</option>
                        <option value="charges">Charges</option>
                        <option value="syndic">Syndic</option>
                        <option value="voisinage">Problème de voisinage</option>
                        <option value="divers">Divers</option>
                    </select>
                    <br/>
                    
                    <textarea name="Texte" rows="8" cols="50"></textarea>
                 </div>
                 <div id="antiSpam">
                     <label>Anti Span Obligatoire</label>
                     <br/>
                     <label>Vous êtes un robot ?</label>
                     <input type="radio" name="rdBtn" value="1"/> Oui 
                    <input type="radio" name="rdBtn" value="0"/> Non
                    <br/>
                    <label>5 + 2 =</label>
                    <input type="texte" name="calcul" value="" size="12"/>
                 </div>
                 <div id="button">
                    <input type="submit" name="envoyer" value="Envoyer"/>
                 </div>
            </form> 
            </div><!--Fin div Form-->
            </div><!-- Fin div Principale -->
            <div id="footer">
                 
            </div>
        </div><!-- Fin div Global -->

    </body>
</html>
Car de dois faire aussi la validation des saisies. dans la page d'envoi.
<!--// Connection Base de données-->
<?php
include_once 'Connect.php';
?>

<!-- Ajouter Données  Formulaire -->
<?PHP
$Nom = $_POST['Name'];
$Prenom= $_POST['LastName'];
$Email= $_POST['Email'];
$Tel= $_POST['Tel'];

$Texte= $_POST['Texte'];

// on écrit la requête sql
$mysql= "INSERT INTO Contact(Id,Name,LastName,Email,Tel,Texte)
                VALUES('','$Nom','$Prenom','$Email','$Tel','$Texte')";

// on insère les informations du formulaire dans la table avec un message d'erreur
mysql_query($mysql) or die('Erreur MySql!'.$mysql.'<br/>'.  mysql_errno());

// Fermer la connexion
mysql_close();

// On affiche le résultat
echo '<strong><center><h1><br/><br/><br/><br/><br/><br/><br/><br/><br/>BRAVO TU ES LE MEILLEUR TOUT ES OK.</h1></center></strong>';

?>
ou alors mettre le code dans le bouton envoi?

Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

05 sept. 2011, 15:59

Il faut le mettre au moment où tu as besoin d'envoyer / recevoir le mail... Le plus logique serait sans doute d'attendre d'avoir enregistré les données en base avant de l'envoyer, vu que si l'enregistrement ne se fait pas pour une raison ou pour une autre, tu vas recevoir des mails pour rien :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

WiseFun
Invité n'ayant pas de compte PHPfrance

05 sept. 2011, 16:19

Bonjour,

Ok alors je vais le mettre dans une class PHp et je ferai un if sur le bouton envoyer qui controlera l'envoie dans LA BDD et ensuite enverra par mail.

Ai-je bien compris.

Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

05 sept. 2011, 16:41

Ben tu peux effectivement le faire comme ça... ou tout simplement appeler la fonction mail() après avoir appelé la fonction mysql_query() ... genre la ligne d'en dessous par exemple...

Ainsi tu n'as qu'un bouton "Envoyer" qui déclenche ton traitement, ce traitement étant : enregistrer en base ET envoyer un mail... :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

WiseFun
Invité n'ayant pas de compte PHPfrance

06 sept. 2011, 10:11

Bonjour,

Et oui pourquoi faire compliqué quand c'est si simple.


Merci

WiseFun
Invité n'ayant pas de compte PHPfrance

14 sept. 2011, 21:53

Bonjour,
voici ma function Mail
// envoi du formulaire par mail
$message ="'$Nom'\'$Prenom'\'$Email'\'$Tel'\'$Contact'\'$Texte'";

     // Envoi du mail
     mail('[email protected]', 'Formulaire de contact par le site', $message);
mais quand je reçois le mail
les infos sont mises bout à bout, j'aimerais qu'elle s'affichent sur une ligne à chaque fois

Code : Tout sélectionner

'trt'\'trtr'\'[email protected]'\'0123456789'\'conseil'\'aaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbb cccccccccccccccccccccc dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd eeeeeeeeeeeeeeeeeee'
merci

WiseFun
Invité n'ayant pas de compte PHPfrance

14 sept. 2011, 22:30

j'ai trouvé

il suffit de mettre :::_n entre les variables.
$message ="$Nom \n $Prenom \n $Email \n $Tel \n $Contact \n $Texte";
donc sujet Résolu
merci