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 :

Formulaire de reponse


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Par défaut Formulaire de reponse
    Bonjour à tous,

    J,ai fait une recherche sur le forum et j'ai trouver beaucoup de probleme a ce sujet mais aucun comme le mien.

    J'ai un script d'annonces classée qui fonctionne parfaitement, j'ai seulement que 2 soucis, 1 que je vais mentionner ici et l'autres dans une autre section puisqu'il s'agit de Mysql.

    Ok j'ai un problème d'accent lors de la soumission d'un formulaire de contact pas courriel. À première vue cela ressemble a plein d'autre problème mais mon script n'utilise pas la même fonction mail, en tout cas un que je ne suis pas habituer.

    Premièrement je doit dire, ce n'est pas un formulaire static de contact, c'est pour répondre a une annonce, donc le destinataire du courriel est différent chaque fois.

    Le formulaire marche nickel si ce n'est que le trouble d'accent @ au lieu de é

    Tous mes fichier php sont code utf-8 ( dreameaver-propriete-codage -utf-8)
    Ma base de donner Mysql est aussi en utf-8

    je poste le code et je vais vous pointé le problème, je n'est juste pas les connaissance pour modifier le code en question.

    Voici le 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
    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
    <?php
     
    	session_start ( ) ;
     
    	require ( "config.php" ) ;
     
    	if ( intval ( $_POST["AdID"] ) > 0 )
    	{
    		if ( $_SESSION["capCode"] == $_POST["BBUV"] ) 
    		{
    			require_once ( "classes/manipulate.php" ) ;
     
    			$data = new DataManipulator ;
     
    			$siteSettings = $data->select ( "SiteManager" , "*" , null , 0 , 50 ) ;
    			$app_init_data = array ( ) ;
    			foreach ( $siteSettings as $site )
    			{
    				$app_init_data[$site["SiteVariable"]] = $site["SiteValue"] ;
    			}
     
     
    			$classified = $data->select ( "Classified" ,"*" , array ( "AdID" => intval ( $_POST["AdID"] ) ) ) ;
    			$classified = $classified[0] ;
    			$data->update ( "Classified" , " Replies=Replies+1" , array ( "AdID" => intval ( $_POST["AdID"] ) ) ) ;
     
    			@mail ( $classified["EmailAddress"] , "Votre annonce sur ".base_url , "Bonjour, \n vous avez un message pour votre annonce  '".$classified["AdTitle"]."' par un visiteur avec l'adresse courriel '".$_POST["FromEmailAddress"]."' : \n ".$_POST["EmailText"]." \n\n --------------------- \n ".$app_init_data["SiteName"]." <strong><strong>Svp repondre a l'adresse courriel du membre et non a celui-ci. Merci de votre confiance</strong></strong>, \n". base_url , "from:".$app_init_data["SiteTitle"]."<".$app_init_data["Replyemail"].">" ) ;
     
    			$_SESSION["str_system_message"] = "Votre message a été envoyé." ;
    		}
    		else
    			$_SESSION["str_system_message"] = "Code de sécurité invalide." ;
     
    	}
     
    	header ( "location:".$_SERVER['HTTP_REFERER'] ) ;
     
     
     
    ?>
    La partie suivantes ne pose pas de problème mes accents affiche bien dans la page internet car elle est coder en utf-8 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $_SESSION["str_system_message"] = "Votre message a été envoyé." ;
    		}
    		else
    			$_SESSION["str_system_message"] = "Code de sécurité invalide." ;

    Le probleme se situe ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    @mail ( $classified["EmailAddress"] , "Votre annonce sur ".base_url , "Bonjour, \n vous avez un message pour votre annonce  '".$classified["AdTitle"]."' par un visiteur avec l'adresse courriel '".$_POST["FromEmailAddress"]."' : \n ".$_POST["EmailText"]." \n\n --------------------- \n ".$app_init_data["SiteName"]." <strong><strong>Svp repondre a l'adresse courriel du membre et non a celui-ci. Merci de votre confiance</strong></strong>, \n". base_url , "from:".$app_init_data["SiteTitle"]."<".$app_init_data["Replyemail"].">" ) ;
    Si je met des accents ils affichent incorrect, si ce n,étais que de cela il n'y aurais pas de problème.

    Mais le champ que l'utilisateur remplis pour répondre a l'annonce en concurence :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ".$_POST["EmailText"]."
    je crois, lui je n'ai pas le contrôle dessus, quand un membres répond a une annonce si il utilise les accents il ne s'afficheront pas correctement.

    Je me répète, je me débrouille mais je suis loin d'être connaissant comme la plus part d'entre vous, si quelqu'un aurais une idée pour corrigé, ou contourner le problème ce serais super apprécier.

    zack

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Présenté mieux ton code pour plus de lisibilité et ajoute un en-tête pour indiquer l'utf8 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $body = "Votre annonce sur ".base_url;
    $body .= "Bonjour, \n vous avez un message pour votre annonce  '".$classified["AdTitle"]."' par un visiteur avec l'adresse courriel '".$_POST["FromEmailAddress"]."' : \n ".$_POST["EmailText"]." \n";
    $body .= "\n --------------------- \n ";
    $body .= $app_init_data["SiteName"]." <strong><strong>Svp repondre a l'adresse courriel du membre et non a celui-ci. Merci de votre confiance</strong></strong>, \n". base_url;
    $body . = "from:".$app_init_data["SiteTitle"]."<".$app_init_data["Replyemail"].">";
     
    $headers = 'Content-Type: text/plain; charset="utf-8"' . "\r\n";
     
    mail ( $classified["EmailAddress"] , $body, $headers );
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Par défaut
    Ok alors j,ai modifier mon code et ajouter celui que tu m'a donner , j'obtient une erreur a la ligne 30 :

    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
    <?php
     
    	session_start ( ) ;
     
    	require ( "config.php" ) ;
     
    	if ( intval ( $_POST["AdID"] ) > 0 )
    	{
    		if ( $_SESSION["capCode"] == $_POST["BBUV"] ) 
    		{
    			require_once ( "classes/manipulate.php" ) ;
     
    			$data = new DataManipulator ;
     
    			$siteSettings = $data->select ( "SiteManager" , "*" , null , 0 , 50 ) ;
    			$app_init_data = array ( ) ;
    			foreach ( $siteSettings as $site )
    			{
    				$app_init_data[$site["SiteVariable"]] = $site["SiteValue"] ;
    			}
     
     
    			$classified = $data->select ( "Classified" ,"*" , array ( "AdID" => intval ( $_POST["AdID"] ) ) ) ;
    			$classified = $classified[0] ;
    			$data->update ( "Classified" , " Replies=Replies+1" , array ( "AdID" => intval ( $_POST["AdID"] ) ) ) ;
    			$body = "Votre annonce sur ".base_url;
                $body .= "Bonjour, \n vous avez un message pour votre annonce  '".$classified["AdTitle"]."' par un visiteur avec l'adresse courriel '".$_POST["FromEmailAddress"]."' : \n ".$_POST["EmailText"]." \n";
                $body .= "\n --------------------- \n ";
                $body .= $app_init_data["SiteName"]." <strong><strong>Svp repondre a l'adresse courriel du membre et non a celui-ci. Merci de votre confiance</strong></strong>, \n"  base_url;
               $body . = "from:".$app_init_data["SiteTitle"]."<".$app_init_data["Replyemail"].">";
     
                $headers = 'Content-Type: text/plain; charset="utf-8"' . "\r\n";
     
    mail ( $classified["EmailAddress"] , $body, $headers );
     
     
    			$_SESSION["str_system_message"] = "Votre message a été envoyé." ;
    		}
    		else
    			$_SESSION["str_system_message"] = "Code de sécurité invalide." ;
     
    	}
     
    	header ( "location:".$_SERVER['HTTP_REFERER'] ) ;
     
     
     
    ?>

  4. #4
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 8
    Par défaut
    J'ai trouver, finalement j'ai opter pour autre chose voici le code final :
    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
    $subject = 'En réponse à votre annonce sur xxxxxx';
     
    // message
    $message = '
    <html>
    <head>
      <title>En réponse à votre annonce </title>
    </head>
    <body>
      <p>Bonjour,vous avez un message pour votre annonce sur xxxxx</p>
      <table>
        <tr>
          <th>Votre Annonce :</th><th></th><td>'.$classified["AdTitle"]."</td><th></th>
        </tr>
        <tr>
          <th>Membre à contactez :</th><th></th><td>".$_POST["FromEmailAddress"]."</td><th></th>
        </tr>
        <tr>
          <th>Message : </th><th></th><td>".$_POST["EmailText"]." \n"; '>, \n"</td><th></th>
        </tr>
      </table>
    </body>
    </html>
    ';
     
    // To send HTML mail, the Content-type header must be set
    $headers  = 'MIME-Version: 1.0' . "\r\n";
    $headers .= 'Content-type: text/html; charset=UTF-8' . "\r\n";
     
    // Additional headers
    $headers .= 'From: www.tonsite.com <noreply@tonsite.com>' . "\r\n";
     
    // Mail it
    mail($classified["EmailAddress"], $subject, $message, $headers);

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

Discussions similaires

  1. [AC-2010] Envoyer un formulaire par email et collecter une reponse
    Par Jurassix dans le forum Macros Access
    Réponses: 0
    Dernier message: 04/05/2015, 21h36
  2. [AJAX] XMLHttpRequest et intégration de la reponse dans un formulaire
    Par gussoner dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 23/07/2008, 01h10
  3. Réponses: 2
    Dernier message: 29/08/2007, 08h46
  4. formulaire envoir / réponse par email
    Par BugZx dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 25/05/2006, 00h11
  5. [CR][Access] intégrer un viewer dans un formulaire access
    Par nicolak dans le forum SAP Crystal Reports
    Réponses: 7
    Dernier message: 13/01/2003, 16h52

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