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 :

Souci de formulaire


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 43
    Points : 29
    Points
    29
    Par défaut Souci de formulaire
    Salut!
    Voila j'ai récupéré un script de formulaire que j'ai modifié pour accomder mes besoins..... j'ai donc rajouté des champs , l'email s'envois bien sauf que hormis le champs "message" s'affiche dans l'email.... je pense qu'il doit me manquer quelque chose si quelqu'un pouvait m'eclairer cela m'aiderai bien , voici le code du fichier en vous remerciant d'avance:

    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
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    <?php
    	/*
    		********************************************************************************************
    		CONFIGURATION
    		********************************************************************************************
    	*/
    	// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule
    	$destinataire = 'ptityop@hotmail.com';
     
    	// copie ? (envoie une copie au visiteur)
    	$copie = 'non'; // 'oui' ou 'non'
     
    	// Messages de confirmation du mail
    	$message_envoye = "Gracias por su mensaje !";
    	$message_non_envoye = "Error , Intenta otra vez.";
     
    	// Messages d'erreur du formulaire
    	$message_erreur_formulaire = "Send <a href=\"contact.html\">form first</a>.";
    	$message_formulaire_invalide = "Hay un error en el formulario, verifica que el email esta bien escrito !.";
     
    	/*
    		********************************************************************************************
    		FIN DE LA CONFIGURATION
    		********************************************************************************************
    	*/
     
    	// on teste si le formulaire a été soumis
    	if (!isset($_POST['envoi']))
    	{
    		// formulaire non envoyé
    		echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
    	}
    	else
    	{
    		/*
    		 * cette fonction sert à nettoyer et enregistrer un texte
    		 */
    		function Rec($text)
    		{
    			$text = trim($text); // delete white spaces after & before text
    			if (1 === get_magic_quotes_gpc())
    			{
    				$stripslashes = create_function('$txt', 'return stripslashes($txt);');
    			}
    			else
    			{
    				$stripslashes = create_function('$txt', 'return $txt;');
    			}
     
    			// magic quotes ?
    			$text = $stripslashes($text);
    			$text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
    			$text = nl2br($text);
    			return $text;
    		};
     
    		/*
    		 * Cette fonction sert à vérifier la syntaxe d'un email
    		 */
    		function IsEmail($email)
    		{
    			$pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
    			return (eregi($pattern,$email)) ? true : false;
    		};
     
    		// formulaire envoyé, on récupère tous les champs.
    		$name     = (isset($_POST['name']))     ? Rec($_POST['name'])     : '';
    		$email   = (isset($_POST['email']))   ? Rec($_POST['email'])   : '';
    		$tourlist   = (isset($_POST['tourlist']))   ? Rec($_POST['tourlist'])   : '';
    		$message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
    		$room     = (isset($_POST['room']))     ? Rec($_POST['room'])     : '';
    		$pax     = (isset($_POST['pax']))     ? Rec($_POST['pax'])     : '';
    		$date     = (isset($_POST['date']))     ? Rec($_POST['date'])     : '';
    		$visa     = (isset($_POST['visa']))     ? Rec($_POST['visa'])     : '';
     
    		// On va vérifier les variables et l'email ...
    		$email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erroné, soit il vaut l'email entré
     
    		if (($name != '') && ($email != '') && ($tourlist != '') && ($message != ''))
    		{
    			// les 4 variables sont remplies, on génère puis envoie le mail
    			$headers = 'From: '.$name.' <'.$email.'>' . "\r\n";
     
    			// envoyer une copie au visiteur ?
    			if ($copie == 'oui')
    			{
    				$cible = $destinataire.','.$email;
    			}
    			else
    			{
    				$cible = $destinataire;
    			};
     
    			// Remplacement de certains caractères spéciaux
    			$message = str_replace("'","'",$message);
    			$message = str_replace("’","'",$message);
    			$message = str_replace("&quot;",'"',$message);
    			$message = str_replace('<br>','',$message);
    			$message = str_replace('<br />','',$message);
    			$message = str_replace("&lt;","<",$message);
    			$message = str_replace("&gt;",">",$message);
    			$message = str_replace("&amp;","&",$message);
     
    			// Envoi du mail
    			if (mail($cible, $tourlist, $message, $headers))
    			{
    				echo '<p>'.$message_envoye.'</p>'."\n";
    			}
    			else
    			{
    				echo '<p>'.$message_non_envoye.'</p>'."\n";
    			};
    		}
    		else
    		{
    			// une des 3 variables (ou plus) est vide ...
    			echo '<p>'.$message_formulaire_invalide.' <a href="contact.php">Back</a></p>'."\n";
    		};
    	}; // fin du if (!isset($_POST['envoi']))
    ?>
    <script type="text/javascript">
    <!--
    window.location = "contact.php"
    //-->
    </script>

  2. #2
    Membre confirmé Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Points : 576
    Points
    576
    Par défaut
    Peux tu donner plus d'info sur ton pb ? quelle erreur?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 43
    Points : 29
    Points
    29
    Par défaut
    Merci pour la reponse....
    Il n'y a aucun message d'erreur...juste que le contenu des champs ne s'affiche pas dans le mail, je pensai qu'il y a peut etre des lignes à rajoute pour indiquer les champs à envoyer....j'ai bien tous les champs avec un id et aucune faute d'ortographe .... si cela peut aider....merci bien

  4. #4
    Membre émérite
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 563
    Points : 2 390
    Points
    2 390
    Par défaut
    Déjà, comme le montre la coloration syntaxique, tu as une erreur au niveau de la ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $message = str_replace(""",'"',$message);
    Il faut remplacer par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $message = str_replace("\"",'"',$message);
    Zend Certified PHP Engineer

    « Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana

  5. #5
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,
    Pourquoi ne pas utiliser htmlentities ?

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 43
    Points : 29
    Points
    29
    Par défaut
    En fait les erreurs ne sont pas vraiment des erreurs... je viens de verifier et c'est en fait le browser qui affiche ce code differement, par exemple

    $message = str_replace(""",'"',$message);
    est en fait
    $message = str_replace("&#039;","'",$message);

    A priori le message a remplcé les symbol....je n'ai donc toujours aucune idee.... vous etes en train de me dire que vous ne voyez rien d'anormal (mise a part cette erreur d'affichage?)

  7. #7
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,
    as-tu lu la réponse de Seb33300?
    Une chaine de caractère dans une double quote (" "), les doubles quotes de la chaine doivent être échappés par un antislash (\). Pour une chaine dans une simple quote, tu dois aussi échappé les simples quote.
    Un htmlentities peut remplacer tous ces str_replace que tu utilises.

Discussions similaires

  1. [AC-2003] souci avec formulaire muti-recherche
    Par olivier777 dans le forum IHM
    Réponses: 5
    Dernier message: 28/05/2010, 10h35
  2. Petit souci sur formulaire
    Par Adrienadrien dans le forum IHM
    Réponses: 2
    Dernier message: 04/02/2010, 13h26
  3. Gros soucis avec formulaire
    Par Invité(e) dans le forum Langage
    Réponses: 12
    Dernier message: 24/01/2010, 13h06
  4. souci de formulaire access 2003_bien planté!
    Par arno69_89 dans le forum IHM
    Réponses: 2
    Dernier message: 17/07/2007, 17h32
  5. Petits soucis de formulaire
    Par stolx_10 dans le forum IHM
    Réponses: 22
    Dernier message: 10/07/2006, 11h39

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