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 :

Insérer une date d'envoi d'un formulaire de contact


Sujet :

Langage PHP

  1. #1
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 919
    Points : 235
    Points
    235
    Par défaut Insérer une date d'envoi d'un formulaire de contact
    Bonjour à tous,

    Je suis en train de finaliser un site pour une association d'aides à la personne, et j'ai fait un formulaire de contact qui fonctionne très bien (en local tout au moins).

    Nom : Image1.jpg
Affichages : 104
Taille : 16,6 Ko
    Et le résultat de la personne qui reçoit le courriel :
    Nom : resultat1.jpg
Affichages : 96
Taille : 57,2 Ko


    Ce n'est qu'un titre d'essai car cette personne sort de mon imagination.

    Je suis en train de voir pour la mise en page parce que c'est pas encore au point, mais ça marche.

    Ce que je voudrais, c'est mettre la date d'envoi dans le message de réception sous "Subject: Vous avez un nouveau message de contact", mais comment faire ?

    Aussi, je pense que ce serait bien, mais pas trop chaud là-dessus, c'est de mettre un champ pour le téléphone.
    Vous en pensez quoi ?


    Source du contact :
    Code html : 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
    		<form id="contact-form" method="post" action="?page=contact-ctrl" role="form">
    			  <!-- <div class="separation"></div> -->
     
    			<!-- corps-formulaire -->
    		  <div class="corps-formulaire"> 
     
     
    		  	<div class="gauche">
    				<div class="groupe">
                        <label for="form_name">Nom *</label>
                        <input id="form_name" type="text" name="name" class="form-control" placeholder="Votre nom *" required="required">
    					<i class="fas fa-user"></i>
    				</div>
     
    				<div class="groupe">
    					<label class=for="form_email">Email *</label>
                        <input id="form_email" type="email" name="email" class="form-control" placeholder="Votre email *" required="required">
    					<i class="fas fa-at"></i>
    				</div>
     
    				<div class="groupe">
    					<label for="form_subject">Sujet *</label>
    					<input id="form_subject" type="text" name="subject" class="form_control" placeholder="Votre sujet *" required="required">
    					<i class="fas fa-envelope"></i>
    				</div>
     
    				<div class="groupe">
                       <label for="form_need">Besoins nécessaires *</label>
    <!--				 <i class="fas fa-file"></i> -->
                        <select id="form_need" name="need" class="form-control" required="required">
                            <option value="">Merci d'apporter des Précisions...</option>
                            <option value="Demande de renseignements">Demande de renseignements</option>
                            <option value="Demande d'aide-ménagère">Demande d'aide-ménagère</option>
                            <option value="Demande de garde d'enfant(s)">Demande de garde d'enfant(s)</option>
                            <option value="Demande de garde d'animaux">Demande de garde d'animaux)</option>
                            <option value=""></option>
                            <option value=""></option>
                         </select>
                    </div>
     
    			</div>
     
    			<div class="droite">
    				<div class="groupe">
                          <label for="form_message">Message *</label>
    					  <textarea id="form_message" name="message" class="form-control" placeholder="Saisissez ici..." rows="4" required="required"></textarea>
    				</div>
    			</div>
     
     
    				<div class="">
    					<div class="groupe">
    						<label for="code">Combien font 7 + 3 &nbsp;? *</label>	
    						<input class="champ_code" id="code" name="code" required="required" pattern="10">
    					</div>
     
    					<div class="groupe">
    						<button>Envoyer</button>
    					</div>
    				</div>
    		</form>

    et résultat du message contrôlé avant l'envoi :
    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
    <?php
    /*
     *  Configurer tous ici
     */
    // Date de l'envoi
    $dating = ''
    // Adresse email que le client va entrer.
    // $from = 'Email <expediteur@domaine.ext>';
     
    // une adresse e-mail qui recevra l'e-mail avec la sortie du formulaire
    $sendTo = 'Votre Email <domicileservices.dk@orange.fr>';
     
    // Sujet de l'email
    $subject = 'Vous avez un nouveau message de contact';
     
    // noms de champs de formulaire et leurs traductions.
    // array variable name => Texte à apparaître dans l'e-mail
    $fields = array('name' => 'Nom', 'subject ' => 'Sujet', 'email' => 'Email','need' => 'Besoin',  'message' => 'Message'); 
     
    // message qui s'affichera lorsque tout ira bien :)
    //$okMessage = '<br><br><span style="margin-left:30%;">Notre message a bien été envoyé.</span><br><br> <span style="margin-left:30%;">Nous vous répondrons très bientôt.</span>';
    $okMessage = '';
     
    // Si quelque chose ne va pas, nous afficherons ce message.
    $errorMessage = 'Une erreur est produite lors de la soumission du formulaire. Veuillez réessayer plus tard';
     
    /*
     *  EN ENVOIE!
     */
     
    // si vous ne déboguez pas, désactivez-le en rendant off error_reporting(0);
     
    error_reporting(E_ALL & ~E_NOTICE);
     
    try
    {
        if(count($_POST) == 0) throw new Exception('Le formulaire est vide');
     
        $emailText = "Vous avez un nouveau message de votre formulaire de contact\n\n=========================================\n\n";
     
        foreach ($_POST as $key => $value) {
            // Si le champ existe dans le tableau $ fields, incluez-le dans l'e-mail 
            if (isset($fields[$key])) {
                $emailText .= "$fields[$key]: $value\n";
            }
        }
     
        // Tous les en-têtes nécessaires pour l'e-mail.
        $headers = array('Content-Type: text/plain; charset="UTF-8";',
            /*'De: ' . $from,*/
            /*'Reply-To: ' . $from, */
            /*'Return-Path: ' . $from,*/
        );
     
     
        // Envoie email
        mail($sendTo, $subject, $emailText, implode("\n", $headers));
     
        $responseArray = array('type' => 'success', 'message' => $okMessage);
    }
    catch (Exception $e)
    {
        $responseArray = array('type' => 'danger', 'message' => $errorMessage);
    }
     
     
    // si demandé par la requête AJAX, renvoie la réponse JSON
    if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
        $encoded = json_encode($responseArray);
     
        header('Content-Type: application/json');
     
        echo $encoded;
     
    }
    // sinon affichez simplement le message
    else {
        echo $responseArray['message'];
    }
     
     
     
    echo '<div id="page-informations">';
     
    echo '<div>&nbsp;</div><div>&nbsp;</div>';
    echo '<div class="titre-colonne-gauche">';
    echo '';
    echo '<br>';
    echo '';
    echo 'Votre message a bien été envoyé.<br><br>Merci. Nous vous répondrons rapidement ! ';
    echo'</div>';
    echo '</div>';
    echo '';
    echo '';
     
    ?>
    Merci de votre aide.
    Images attachées Images attachées
    Cordialement.
    JLB59

    Analyse de la mémoire

  2. #2
    Membre confirmé
    Homme Profil pro
    Autre
    Inscrit en
    Juillet 2021
    Messages
    321
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Juillet 2021
    Messages : 321
    Points : 642
    Points
    642
    Par défaut
    Bonjour,

    Tu peux utiliser la fonction php date() avec le format de ton choix pour afficher la date courante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $emailText = "Vous avez un nouveau message de votre formulaire de contact\nEnvoyé le " . date('d/m/Y H:i:s');

  3. #3
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 919
    Points : 235
    Points
    235
    Par défaut
    Merci beaucoup.

    Mais dans l'en-tête du format texte pour l'instant,
    j'ai mis ce ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $headers = array('. date('d/m/Y H:i:s');',);
    Mais y a comme qui dirait une erreur !
    Parse error: syntax error, unexpected identifier "d", expecting ")" in C:\laragon\www\Tests-DSD-Dunkerque\pages\contact\contact-ctrl.php on line 46
    La ligne 46 est celle ci-dessus, mais duquel "d" il s'agit?

    A l'origine, c'était ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $headers = array('Content-Type: text/plain; charset="UTF-8";',);
    Et ça s'affichait bien mais sans aucun intérêt lors de la réception du message.

    J'ai, pourtant, enfin je pense, avoir copié correctement.
    Alors est-ce que "$headers" n'accepterait pas les dates ?

    Merci de ta réponse.
    Cordialement.
    JLB59

    Analyse de la mémoire

  4. #4
    Membre émérite
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 757
    Points : 2 992
    Points
    2 992
    Par défaut
    Erreur de syntaxe, voici la bonne écriture

    $headers = array(date('d/m/Y H:i:s'));
    Christophe (cavo789)
    Mon blog, on y parle Docker, PHP, WSL, Markdown et plein d'autres choses : https://www.avonture.be

  5. #5
    Membre actif
    Avatar de jlb59
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2004
    Messages
    919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2004
    Messages : 919
    Points : 235
    Points
    235
    Par défaut
    Merci pour la bonne syntaxe, mais la mienne est pareille, sauf que j'aurais voulu rajouter un texte avant, et c'est là que ça coince.
    La bonne syntaxe avec du texte est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $headers = array('Date d\'envoi :', date('d/m/Y H:i'));
    Bon, jusque là ça va, mais le seul problème est que la date est sous la ligne de texte.
    To: <xxxxxx@laposte.net>
    Subject: Nouveau message de contact
    Date d'envoi :
    06/03/2024 18:11

    Nouveau formulaire de contact
    =====================
    Nom: Jean-Luc BOUCHEZ
    Email: xxxxx@laposte.net
    Téléphone: 0652521700
    Sujet: Juste pour essai
    Besoin: Demande de pognon
    Message: A voir !
    Cordialement.
    JLB59

    Analyse de la mémoire

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 16/12/2019, 21h54
  2. [AC-2010] Limiter des résultats en fonction d'une date dans un entête de formulaire
    Par docjo dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 25/04/2013, 20h18
  3. Réponses: 2
    Dernier message: 17/04/2012, 16h34
  4. Redirection vers une Action après envoi d'un formulaire
    Par muad'dib dans le forum Struts 2
    Réponses: 4
    Dernier message: 05/06/2009, 14h48
  5. Rechercher une date et afficher dans un formulaire
    Par gadjou dans le forum Access
    Réponses: 3
    Dernier message: 03/08/2006, 11h44

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