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 :

Envoi formulaire avec PHP


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 64
    Points : 26
    Points
    26
    Par défaut Envoi formulaire avec PHP
    Bonsoir tout le monde...

    J'aurais besoin d'un coup de pouce avec mon petit code PHP et mon formulaire. Je n'arrive pas à envoyer le contenu de mon formulaire vers une adresse mail !?

    HTML :
    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
    62
    63
    64
    65
    66
    67
    68
    <form
                  action="sendmail.php"
                  method="POST"
                  id="tm_contact_form"
                  enctype="multipart/form-data">
                  <div class="form-group">
                    <input
                      type="text"
                      id="contact_nom"
                      name="contact_nom"
                      class="form-control rounded-0 border-top-0 border-right-0 border-left-0"
                      placeholder="Votre nom"
                      required="" />
                  </div>
    			  <div class="form-group">
                    <input
                      type="text"
                      id="contact_prenom"
                      name="contact_prenom"
                      class="form-control rounded-0 border-top-0 border-right-0 border-left-0"
                      placeholder="Votre prénom"
                      required="" />
                  </div>
                  <div class="form-group-2">
                    <input
                      type="email"
                      id="contact_email"
                      name="contact_email"
                      class="form-control rounded-0 border-top-0 border-right-0 border-left-0"
                      placeholder="Votre adresse mail"
                      required="" />
                  </div>
    			  <div class="form-group">
                    <input
                      type="text"
                      id="contact_phone"
                      name="contact_phone"
                      class="form-control rounded-0 border-top-0 border-right-0 border-left-0"
                      placeholder="Votre numéro de téléphone"
                      required="" />
                  </div>
                  <div class="form-group-2 input-field">
                    <select class="tm-select" name="contact_sujet" id="contact_sujet">
                      <option value="select">Sujet ?</option>
                      <option value="CE">Coaching</option>
                      <option value="SA">Ateliers</option>
                      <option value="PM">Commentaire</option>
                      <option value="WD">Autre</option>
                    </select>
                  </div>
     
                  <div class="tm-mb-5">
                    <textarea
                      rows="10"
                      id="contact_message"
                      name="contact_message"
                      class="form-control rounded-0"
                      placeholder="Votre message"
                      required=""></textarea>
                  </div>
                  <div class="">
                    <button
                      type="submit"
                      class="btn btn-secondary tm-btn-submit rounded-0">
                      Envoyer
                    </button>
                  </div>
                </form>


    PHP :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    	$sujet = '=?UTF-8?B?'.base64_encode($sujet).'?=';
    	$headers  = 'MIME-Version: 1.0' . "\r\n";
    	$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
    	$headers .='Content-Transfer-Encoding: 8bit'."\r\n" ;
    	$headers .= "From: $contact_email" . "\r\n" . "Reply-To:$contact_email" . "\r\n";
    	$message =  "Voici le méssage de  $contact_nom $contact_prenom  : </br>   $contact_message ";
    	if(!mail("mail@fai.com", $contact_sujet, $contact_message, $headers)){
    		echo "erreur";
    	}else{
    		header("location:confirm.php");
    	}
    ?>


    J'avoue que c'est un gros mélange de tutoriels, sitewebs et autres.. autant pour l'affichage je comprends et j'ai réussi à faire ce que je voulais.. autant pour l'envoi de mon formulaire avec le script PHP, ça coince...

    Merci beaucoup d'avance !

    Jean-Phi

  2. #2
    Membre éclairé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2014
    Messages : 417
    Points : 834
    Points
    834
    Par défaut
    Bonjour.
    Curieux le traitement que tu fais subir à $sujet.

    base64_encode est utile pour intégrer des images dans un fichier HTML.
    Je ne dis pas la tête du sujet après ce traitement. un truc du genre : c3VqZXQgZW52b3np

    Et que signifie Ça coince ? Tu reçois le mail mal formaté ou rien du tout ?

    D'autre part, on suppose que tu n'as transmis que le PHP utile à notre compréhension car il est évident qu'il n'est pas complet pour fonctionner.

  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
    Il manque un bout du script ? Je ne vois pas les affectations des variables $contact_...

    Citation Envoyé par domi65 Voir le message
    Curieux le traitement que tu fais subir à $sujet.

    Base64_encode est utile pour intégrer des images dans un fichier HTML.
    Je ne dis pas la tête du sujet après ce traitement. un truc du genre : c3VqZXQgZW52b3np
    Sauf erreur de ma part, c'est un moyen de faire digérer de l'UTF-8 au sujet du mail. Le header Content-type s'applique uniquement au contenu, donc au corps du mail et pas au sujet Je crois qu'on peut faire quelque chose de plus lisible en utilisant mb_encode_mimeheader, mais cette syntaxe-ci est également bonne.
    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 éclairé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2014
    Messages : 417
    Points : 834
    Points
    834
    Par défaut
    c'est un moyen de faire digérer de l'UTF-8 au sujet du mail
    Coder en base 64 n'a rien à voir avec l'UTF8. je t'ai donné un exemple de ce que ça donne. Tu trouves ça « digeste » ?

    Et tu n'as pas répondu aux questions. Aide-nous à t'aider.

  5. #5
    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
    Citation Envoyé par domi65 Voir le message
    Coder en base 64 n'a rien à voir avec l'UTF8. je t'ai donné un exemple de ce que ça donne. Tu trouves ça « digeste » ?
    Ce n'est pas digeste pour un humain, mais ce n'est pas à toi de le digérer, c'est au logciel de messagerie

    On utilise pour ça une chaine de la forme =?charset?encoding?texteEncodé?=.
    Dans notre cas : '=?UTF-8?B?', le charset est UTF-8 et le système d'encodage est base64 (B), et donc, il faut lui fournir une chaine UTF-8 encodé en base64, d'où l'appel à base64_encode.
    Je n'ai pas plus de détails, ça doit se trouver quelque part quelque part dans la norme RFC 1342.
    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]

  6. #6
    Membre éclairé
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juin 2014
    Messages
    417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2014
    Messages : 417
    Points : 834
    Points
    834
    Par défaut
    Citation Envoyé par Celira Voir le message
    Dans notre cas : '=?UTF-8?B?', le charset est UTF-8 et le système d'encodage est base64 (B), et donc, il faut lui fournir une chaine UTF-8 encodé en base64,
    Ok, d'accord, merci pour l'info. M'enfin, il s'agit de l'objet d'un message. Quel peut être l'intérêt de ce traitement ?
    Imposer des lignes qui ne dépassent pas 76 caractères ? On peut faire ça plus simplement, non ?
    Merci.

  7. #7
    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
    Citation Envoyé par domi65 Voir le message
    Quel peut être l'intérêt de ce traitement ? Imposer des lignes qui ne dépassent pas 76 caractères ?
    ça sert à avoir un sujet de message qui gère l'UTF-8, donc les caractères spéciaux et caractères non latin. Sinon il ya de fortes chances pour qu'un sujet de la forme "ça, c'est un évènement drôle dû à un intérêt inouï" sorte comme "ça, c'est un évènement drôle dû Ã* un intérêt inouï" ce qui n'est pas franchement lisible.
    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]

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

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    	$sujet = '=?UTF-8?B?'.base64_encode($sujet).'?=';
    ...
    	if(!mail("mail@fai.com", $contact_sujet, $contact_message, $headers)){
    @Celira @domi65
    Vu que $sujet n'est PAS utilisé dans le mail(),...
    Dernière modification par Celira ; 15/11/2019 à 14h53.

  9. #9
    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
    Citation Envoyé par jreaux62 Voir le message
    Vu que $sujet n'est PAS utilisé dans le mail(),...
    J'avais même pas réalisé
    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]

Discussions similaires

  1. Problème d'envoi formulaire avec checkboxes
    Par neospirit dans le forum Langage
    Réponses: 3
    Dernier message: 19/04/2011, 11h14
  2. [LDAP] problème connexion anonyme avec php à Active Directory
    Par anto48_4 dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 02/03/2006, 16h50
  3. [débutant]petit problème sur formulaire avec onglets
    Par Christophe93250 dans le forum Access
    Réponses: 2
    Dernier message: 06/01/2006, 10h46
  4. [Mail] Problème envoi formulaire par mail
    Par Nicos77 dans le forum Langage
    Réponses: 5
    Dernier message: 10/11/2005, 17h11
  5. Réponses: 7
    Dernier message: 19/10/2004, 16h12

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