Parse error en php

Résolu/Fermé
emarie3680 Messages postés 131 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 16 décembre 2022 - 24 oct. 2008 à 12:19
emarie3680 Messages postés 131 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 16 décembre 2022 - 29 oct. 2008 à 14:06
Bonjour,
Je suis un énorme débutant en php. J'ai fait un formulaire tout bête en htlm ainsi que le php correspondant à son traitement et qui permet de recevoir les données saisies dans ma boite mail.
J'ai un problème avec le php et il doit être énorme et facile à voir pour les initiés. Voici mon php :
<?php
if($_POST){
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
if(empty($erreurs)) {
$to = "test@yahoo.fr";
$contenu = "message de : ".$prenom." ".$nom;
$resultat = mail($to, $subject, $contenu, $reply);
if($resultat) {
echo "email envoyé";
} else {
echo "échec";
}
}
?>

Une fois mon formulaire validé, j'ai le message d'erreur suivant :
Parse error: syntax error, unexpected $end in /home/b/testquest/html/traitementest.php on line 15.
J'ai merdé à la dernière ligne !!! C'est quoi qui va pas ???
Merci pour vos réponses
Éric
A voir également:

45 réponses

emarie3680 Messages postés 131 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 16 décembre 2022 13
27 oct. 2008 à 14:22
Bon, mon formulaire évolue ... MAIS avec chaque évolution il y a de nouveaux écueils...

Voilà à quoi ressemble le fichier de traitement :
<?php
if($_POST)
{
$fille = $_POST['fille'];
$garcon = $_POST['garcon'];
$Age = $_POST['Age'];
$collegien = $_POST['collegien'];
$lyceen = $_POST['lyceen'];
$etudiant = $_POST['etudiant'];
$formation = $_POST['formation'];
$demploi = $_POST['demploi'];
$salarie = $_POST['salarie'];
$autressitu = $_POST['autressitu'];
$SituationAutre = $_POST['SituationAutre'];
$Ville = $_POST['Ville'];
$centresinteret = $_POST['centresinteret'];

if(isset($_POST['fille']))
{
$fille = htmlentities($_POST['fille']);
}

if(isset($_POST['garcon']))
{
$garcon = htmlentities($_POST['garcon']);
}

if(empty($erreurs))
{
$to = "test@yahoo.fr";
$contenu = ".$fille;
$contenu .= ".$garcon;
$resultat = mail($to,$subject,$contenu,$reply);
}

if($resultat)
{
echo "email envoyé avec succès";
}
else
{
echo "échec envoi du mail vérifiez les données entrées";
}

}
?>

Je voudrais savoir s'il y a moyen d'éviter de "déclarer" chaque champ de formulaire ($fille = $_POST......) comme j'ai fait au début. N'y a-t-il pas un traitement "par lot" ?
De la même façon, y-a-t-il un moyen d'envoyer d'un coup par mail toutes les infos saisies dans mon formulaire (que ce soit dans un champ texte ou par bouton radio) et d'avoir à utiliser 50 fois if ... isset ... htmlentities ou plus bas $contenu.
J'ai vu la fonction foreach, mais je ne sais pas si elle est applicable là ... et ce que cela pourrait donner ...
Merci d'avance,
Éric
1
briiiiix Messages postés 575 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 juin 2010 18
27 oct. 2008 à 14:56
Bien sure que c'est applicable, j'aideja donné un exemple:

http://www.commentcamarche.net/forum/affich 8386263 php move uploaded file?page=2#29
Post numero 29

Essaies d'appliquer ça sinon, je suis toujours la pour vous chers internautes
1
azerwhite Messages postés 625 Date d'inscription mardi 21 octobre 2008 Statut Membre Dernière intervention 7 novembre 2011 43
27 oct. 2008 à 14:56
Alors le foreach:

Prenons un tableau qui contient une 50ène d'email que l'on nomme tadam :
$tab_email;

foreach ($tab_email AS $email)
{
echo $email;
envoyer 'salut' à l'email $email;
}

Ben, dans le tableau $tab_email, on attribut à la case une, puis la case deux, puis la case trois etc le nom de $email grâce au AS et pour chaque $email on exécute chaque instruction. C'est magique pour les tableaux pas besoin de faire un count puis de faire un while avec le compte $i etc etc le foreach parcoure le tableau c'est méga bien
1
briiiiix Messages postés 575 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 juin 2010 18
27 oct. 2008 à 14:59
Mais biens sure les noms des champs dans le formulaire doivent correspondre aux noms de champs dans le tableau $_POST
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
emarie3680 Messages postés 131 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 16 décembre 2022 13
27 oct. 2008 à 15:20
Merci pour vos réponses, briiiix et azerwhite.
Dans mon cas, à la place de :
$fille = $_POST['fille'];
$garcon = $_POST['garcon'];
$Age = $_POST['Age'];
$collegien = $_POST['collegien'];
$lyceen = $_POST['lyceen'];
$etudiant = $_POST['etudiant'];
$formation = $_POST['formation'];
......

il faudrait que je marque une instruction du genre :
<?php
if($_POST)
{
foreach ($POST as ???)
{
????
}
if(isset($_POST['fille']))

je vois pas !!!

Et, briiiix, dans une de vos réponses, vous m'aviez indiqué la concaténation pour les lignes $contenu = et ensuite $contenu .=
J'ai voulu rajouter $contenu ..= "$... pour le champ suivant (Age), mais j'avais une parse error. Est-ce que la concaténation ne fonctionne que deux fois ?
0
azerwhite Messages postés 625 Date d'inscription mardi 21 octobre 2008 Statut Membre Dernière intervention 7 novembre 2011 43
27 oct. 2008 à 15:27
Si tu fais un

echo '<pre>';
print_r($_POST);
echo '<pre/>';



cela t'affiche quoi ?
0
briiiiix Messages postés 575 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 juin 2010 18
27 oct. 2008 à 15:37
Le principe est très simple, si tes champs dans e formulaires sont nommés ainsi:

<input type="text" name="entree_1" >
<input type="text" name="entree_2" >
etc ...

donc le code php generique doit être:

$champs_a_inserer = array (); //declaration du tableau qui va contenir les POST
$i=0; //Initialisation du compteur

foreach($_POST as $champ) //Debut de la boucle
{
$i++; //Incrementation du compteur
$champs_a_inserer[$i] = $_POST["entree_".$i]; //Stochage des POST
}

Voila comment ca marche
0
emarie3680 Messages postés 131 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 16 décembre 2022 13
27 oct. 2008 à 16:24
Oh lala !
J'ai essayé ça :

<?php
if($_POST)
{
//$fille = $_POST['fille'];
//$garcon = $_POST['garcon'];
//$Age = $_POST['Age'];
//$collegien = $_POST['collegien'];
//$lyceen = $_POST['lyceen'];
//$etudiant = $_POST['etudiant'];
//$formation = $_POST['formation'];
//$demploi = $_POST['demploi'];
//$salarie = $_POST['salarie'];
//$autressitu = $_POST['autressitu'];
//$SituationAutre = $_POST['SituationAutre'];
//$Ville = $_POST['Ville'];
//$centresinteret = $_POST['centresinteret'];

$name = array();
$i=0;

foreach($_POST as $name)
{
$i++;
$name[$i] = $_POST["name_".$i];
}

if(isset($_POST['fille']))
{
$fille = htmlentities($_POST['fille']);
}

if(isset($_POST['garcon']))
{
$garcon = htmlentities($_POST['garcon']);
}

if(empty($erreurs))
{
$to = "test@yahoo.fr";
$contenu = ".$fille;
$contenu .= ".$garcon;
$resultat = mail($to,$subject,$contenu,$reply);
}

if($resultat)
{
echo "email envoyé avec succès";
}
else
{
echo "échec envoi du mail vérifiez les données entrées";
}

}
?>

et il me renvoie "échec du mail, vérifiez les données". Help ! Il faut que je complète au niveau de if(isset ... et des lignes "$contenu ... ?
Merci d'avance
0
briiiiix Messages postés 575 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 juin 2010 18
27 oct. 2008 à 16:31
C'est clair que t'as pas compris l'utilité de la boucle que je t'ai créé, fais voir ton code html aussi et je vais voir ce que je pourrais faire pour resoudre ce problème
0
emarie3680 Messages postés 131 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 16 décembre 2022 13
27 oct. 2008 à 16:38
OK, je suis désolé ...
Voici mon code html :

<html>
<head>
<title>Questionnaire</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
function MM_findObj(n, d) { //v4.0
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
} else if (test!='R') {
if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (val<min || max<val) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
} if (errors) alert('The following error(s) occurred:\n'+errors);
document.MM_returnValue = (errors == '');
}
//-->
</script>
</head>

<body bgcolor="#FFCC66" text="#000000">
<p> </p>
<table width="75%" border="1">
<tr>
<td bordercolor="#3333CC" height="47">
<div align="center"><font size="+2"><b>QUESTIONNAIRE
!</b></font></div>
</td>
</tr>
</table>
<form action="Traitement_Quest.php" method="post">
<p>Tu es : </p>
<table width="23%" border="0">
<tr>
<td width="12%">
<input type="radio" name="fille" value="fille">
</td>
<td width="36%">Fille</td>
<td width="15%">
<input type="radio" name="garcon" value="garcon">
</td>
<td width="37%">Garçon</td>
</tr>
</table>
<p>Tu as :
<input type="text" name="Age" size="8">
ans</p>
<p>Tu es :</p>
<table width="85%" border="0">
<tr>
<td width="3%">
<input type="radio" name="collegien" value="collegien">
</td>
<td width="11%">Collégien</td>
<td width="4%"> </td>
<td width="5%">
<input type="radio" name="lyceen" value="lyceen">
</td>
<td width="8%">Lycéen</td>
<td width="5%"> </td>
<td width="4%">
<input type="radio" name="etudiant" value="etudiant">
</td>
<td width="8%">Étudiant</td>
<td width="4%"> </td>
<td width="4%">
<input type="radio" name="formation" value="formation">
</td>
<td width="44%">En formation</td>
</tr>
<tr>
<td width="3%">
<input type="radio" name="demploi" value="demploi">
</td>
<td width="11%">Demandeur d'emploi</td>
<td width="4%"> </td>
<td width="5%">
<input type="radio" name="salarie" value="salarie">
</td>
<td width="8%">Salarié</td>
<td width="5%"> </td>
<td colspan="5"> Autres Préciser :
<input type="text" name="SituationAutre">
</td>
</tr>
</table>
<p>Quelle est ta ville ? :
<input type="text" name="Ville">
</p>
<p>Comment te déplaces-tu ? :
<input type="text" name="deplacement">
</p>
<p>Quels sont tes centres d'intérêt ?
<input type="text" name="centresinteret">
</p>
<p>
<input type="submit" name="Submit" value="Envoyer" onClick="MM_validateForm('textfield','','R','textfield2','','R','textfield3','','R');return document.MM_returnValue">
<input type="reset" name="Submit2" value="Rétablir">
</p>
</form>
<p>  </p>
</body>
</html>

Voilà voilà ... J'espère que tu verras mieux où je veux en venir ...
0
briiiiix Messages postés 575 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 juin 2010 18
27 oct. 2008 à 17:14
Je me suis permis de te créer un code qui fonctionne avec la boucle de POST
Je viens de le tester, ça fonctionne

<html>
<head>
<title>Questionnaire</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
function MM_findObj(n, d) { //v4.0
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
} else if (test!='R') {
if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (val<min || max<val) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
} if (errors) alert('The following error(s) occurred:\n'+errors);
document.MM_returnValue = (errors == '');
}
//-->
</script>
</head>

<body bgcolor="#FFCC66" text="#000000">
<p> </p>
<table width="75%" border="1">
<tr>
<td bordercolor="#3333CC" height="47">
<div align="center"><font size="+2"><b>QUESTIONNAIRE
!</b></font></div>
</td>
</tr>
</table>
<form action="" method="post">
<p>Tu es : </p>
<table width="23%" border="0">
<tr>
<td width="12%">
<input type="radio" name="entree_1" value="fille" >
</td>
<td width="36%">Fille</td>
<td width="15%">
<input type="radio" name="entree_1" value="garcon">
</td>
<td width="37%">Garçon</td>
</tr>
</table>
<p>Tu as :
<input type="text" name="entree_2" size="8">
ans</p>
<p>Tu es :</p>
<table width="85%" border="0">
<tr>
<td width="3%">
<input type="radio" name="entree_3" value="collegien">
</td>
<td width="11%">Collégien</td>
<td width="4%"> </td>
<td width="5%">
<input type="radio" name="entree_3" value="lyceen">
</td>
<td width="8%">Lycéen</td>
<td width="5%"> </td>
<td width="4%">
<input type="radio" name="entree_3" value="etudiant">
</td>
<td width="8%">Étudiant</td>
<td width="4%"> </td>
<td width="4%">
<input type="radio" name="entree_3" value="formation">
</td>
<td width="44%">En formation</td>
</tr>
<tr>
<td width="3%">
<input type="radio" name="entree_4" value="demploi">
</td>
<td width="11%">Demandeur d'emploi</td>
<td width="4%"> </td>
<td width="5%">
<input type="radio" name="entree_4" value="salarie">
</td>
<td width="8%">Salarié</td>
<td width="5%"> </td>
<td colspan="5"> Autres Préciser :
<input type="text" name="entree_8">
</td>
</tr>
</table>
<p>Quelle est ta ville ? :
<input type="text" name="entree_5">
</p>
<p>Comment te déplaces-tu ? :
<input type="text" name="entree_6">
</p>
<p>Quels sont tes centres d'intérêt ?
<input type="text" name="entree_7">
</p>
<p>
<input type="submit" name="Submit" value="Envoyer" onClick="MM_validateForm('textfield','','R','textfield2','','R','textfield3','','R');return document.MM_returnValue">
<input type="reset" name="Submit2" value="Rétablir">
</p>
</form>

<?
$champs_a_inserer = array (); //declaration du tableau qui va contenir les POST
$i=0; //Initialisation du compteur

foreach($_POST as $champ) //Debut de la boucle
{
$i++; //Incrementation du compteur
$champs_a_inserer[$i] = htmlentities($_POST["entree_".$i]); //Stochage des POST
}
if ($_POST["entree_8"] != ''){$champs_a_inserer[4] = htmlentities($_POST['entree_8']);}

//Affichage de test
echo $champs_a_inserer[1]."<br>";
echo $champs_a_inserer[2]."<br>";
echo $champs_a_inserer[3]."<br>";
echo $champs_a_inserer[4]."<br>";
echo $champs_a_inserer[5]."<br>";
echo $champs_a_inserer[6]."<br>";
echo $champs_a_inserer[7]."<br>";

//Envoi de mail
$to = "test@yahoo.fr";
$subject = "Test envoi de mail";
$reply = "contact@domaine.com";
$contenu = .$champs_a_inserer[1]."<br>";
$contenu .= .$champs_a_inserer[2]."<br>";
$contenu .= .$champs_a_inserer[3]."<br>";
$contenu .= .$champs_a_inserer[4]."<br>";
$contenu .= .$champs_a_inserer[5]."<br>";
$contenu .= .$champs_a_inserer[6]."<br>";
$contenu .= .$champs_a_inserer[7]."<br>";
$resultat = mail($to,$subject,$contenu,$reply);
}
if($resultat)
{
echo "email envoyé avec succès";
}
else
{
echo "échec envoi du mail vérifiez les données entrées";
}
?>
</body>
</html>
0
Je viens de rentrer et de voir le boulot que tu as fait ! Je ne sais pas quoi te dire et comment te remercier ! Je vais imprimer tout ça et tenter de comprendre ce que tu as fait ...
En tout cas mille mercis, j'espère pouvoir un jour te rendre la pareille.
Bonne soirée, briiiiix !
Éric
0
emarie3680 Messages postés 131 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 16 décembre 2022 13
27 oct. 2008 à 21:21
C'est encore moi,
J'ai une ou deux questions à te poser :
Est-ce que je pourrai ajouter des champs facilement, tu crois ? (je veux dire sans tout basarder ?)
En fait, maintenant, il me vient tout un tas d'idées de questions supplémentaires.
Par contre, j'ai copier / coller le code dans une page html et lorsque je la mets en ligne, au-dessous des boutons "envoyer" et "rétablir" il y a du code :
"; echo $champs_a_inserer[2]."
"; echo $champs_a_inserer[3]."
"; echo $champs_a_inserer[4]."
"; echo $champs_a_inserer[5]."
"; echo $champs_a_inserer[6]."
"; echo $champs_a_inserer[7]."
"; //Envoi de mail $to = "test@yahoo.fr"; $subject = "Test envoi de mail"; $reply = "contact@domaine.com"; $contenu = .$champs_a_inserer[1]."
"; $contenu .= .$champs_a_inserer[2]."
"; $contenu .= .$champs_a_inserer[3]."
"; $contenu .= .$champs_a_inserer[4]."
"; $contenu .= .$champs_a_inserer[5]."
"; $contenu .= .$champs_a_inserer[6]."
"; $contenu .= .$champs_a_inserer[7]."
"; $resultat = mail($to,$subject,$contenu,$reply); } if($resultat) { echo "email envoyé avec succès"; } else { echo "échec envoi du mail vérifiez les données entrées"; } ?>

Je crois que ce n'est pas normal, non ?

Bonne soirée,
Éric
0
emarie3680 Messages postés 131 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 16 décembre 2022 13 > emarie3680 Messages postés 131 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 16 décembre 2022
27 oct. 2008 à 21:32
Ya un autre bug ... les mails ne me parviennent pas ... snif (évidemment, j'ai changé l'adresse test@yahoo.fr)
Tu as une idée STP ?
0
briiiiix Messages postés 575 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 juin 2010 18
27 oct. 2008 à 21:44
Essaies ça

<?
$email = "mail@domaine.com";
$sujet = "Confirmation de mail";
$messages = "test";
$fr="From: test@test.com";
// Envoi
mail ($email,$sujet,$messages,$fr);?>
0
emarie3680 Messages postés 131 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 16 décembre 2022 13
27 oct. 2008 à 22:21
Désolé, ça le fait pas ... les mails ont l'air d'être envoyés, mais rien n'arrive.
Puis il y a toujours les codes :
"; echo $champs_a_inserer[2]."
"; echo $champs_a_inserer[3]."
"; echo $champs_a_inserer[4]."
"; echo $champs_a_inserer[5]."
"; echo $champs_a_inserer[6]."
"; echo $champs_a_inserer[7]."
"; //Envoi de mail } if($resultat) { echo "email envoyé avec succès"; } else { echo "échec envoi du mail vérifiez les données entrées"; } ?>
sur le formulaire en ligne ... c'est pas très joli ...
0
briiiiix Messages postés 575 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 juin 2010 18
27 oct. 2008 à 22:27
Tu peux le supprimer, c'etait juste un moyen pour verifier que les variables postées sont récupérées.
Pour l'envoi de mail verifies que ton serveur supporte la fonction mail() de php
0
emarie3680 Messages postés 131 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 16 décembre 2022 13
27 oct. 2008 à 23:07
OK ,je peux effacer toute la partie :
"; echo $champs_a_inserer[2]."
"; echo $champs_a_inserer[3]."
"; echo $champs_a_inserer[4]."
"; echo $champs_a_inserer[5]."
"; echo $champs_a_inserer[6]."
"; echo $champs_a_inserer[7]."
"; //Envoi de mail } if($resultat) { echo "email envoyé avec succès"; } else { echo "échec envoi du mail vérifiez les données entrées"; } ?>

Par contre mon serveur accepte tout à fait la fonction mail ()
Merci encore et bonne soirée,
Éric
0
briiiiix Messages postés 575 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 juin 2010 18
27 oct. 2008 à 23:15
Tu peux me faire voir tout le code maintenant, comment il est devenu ?
0
emarie3680 Messages postés 131 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 16 décembre 2022 13
28 oct. 2008 à 09:10
Bonjour Briiiix,

Désolé de ne pas t'avoir répondu plus tôt mais j'ai eu de la visite hier soir.

Voici le nouveau code qui affiche toujours des erreurs dans le formulaire et n'envoie pas de mail au clic du bouton envoyer.

Si tu as une idée ...

<html>
<head>
<title>Questionnaire</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
function MM_findObj(n, d) { //v4.0
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
} else if (test!='R') {
if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (val<min || max<val) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
} if (errors) alert('The following error(s) occurred:\n'+errors);
document.MM_returnValue = (errors == '');
}
//-->
</script>
</head>

<body bgcolor="#FFCC66" text="#000000">
<p> </p>
<table width="75%" border="1">
<tr>
<td bordercolor="#3333CC" height="47">
<div align="center"><font size="+2"><b>QUESTIONNAIRE
!</b></font></div>
</td>
</tr>
</table>
<form action="" method="post">
<p>Tu es : </p>
<table width="23%" border="0">
<tr>
<td width="12%">
<input type="radio" name="entree_1" value="fille" >
</td>
<td width="36%">Fille</td>
<td width="15%">
<input type="radio" name="entree_1" value="garcon">
</td>
<td width="37%">Garçon</td>
</tr>
</table>
<p>Tu as :
<input type="text" name="entree_2" size="8">
ans</p>
<p>Tu es :</p>
<table width="85%" border="0">
<tr>
<td width="3%">
<input type="radio" name="entree_3" value="collegien">
</td>
<td width="11%">Collégien</td>
<td width="4%"> </td>
<td width="5%">
<input type="radio" name="entree_3" value="lyceen">
</td>
<td width="8%">Lycéen</td>
<td width="5%"> </td>
<td width="4%">
<input type="radio" name="entree_3" value="etudiant">
</td>
<td width="8%">Étudiant</td>
<td width="4%"> </td>
<td width="4%">
<input type="radio" name="entree_3" value="formation">
</td>
<td width="44%">En formation</td>
</tr>
<tr>
<td width="3%">
<input type="radio" name="entree_4" value="demploi">
</td>
<td width="11%">Demandeur d'emploi</td>
<td width="4%"> </td>
<td width="5%">
<input type="radio" name="entree_4" value="salarie">
</td>
<td width="8%">Salarié</td>
<td width="5%"> </td>
<td colspan="5"> Autres Préciser :
<input type="text" name="entree_8">
</td>
</tr>
</table>
<p>Quelle est ta ville ? :
<input type="text" name="entree_5">
</p>
<p>Comment te déplaces-tu ? :
<input type="text" name="entree_6">
</p>
<p>Quels sont tes centres d'intérêt ?
<input type="text" name="entree_7">
</p>
<p>
<input type="submit" name="Submit" value="Envoyer" onClick="MM_validateForm('textfield','','R','textfield2','','R','textfield3','','R');return document.MM_returnValue">
<input type="reset" name="Submit2" value="Rétablir">
</p>
</form>

<?
$champs_a_inserer = array (); //declaration du tableau qui va contenir les POST
$i=0; //Initialisation du compteur

foreach($_POST as $champ) //Debut de la boucle
{
$i++; //Incrementation du compteur
$champs_a_inserer[$i] = htmlentities($_POST["entree_".$i]); //Stochage des POST
}
if ($_POST["entree_8"] != ''){$champs_a_inserer[4] = htmlentities($_POST['entree_8']);}

//Affichage de test
//echo $champs_a_inserer[1]."<br>";
//echo $champs_a_inserer[2]."<br>";
//echo $champs_a_inserer[3]."<br>";
//echo $champs_a_inserer[4]."<br>";
//echo $champs_a_inserer[5]."<br>";
//echo $champs_a_inserer[6]."<br>";
//echo $champs_a_inserer[7]."<br>";

//Envoi de mail
<?
$email = "test@yahoo.fr";
$sujet = "Confirmation de mail";
$messages = "test";
$fr="From: test@test.com";
// Envoi
mail ($email,$sujet,$messages,$fr);?>

//$to = "test@yahoo.fr";
//$subject = "Test envoi de mail";
//$reply = "contact@domaine.com";
//$contenu = .$champs_a_inserer[1]."<br>";
//$contenu .= .$champs_a_inserer[2]."<br>";
//$contenu .= .$champs_a_inserer[3]."<br>";
//$contenu .= .$champs_a_inserer[4]."<br>";
//$contenu .= .$champs_a_inserer[5]."<br>";
//$contenu .= .$champs_a_inserer[6]."<br>";
//contenu .= .$champs_a_inserer[7]."<br>";
//$resultat = mail($to,$subject,$contenu,$reply);
}
if($resultat)
{
echo "email envoyé avec succès";
}
else
{
echo "échec envoi du mail vérifiez les données entrées";
}
?>
</body>
</html>
0
briiiiix Messages postés 575 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 juin 2010 18
28 oct. 2008 à 09:20
C'est normal que ça marche pas, tu viens de désactiver la partie chargée de l'envoi du mail:

//$to = "test@yahoo.fr";
//$subject = "Test envoi de mail";
//$reply = "contact@domaine.com";
//$contenu = .$champs_a_inserer[1]."<br>";
//$contenu .= .$champs_a_inserer[2]."<br>";
//$contenu .= .$champs_a_inserer[3]."<br>";
//$contenu .= .$champs_a_inserer[4]."<br>";
//$contenu .= .$champs_a_inserer[5]."<br>";
//$contenu .= .$champs_a_inserer[6]."<br>";
//contenu .= .$champs_a_inserer[7]."<br>";
//$resultat = mail($to,$subject,$contenu,$reply);

Enleves les // pour chacune des lignes que je viens de citer

$to = "test@yahoo.fr";
$subject = "Test envoi de mail";
$reply = "contact@domaine.com";
$contenu = .$champs_a_inserer[1]."<br>";
$contenu .= .$champs_a_inserer[2]."<br>";
$contenu .= .$champs_a_inserer[3]."<br>";
$contenu .= .$champs_a_inserer[4]."<br>";
$contenu .= .$champs_a_inserer[5]."<br>";
$contenu .= .$champs_a_inserer[6]."<br>";
$contenu .= .$champs_a_inserer[7]."<br>";
$resultat = mail($to,$subject,$contenu,$reply);

Bon travail
0
emarie3680 Messages postés 131 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 16 décembre 2022 13
28 oct. 2008 à 09:37
Merci Briiiiix,
J'ai remis comme c'était mais ça fait toujours pareil :
1. Une fois en ligne mon formulaire affiche ces lignes au-dessous des bouton "envoyer" et "rétablir" :
"; //echo $champs_a_inserer[2]."
"; //echo $champs_a_inserer[3]."
"; //echo $champs_a_inserer[4]."
"; //echo $champs_a_inserer[5]."
"; //echo $champs_a_inserer[6]."
"; //echo $champs_a_inserer[7]."
"; //Envoi de mail $to = "emarie3680@yahoo.fr"; $subject = "Test envoi de mail"; $reply = "contact@domaine.com"; $contenu = .$champs_a_inserer[1]."
"; $contenu .= .$champs_a_inserer[2]."
"; $contenu .= .$champs_a_inserer[3]."
"; $contenu .= .$champs_a_inserer[4]."
"; $contenu .= .$champs_a_inserer[5]."
"; $contenu .= .$champs_a_inserer[6]."
"; contenu .= .$champs_a_inserer[7]."
"; $resultat = mail($to,$subject,$contenu,$reply); } if($resultat) { echo "email envoyé avec succès"; } else { echo "échec envoi du mail vérifiez les données entrées"; } ?>
De plus, le mail n'est pas envoyé...
Merci pour ta patience.
0
emarie3680 Messages postés 131 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 16 décembre 2022 13
28 oct. 2008 à 13:12
Au sujet de mon hébergeur, voici ce qui est dit au sujet de la fonction mail() :

La fonction php mail() est disponible et fonctionne parfaitement. Cependant certaines mesures de sécurité sont présentes.

1. Les headers (le 5ième argument de la fonction mail) ne doit pas contenir de header To: (sauf si le premier paramètre est vide).
2. Il ne doit pas avoir deux sauts de ligne de suite dans les headers (\r\n\r\n ou \n\n)
3. Des headers sont ajoutés automatiquement à la fonction mail pour identifier votre site (invisible)
4. Vous pouvez envoyer un maximum de 150 mails par jour.

Ca peut aider ?
0
briiiiix Messages postés 575 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 juin 2010 18
28 oct. 2008 à 13:18
Essaies donc de créer une petite fonction qui respectes ces conditions afin de faire le test, puis on generaliseras
0
emarie3680 Messages postés 131 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 16 décembre 2022 13
28 oct. 2008 à 13:44
Merci encore pour ta réponse, Briiix. Mais je ne sais pas faire ce que tu me demandes. Je crois que je vais laisser tomber.
0
briiiiix Messages postés 575 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 juin 2010 18
28 oct. 2008 à 14:04
Ne laisses jamais tomber, ne me deçoit pas.
Aller un peut de courage.
Construit un scrip d'envoi de mail, je vais le reviser pour toi
0
emarie3680 Messages postés 131 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 16 décembre 2022 13
28 oct. 2008 à 14:48
Le script suivant fonctionne. Je reçois un mail avec soit garçon, soit fille.
En revanche, dès que j'essaie de rajouter "Age" selon le même principe que "garçon" ou "fille" j'ai une parse error au niveau de "contenu". Voilà voilà ...

<?php

if($_POST)

{

//$fille = $_POST['fille'];

//$garcon = $_POST['garcon'];

//$Age = $_POST['Age'];

//$collegien = $_POST['collegien'];

//$lyceen = $_POST['lyceen'];

//$etudiant = $_POST['etudiant'];

//$formation = $_POST['formation'];

//$demploi = $_POST['demploi'];

//$salarie = $_POST['salarie'];

//$autressitu = $_POST['autressitu'];

//$SituationAutre = $_POST['SituationAutre'];

//$Ville = $_POST['Ville'];

//$centresinteret = $_POST['centresinteret'];


if(isset($_POST['fille']))
{
$fille = htmlentities($_POST['fille']);
}

if(isset($_POST['garcon']))
{
$garcon = htmlentities($_POST['garcon']);
}

if(empty($erreurs))
{

$to = "test@yahoo.fr";
$contenu = ".$fille;
$contenu .= ".$garcon;
$resultat = mail($to,$subject,$contenu,$reply);

}

if($resultat)

{

echo "email envoyé avec succès";

}

else
{
echo "échec envoi du mail vérifiez les données entrées";

}
}
?>
0