Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

[PHP] envoie de mail par formulaire

Dante-33, le mardi 7 octobre 2008 à 17:12:41
Bonjour,

Voila je dois faire un formulaire qui envoie des mails.
il y a des input. Dans ces input, il y en a un qui est à choix multiple.

J'arrive à tout envoyer correctement sauf celui qui est a choix multiple.
Pourriez-vous m'aider car je viens de passer ma journée dessus et je commence à désespérer.

Merci d'avance.

Le mail est envoyé sous la forme suivante jusque là rien de sorcier
mail("monAdresseMail@fai.com", "[maBoite] inscription : ", "maBoite vous informe que :".$firstName." ".$lastName." souhaite s'inscrire à maBoite

						Informations :

						Nom : ".$lastName."
						Prénom : ".$firstName."
						Email : ".$email."
						Mobile : ".$mobile."
						Login : ".$login."
						Password : ".$password."
						Tel : ".$telephoneNumber."
						Societée : ".$compagny."
						Fax : ".$fax."
						Country : ".$country."
						Langue : ".testLangue($_POST['language'])."
						Activité principale : ".testMainBusinessCategorie($_POST['mainBusinessCategorie'])."
						specialité : ".remplirSpecificite()."
						Formation : ".testEducation($_POST['education'])."
						Expérience : ".testYearsInTheBusiness($_POST['yearsInTheBusiness'])."

						Il à connu maBoite par :".testWhereHaveYouHeardAboutUs($_POST['whereHaveYouHeardAboutUs'])."",$headers);


Voici la fonction remplirSpecificite() car c'est elle qui nous intéresse.

function remplirSpecificite()
{	
	// s'il y a des valeurs dans le tableau
	if(isset($_POST['areaSpecies']) && !empty($_POST['areaSpecies']))
	{
		
		$Col1_Array = $_POST['areaSpecies'];
		
		// pour toutes les colones du tableau
		foreach($Col1_Array as $selectValue)
		{
			//on test s'il y a une ou plusieurs valeurs dans la tableau 
			if ($Col1_Array == $selectValue)
			{
				//s'il y en a qu'une,on affiche seulement la valeur
				return testAreaSpecies($Col1_Array);
			}
			else
			{
				// on teste les valeurs du tableau
				if($Col1_Array != $selectValue)
				{
					// il reste des valeurs dans le tableau
					$resultat = $resultat.testAreaSpecies($Col1_Array).", ";
				}
				else
				{
					// le tableau à atteind sa dernière valeur
					$resultat =$resultat.testAreaSpecies($Col1_Array);
					echo $resultat;
					return $resultat;
				}
			}
		}
	}
	//sinon 
	else
	{
		// on affiche rien
		echo " ";
	}
}


J'utilise dans ma fonction remplirSpecificite() la fonction testAreaSpecies($pAreaSpecies) qui sert en fait à traduire l'id de cochée en mot.

P.S. : Je ne pense pas que le problème vienne de là

function testAreaSpecies($pAreaSpecies)
{
	if($pAreaSpecies=='dogAndCat')
	{
		return "Chat et chiens";
	}
	elseif($pAreaSpecies=='cattle')
	{
		return "Bétail";
	}
	elseif($pAreaSpecies=='sheep')
	{
		return "Mouton";
	}
	elseif($pAreaSpecies=='swine')
	{
		return "Porc";
	}
	elseif($pAreaSpecies=='poultry')
	{
		return "Volaille";
	}
	elseif($pAreaSpecies=='equine')
	{
		return "Cheval";
	}
	elseif($pAreaSpecies=='fish')
	{
		return "Poisson";
	}
	elseif($pAreaSpecies=='other')
	{
		return "Autre";
	}
	elseif($pAreaSpecies=='all')
	{
		return "Tous";
	}
	elseif($pAreaSpecies=='noSpecies')
	{
		return "Pas de spécialité";
	}
}


Je ne dois pas utiliser de javascript c'est une contrainte que m'a donnée le chef de projet !
www.myspace.com/kickntoast
95 % des erreurs proviennent de ce qu'il y a entre le clavier et la chaise
Pensez à cocher "résolu" le cas échéant
Configuration: Windows XP
Firefox 3.0.3
Répondre à Dante-33  Signaler ce message aux modérateurs Aller au dernier message

1


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
Xil, le mardi 7 octobre 2008 à 17:30:11
Bonjour,

Peut-on avoir le code HTML de l'input à choix multiple en question ?



PS: A moins qu'il ne soit crypté (et dans ce cas je n'en vois pas l'utilité), publier le mot de passe entré n'est éthiquement pas correct, même à une seule personne.
Répondre à Xil

2


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
Dante-33, le mardi 7 octobre 2008 à 17:31:35
oui voici le code de mon select

			<select name="areaSpecies[]" multiple>
				<option value="dogAndCat"<?php if ($_POST['areaSpecies']=='dogAndCat') {echo "selected='selected'";}?>>Dog / Cat</option>
				<option value="cattle"<?php if ($_POST['areaSpecies']=='cattle') {echo "selected='selected'";}?>>Cattle</option>
				<option value="sheep"<?php if ($_POST['areaSpecies']=='sheep') {echo "selected='selected'";}?>>Sheep</option>
				<option value="swine"<?php if ($_POST['areaSpecies']=='swine') {echo "selected='selected'";}?>>Swine</option>
				<option value="poultry"<?php if ($_POST['areaSpecies']=='poultry') {echo "selected='selected'";}?>>Poultry</option>
				<option value="equine"<?php if ($_POST['areaSpecies']=='equine') {echo "selected='selected'";}?>>Equine</option>
				<option value="fish"<?php if ($_POST['areaSpecies']=='fish') {echo "selected='selected'";}?>>Fish</option>
				<option value="other"<?php if ($_POST['areaSpecies']=='other') {echo "selected='selected'";}?>>Other</option>
				<option value="all"<?php if ($_POST['areaSpecies']=='all') {echo "selected='selected'";}?>>All</option>
				<option value="noSpecies"<?php if ($_POST['areaSpecies']=='noSpecies') {echo "selected='selected'";}?>>No Species</option>
			</select><br />
www.myspace.com/kickntoast
95 % des erreurs proviennent de ce qu'il y a entre le clavier et la chaise
Pensez à cocher "résolu" le cas échéant
Répondre à Dante-33

3


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
Xil, le mardi 7 octobre 2008 à 17:46:49
Dans ce cas, je simplifierais le code comme ceci :


function remplirSpecificite()
{	
	$resultat = "";

	// s'il y a des valeurs dans le tableau
	if(isset($_POST['areaSpecies']) && !empty($_POST['areaSpecies']))
	{
		
		$Col1_Array = $_POST['areaSpecies'];
		

		if (count($Col1_Array) > 0) {
			foreach ($Col1_Array as $selectValue) {
				$resultat .= testAreaSpecies($selectValue) . ", ";
			}
		}
	}
	return $resultat;
}
Répondre à Xil

4


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
Dante-33, le mardi 7 octobre 2008 à 17:50:37
Cela ne fonctionne pas voici le mail que je reçoit

maBoite vous informe que : Dante-33 souhaite s'inscrire à maBoite

Informations :

Nom : Dante
Prénom : -33
Email : test@gmail.com
Mobile : 000000
Login : Dante-33
Password : Dante-33
Tel :
Societée :
Fax :
Country : France
Langue : Français
Activité principale : Logistique
Specialité : , , ,
Formation : Technicien
Expérience : Entre 5 et 10 ans

Il à connu maBoite par :Reseau personnel / professionnel
www.myspace.com/kickntoast
95 % des erreurs proviennent de ce qu'il y a entre le clavie­r et la chaise
Pensez à cocher "résolu" le cas échéant
Répondre à Dante-33

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Xil, le mercredi 8 octobre 2008 à 09:27:01
Après test, c'est pourtant fonctionnel chez moi.
En utilisant ma fonction remplirSpecificite() et ta fonction testAreaSpecies() et ton code pour l'input.

Tu peux remettre le code que tu as avec les dernières modif ?

PS: j'avais édité ma fonction hier, peut-être as tu utilisé la mauvaise version. Vérifie avec celle qui est maintenant.

Et tu devrais mettre un espace entre value="..." et <?php dans tes options de select.
Répondre à Xil

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Dante-33, le mercredi 8 octobre 2008 à 10:21:52
C'est bon j'ai réussi tout seul.
Merci de ton aide.
P.S.: Voici ma solution

J'ai supprimé toutes mes fonctions pour une faire une "super fonction".
Cela fonctionne comme je veux. Je suis assez fier de moi la.

Voici le code

Merci encore pour ton aide.

function remplirSpecificite()
{
	// c'est le compteur de valeur dans le tableau
	$i=1;
	// s'il y a des valeurs dans le tableau
	if(isset($_POST['areaSpecies']) && !empty($_POST['areaSpecies']))
	{	
		// on test si la valeur est dans le tableau
		if (in_array ("dogAndCat", $_POST['areaSpecies']))
		{
			// si elle y est on test s'il y a déjà un résultat
			if(isset($resultat))
			{
				$i += 1;
				// s'il y a deja un resultat et ce test est vrai ca veux dire qu'il ne reste plus de valeurs dans le tableau
				if($i == count($_POST['areaSpecies']))
				{
					$resultat .= "Chats et Chiens";
				}
				// sinon ca veux dire qu'il reste des valeurs dans le tableau. On met une virgule.
				else
				{
					$resultat .= "Chats et Chiens, ";
				}
			}
			else
			{	
				// s'il n'y a pas deja de resultat on cree la variable resultat.
				// si ce test est vrai ca veut dire qu'il n'y a qu'un valeur dans la tableau. Donc pas besoin de virgule .
				if (count ($_POST['areaSpecies']) == 1)
				{
					$resultat = "Chats et Chiens";
				}
				// Sinon ca veut dire qu'il y a plusieurs valeurs dans la tableau. Il y a besoin d'une virgule.
				else
				{
					$resultat = "Chats et Chiens, ";
				}
			}
		}
		if (in_array ("cattle", $_POST['areaSpecies']))
		{
			
			if(isset($resultat))
			{
				$i += 1;
				if($i == count($_POST['areaSpecies']))
				{
					$resultat .= "Bétail";
				}
				else
				{
					$resultat .= "Bétail, ";
				}
			}
			else
			{	
				if (count ($_POST['areaSpecies']) == 1)
				{
					$resultat = "Bétail";
				}
				else
				{
					$resultat = "Bétail, ";
				}
			}
		}
		if (in_array ("sheep", $_POST['areaSpecies']))
		{
			if(isset($resultat))
			{
				$i += 1;
				if($i == count($_POST['areaSpecies']))
				{
					$resultat .= "Mouton";
				}
				else
				{
					$resultat .= "Mouton, ";
				}
			}
			else
			{	
				if (count ($_POST['areaSpecies']) == 1)
				{
					$resultat = "Mouton";
				}
				else
				{
					$resultat = "Mouton, ";
				}
			}
		}
		if (in_array ("swine", $_POST['areaSpecies']))
		{
			if(isset($resultat))
			{
				$i += 1;
				if($i == count($_POST['areaSpecies']))
				{
					$resultat .= "Porc";
				}
				else
				{
					$resultat .= "Porc, ";
				}
			}
			else
			{	
				if (count ($_POST['areaSpecies']) == 1)
				{
					$resultat = "Porc";
				}
				else
				{
					$resultat = "Porc, ";
				}
			}
		}
		if (in_array ("poultry", $_POST['areaSpecies']))
		{
			if(isset($resultat))
			{
				$i += 1;
				if($i == count($_POST['areaSpecies']))
				{
					$resultat .= "Volaille";
				}
				else
				{
					$resultat .= "Volaille, ";
				}
			}
			else
			{	
				if (count ($_POST['areaSpecies']) == 1)
				{
					$resultat = "Volaille";
				}
				else
				{
					$resultat = "Volaille, ";
				}
			}
		}
		if (in_array ("equine", $_POST['areaSpecies']))
		{
			if(isset($resultat))
			{
				$i += 1;
				if($i == count($_POST['areaSpecies']))
				{
					$resultat .= "Cheval";
				}
				else
				{
					$resultat .= "Cheval, ";
				}
			}
			else
			{	
				if (count ($_POST['areaSpecies']) == 1)
				{
					$resultat = "Cheval";
				}
				else
				{
					$resultat = "Cheval, ";
				}
			}
		}
		if (in_array ("fish", $_POST['areaSpecies']))
		{
			if(isset($resultat))
			{
				$i += 1;
				if($i == count($_POST['areaSpecies']))
				{
					$resultat .= "Poisson";
				}
				else
				{
					$resultat .= "Poisson, ";
				}
			}
			else
			{	
				if (count ($_POST['areaSpecies']) == 1)
				{
					$resultat = "Poisson";
				}
				else
				{
					$resultat = "Poisson, ";
				}
			}
		}
		if (in_array ("other", $_POST['areaSpecies']))
		{
			if(isset($resultat))
			{
				$i += 1;
				if($i == count($_POST['areaSpecies']))
				{
					$resultat .= "Autre";
				}
				else
				{
					$resultat .= "Autre, ";
				}
			}
			else
			{	
				if (count ($_POST['areaSpecies']) == 1)
				{
					$resultat = "Autre";
				}
				else
				{
					$resultat = "Autre, ";
				}
			}
		}
		if (in_array ("all", $_POST['areaSpecies']))
		{
			if(isset($resultat))
			{
				$i += 1;
				if($i == count($_POST['areaSpecies']))
				{
					$resultat .= "Tous";
				}
				else
				{
					$resultat .= "Tous, ";
				}
			}
			else
			{	
				if (count ($_POST['areaSpecies']) == 1)
				{
					$resultat = "Tous";
				}
				else
				{
					$resultat = "Tous, ";
				}
			}
		}
		if (in_array ("noSpecies", $_POST['areaSpecies']))
		{
			if(isset($resultat))
			{
				$i += 1;
				if($i == count($_POST['areaSpecies']))
				{
					$resultat .= "Pas de spécialité";
				}
				else
				{
					$resultat .= "Pas de spécialité, ";
				}
			}
			else
			{	
				if (count ($_POST['areaSpecies']) == 1)
				{
					$resultat = "Pas de spécialité";
				}
				else
				{
					$resultat = "Pas de spécialité, ";
				}
			}
		}
		return $resultat;
	}
	//sinon 
	else
	{
		// on affiche rien
		echo " ";
	}
}

www.myspace.com/kickntoast
95 % des erreurs proviennent de ce qu'il y a entre le clavier et la chaise
Pensez à cocher "résolu" le cas échéant
Répondre à Dante-33

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Xil, le mercredi 8 octobre 2008 à 11:27:29
Ca fait beaucoup de code pour pas grand chose...
Mais si ça fonctionne et que ça te convient, soit!
Répondre à Xil

Résultats pour [PHP] envoie de mail par formulaire

Problème config serveur pour envoie mail (Résolu) Bonjour, Je suis actuellement en train de tester mon site web mais j 'ai toujours un soucie avec mon formulaire d'envoi mail. J'utilise php5 et MySQL. j'ai toujour un message d'erreur qui apparait lors de mes tentatives... www.commentcamarche.net/forum/affich-6232718-probleme-config-serveur-pour-envoie-mail
Mail d'envoi des formulaires (Résolu) Bonjour, J'ai repris les formulaires que j'avais d'un autre site... et j'ai un souci avec l'envoi des formulaires, car ils partent sur l'adresse mail de l'ancien site. Donc j'ai regardé le "mailto" mais je... www.commentcamarche.net/forum/affich-5075224-mail-d-envoi-des-formulaires
Envoi de formulaire (Résolu) Bonjour, J'ai mis en place sur mon site un système d'envoi de formulaires à partir d'un script PHP form2mail téléchargé sur le web. Il marche parfaitement bien grâce à quelques mises au point faites sur ce forum (merci!). J'ai... www.commentcamarche.net/forum/affich-6447126-envoi-de-formulaire

Résultats pour [PHP] envoie de mail par formulaire

[PHP] Fonction mail()La fonction mail() est bloquée chez certains des hébergeurs gratuits pour des raisons de sécurité (afin d'éviter le spam notamment), l'adresse ip de la machine qui a demandé le script sera alors indiquée dans le header 'X-MM-Mail-From-IP'. renseignez... www.commentcamarche.net/faq/sujet-117-php-fonction-mail

Résultats pour [PHP] envoie de mail par formulaire

Envoi un formulaire avec dreamweaver (Résolu)Bonjour, à tous je suis nouveau sur le site Je viens de créer un site internet pour mon beau père avec dreamweaver grâce à de nombreux tuto Mais il me reste un problème lors de l envoi du formulaire En effet âpres saisi des champs je clique sur envoie... www.commentcamarche.net/forum/affich-4566718-envoi-un-formulaire-avec-dreamweaver
Retour à la ligne formulaire PHP mail (Résolu)Bonjour, Je sais que c'est question a souvent été posée mais bon... Je veux retranscrire les retours à la ligne dans mon form php en envoi mail J'ai essayé streplace de \r\n en mais comme j'ai désactivé les htmlspecialchars, ça ne... www.commentcamarche.net/forum/affich-4018101-retour-a-la-ligne-formulaire-php-mail
Je craque: html-php case à cocher + sélection (Résolu)Bonjour, je craque !!!!! j'ai créé un formulaire html avec un traitement php (envoie par mail de tous les champs, malheureusement les cases à cocher ainsi que le menu déroulant (sélect) je n'arrive pas à l'intégrer dans le corps du mail... www.commentcamarche.net/forum/affich-2341821-je-craque-html-php-case-a-cocher-selection

Résultats pour [PHP] envoie de mail par formulaire

PHP - Mail et fonctions réseauPHP étant un langage consacré au Web, il possède bien évidemment des fonctions lui permettant de communiquer avec le "monde extérieur" à l'aide de fonctions standards. Le service le plus utilisé sur Internet étant la messagerie électronique, il est... www.commentcamarche.net/contents/php/phpmail.php3