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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 43
    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 chevronné 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
    Par défaut
    Peux tu donner plus d'info sur ton pb ? quelle erreur?

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 43
    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 Expert
    Avatar de Seb33300
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2007
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 564
    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);

  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
    Par défaut
    Bonjour,
    Pourquoi ne pas utiliser htmlentities ?

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

    Informations forums :
    Inscription : Septembre 2007
    Messages : 43
    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?)

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