Page 1 sur 2

récupération de données de case à cocher

Posté : 18 mars 2005, 12:17
par JMC
bonjour tout le monde

voilà j'ai un petit problème avec mon formulaire où j'y ai inséré des case à cocher donc je voudrait savoir si elle a bien été cocher ou non
je sais pas si je me suis bien expliqué donc voilà mon formulaire

<p>FILMS:</p>
<input type=hidden name="Films[]" value="aucune">
<p align="left"><input type="checkbox" name="Films[]"value="Solaires">Films Solaires<br>
<input type="checkbox" name="Films[]" value="Divers">Films Divers<br>

et maintenant ma fonction mail qui permet de récupérer les données de la case et de me l'envoyé par mail

Films:
for ($i = 0; $i < count($Films); $i++)
{
$resultat .= $Films[$i] . "<br>";
}
ca cé un exmeple que j'ai récupérer qur un site mais sa ne marche pas.
si qu'elqu'un peut m'aider je le remercie d'avance :D

Posté : 18 mars 2005, 12:50
par robined
<p>FILMS:</p>
<p align="left"><input type="checkbox" name="Films" value="Solaires">Films Solaires<br>
<input type="checkbox" name="Films" value="Divers">Films Divers<br>

et si tu veux recuperer le resultat de ta checkbox
Films:

$resultat = $_POST['Films'];

Posté : 18 mars 2005, 12:52
par flitox

Code : Tout sélectionner

for ($i = 0; $i < count($_POST['Films']); $i++) { $resultat .= $_POST['Films'][$i] . "<br>"; }
Comme ça

Posté : 18 mars 2005, 13:02
par Invité
ben je sais pas trop justement je l'ai récupérer sur un site qui disait que cétait pour récupérer les données de case à cocher.

ensuite robined sa merche pas il me met (Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' )

et la ligne ou il y a l'erreur est (<p align="left"><input type="checkbox" name="Films" value="Solaires">Films Solaires<br>)

mais merci pour l'aide :wink: . je pense que sa doit plutot venir de ma fonction mail que de mon formulaire non?

Posté : 18 mars 2005, 13:18
par robined
tu peux faire un copier-coller du code que tu as inséré après ma reponse stp, je vois pas trop l'erreur...

Pour savoir quel code tu veux il faudrait que tu soit un peu plus precis sur ce que tu vaux faire:
Principalement, c'est juste ces 2 cases que tu veux traiter ou c'est un ensemble de cases.

Posté : 18 mars 2005, 15:19
par JMC
a oui pardon je te met le lien pour que tu vois à quoi sa ressemble
http://www.protectionsolaire.net/renseignement.htm

pour ta réponse j'ai mis exactement ce que tu as fait

Posté : 18 mars 2005, 15:27
par robined
l'erreur retournée provient de ton fichier E-mail.php a la ligne 58, peux tu me la copier stp avec lignes du dessus et du dessous?

PS: en lisant ta source, j'ai vu que tu n'avais pas mis de nom pour tes autres chexkbox ( strores exterieurs, rideaux...).

Posté : 18 mars 2005, 15:46
par JMC
ok pas de problème

Coordonnées:Tel:$tel ,Fax:$fax

Films:

$resultat = $_POST['Films']


Un mail automatique à été envoyé à $prenom $nom pour l'avertir de la bonne reception de ce message.

j'ai mis ce que tu m'a dit :?

ensuite c'est normal que j'ai rien mis au autre case car je préfère faire au fure et à mesure :D plutot que de tout faire car après pour voir l'erreur c'est plus difficile. mais une fois qu'on arrive à fair un case pour les autres c'est pareil non?

Posté : 18 mars 2005, 15:48
par Mystx
JMC tu fais un site sur les films ? on peut lfaire à deux ? tu as msn ?

Posté : 18 mars 2005, 15:52
par robined
je ne vois pas les balises php?
peux-tu envoyer toute ta page e-mail.php car il doit avoir des erreurs que je ne peux pas deviner

Posté : 18 mars 2005, 15:54
par JMC
non c'est pour sur les films au sens strict ce sont les films solaires :D c'est pas tout à fait pareil mais je te remerci beaucoup c'est super sympa de ta part :wink:

Posté : 18 mars 2005, 15:55
par JMC
a ok dsl :oops:

<?php

$nom_du_site = "Protectionsolaire";
$url_du_site = "http://www.protectionsolaire.net";
$email_du_site = "[email protected]";
$referer= getenv("HTTP_REFERER");


if ($nom == "" || $prenom == "" || $email == "")
{
echo "<center><B><U>Message non transmis</U> !</B><BR>";
echo "<BR><font color=red> <B><U>Erreur:</U></B></font> <B>Vous avez oublié de remplir un champ obligatoire ! Merci de rectifier.</B><BR><BR>
<INPUT TYPE='button' VALUE='revenir' NAME='Précédente' OnClick='history.back()'";
}
else
{
echo "<B><U>Votre message nous est bien parvenu</U> !</B>";
echo "<P>Merci $prenom $nom<BR><BR>Nous avons bien reçu votre message.<BR>
Nous vous contacterons très prochainement.<BR>Un mail automatique vous confirmera la bonne reception de votre message.<BR>
à très bientôt !<BR>";

mail("$email", "Remerciement de $nom_du_site!", "Bonjour $prenom $nom

Nous avons bien reçu votre Message

Nous vous répondrons rapidement. Merci !

à bientot !

Contact: $email_du_site

$nom_du_site : $url_du_site");

mail("$email_du_site",

"$nom_du_site message",

"Envoyé par: $prenom $nom email: $email

Nom: $nom
Prénom: $prenom
Société:$societe
Email: $email

Adresse: $adresse, $cp $ville,

Coordonnées:Tel:$tel ,Fax:$fax

Films:

$resultat = $_POST['Films']


Un mail automatique à été envoyé à $prenom $nom pour l'avertir de la bonne reception de ce message.

Adresse IP du visiteur : $ipadress

page d'envoi de ce message : $referer");
}?>

j'espère que sa pourra mieux t'aider :?

Posté : 18 mars 2005, 16:38
par robined
essaie ça, ca devrait marcher.

Il faudrait que tu te documentes sur les envois de formulaire et php car tu n'as mis aucun $_POST[].

<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php

$nom_du_site = "Protectionsolaire";
$url_du_site = "http://www.protectionsolaire.net";
$email_du_site = "[email protected]";
$referer= getenv("HTTP_REFERER");


if ($_GET['nom'] == "" || $$_GET['prenom'] == "" || $_GET['email'] == "")
{
?>
<p align="center"><B><U>Message non transmis</U> !</B><BR>
<BR><font color=red> <B><U>Erreur:</U></B></font> <B>Vous avez oublié de remplir un champ obligatoire ! Merci de rectifier.</B><BR><BR>
<INPUT TYPE='button' VALUE='revenir' NAME='Précédente' OnClick='history.back()'></p>
<?php
}
else
{
?>
<B><U>Votre message nous est bien parvenu</U> !</B>
<P>Merci $prenom $nom<BR><BR>Nous avons bien reçu votre message.<BR>
Nous vous contacterons très prochainement.<BR>Un mail automatique vous confirmera la bonne reception de votre message.<BR>
à très bientôt !<BR>
<?php
$resultat = $_POST['Films'];
mail("$_POST[email]", "Remerciement de $nom_du_site!", "Bonjour $_POST[prenom] $_POST[nom]

Nous avons bien reçu votre Message

Nous vous répondrons rapidement. Merci !

à bientot !

Contact: $email_du_site

$nom_du_site : $url_du_site");

mail("$email_du_site",

"$nom_du_site message",

"Envoyé par: $_POST[prenom] $_POST[nom] email: $_POST[email]

Nom: $_POST[nom]
Prénom: $_POST[prenom]
Société:$_POST[societe]
Email: $_POST[email]

Adresse: $_POST[adresse], $_POST[cp] $_POST[ville],

Coordonnées:Tel:$_POST[tel] ,Fax:$_POST[fax]

Films:

$resultat


Un mail automatique à été envoyé à $prenom $nom pour l'avertir de la bonne reception de ce message.

Adresse IP du visiteur : $_POST[ipadress]

page d'envoi de ce message : $referer");
}?>
</body>
</html>

Posté : 18 mars 2005, 16:52
par JMC
merci de te donner autant de mal pour moi c'ets super sympa.
donc j'ai coller ce que tu m'a fait à la place de l'autre la fonction marche mais je n'est plus mes données qui arrive dans ma boîte mail

Envoyé par: email:

Nom:
Prénom:
Email:
Société:

Adresse: , , ,
Tel:
Fax:

Un mail automatique à été envoyé à pour l'avertir de la bonne reception de ce message.

Adresse IP du visiteur :

page d'envoi de ce message : http://www.protectionsolaire.net/renseignement.htm

comme tu peut le voir j'ai l'impression que les donnée ne suivent pas :?
alors j'essaie de me documenter mais je trouve assez compliquer tout les sujets que je trouve sur le net sur le PHP alors j'essaie de me débrouiller à prendre des trucs par si par là :D mais ca parche pas toujours :?

Posté : 18 mars 2005, 17:27
par robined
j'ai refait ton code un peu plus propre

<html>
<head>
<title>Document sans titre</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php

$nom_du_site = "Protectionsolaire";
$url_du_site = "http://www.protectionsolaire.net";
$email_du_site = "[email protected]";
$referer= getenv("HTTP_REFERER");


if ($_GET['nom'] == "" || $_GET['prenom'] == "" || $_GET['email'] == "")
{
?>
<p align="center"><B><U>Message non transmis</U> !</B><BR>
<BR><font color=red> <B><U>Erreur:</U></B></font> <B>Vous avez oublié de remplir un champ obligatoire ! Merci de rectifier.</B><BR><BR>
<INPUT TYPE='button' VALUE='revenir' NAME='Précédente' OnClick='history.back()'></p>
<?php
}
else
{
?>
<B><U>Votre message nous est bien parvenu</U> !</B>
<P>Merci <?php $_GET['prenom'];?> $nom<BR><BR>Nous avons bien reçu votre message.<BR>
Nous vous contacterons très prochainement.<BR>Un mail automatique vous confirmera la bonne reception de votre message.<BR>
à très bientôt !<BR>
<?php
$resultat = $_POST['Films'];
$message="Bonjour $_POST[prenom] $_POST[nom]\n\n";
$message.="Nous avons bien reçu votre Message\n\n";
$message.="Nous vous répondrons rapidement. Merci !\n\n";
$message.="à bientot !\n\n";
$message.="Contact: $email_du_site\n$nom_du_site : $url_du_site";
mail("$_POST[email]", "Remerciement de $nom_du_site!", $message);


$message2="Envoyé par: $_POST[prenom] $_POST[nom] email: $_POST[email]\n\n";
$message2.="Nom: $_POST[nom]\n";
$message2.="Prénom: $_POST[prenom]\n";
$message2.="Société:$_POST[societe]\n";
$message2.="Email: $_POST[email]";
$message2.="Adresse: $_POST[adresse], $_POST[cp] $_POST[ville],\n\n";
$message2.="Coordonnées:Tel:$_POST[tel] ,Fax:$_POST[fax]";
$message2.="Films:\n$resultat";
$message2.="Un mail automatique à été envoyé à $_POST[prenom] $nom pour l'avertir de la bonne reception de ce message.\n";
$message2.="Adresse IP du visiteur : <?php echo $_POST['ipadress']\n\n";
$message2.="page d'envoi de ce message : $referer";

mail("$email_du_site","$nom_du_site message",$message2);
}
?>
</body>
</html>


j'ai egalement corrigé une ou deux erreurs. essaie comme ceci en recompletant bien ton formulaire.

Si ca ne marche pas, c'est que tu dois avoir des soucis de config plutot que de code.