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

briiiiix Messages postés 575 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 juin 2010 18
28 oct. 2008 à 15:35
Bon je suis dsl, cette aprem est très chargée pour moi, je serais la le soir.
A+
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 à 16:07
OK, merci Briiiix
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 à 18:53
Alors voilà, j'ai avancé et voici ce que donne mon php, et cela fonctionne !

<?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'];
$SituationAutre = $_POST['SituationAutre'];
$deplacement = $_POST['deplacement'];
$Ville = $_POST['Ville'];
$centresinteret = $_POST['centresinteret'];

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

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

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

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

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

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

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

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

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

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

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

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

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


if(empty($erreurs))
{
$to = "test@yahoo.fr";
$contenu = "$fille";
$contenu .= "$garcon ";
$contenu .= "J'ai $Age ans";
$contenu .= "$collegien";
$contenu .= "$lyceen";
$contenu .= "$etudiant";
$contenu .= "$formation";
$contenu .= "$demploi";
$contenu .= "$salarie";
$contenu .= "$SituationAutre";
$contenu .= "J'habite $Ville";
$contenu .= "Je voyage en $deplacement";
$contenu .= "$centresinteret";

$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";
}

}
?>

Comme tu peux le voir, c'est laborieux, mais j'avance petit à petit, tant pis. En revanche, pourrais-tu me dire s'il y a possibilité de passer à la ligne après chaque ligne $contenu .= car ce serait plus lisible dans le mail que je reçois.
Merci encore,
Éric
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 à 21:06
J'ai trouvé une réponse pour ma question sur le retour à la ligne : "\n"
Mais en grand nullos je ne sais pas où le mettre.
par exemple, dans la ligne :
$contenu = "$fille ";
il se met où ce "\n" ?
Merci !
0

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

Posez votre question
briiiiix Messages postés 575 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 juin 2010 18
28 oct. 2008 à 22:06
"$fille \n";
C'est simple
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 à 22:41
Ben oui, merci ! J'avais trouvé entre temps.
Bon, je te fiche la paix et te remercie pour tout, Briiiiix !
Bonne soirée ! J'espère pouvoir un jour te montrer le résultat final !
0
briiiiix Messages postés 575 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 juin 2010 18
29 oct. 2008 à 09:05
Bon courage
0
emarie3680 Messages postés 131 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 16 décembre 2022 13
29 oct. 2008 à 09:38
Bon, et là :
$contenu = $_POST['sexe'];
tu le mets où ce \n ??? Je ne trouve pas et crois avoir tout essayé !
0
emarie3680 Messages postés 131 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 16 décembre 2022 13
29 oct. 2008 à 11:06
C'est bon, j'ai trouvé !
$contenu = $_POST['sexe'] . "\n";
0
emarie3680 Messages postés 131 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 16 décembre 2022 13
29 oct. 2008 à 14:06
Encore une question (je pense la dernière).
Lorsque l'on saisit des infos dans mes champs, s'il y a des accents, ils ne sont pas pris en compte dans les messages que je reçois dans ma boîte mail.
vélo = v & e acute ; lo
C'est pas cool. Est-ce dû à un codage de mon client mail ?
Je peux éviter cela ?
Merci !
Éric
0
briiiiix Messages postés 575 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 juin 2010 18
24 oct. 2008 à 12:43
Il s'agit d'un crochet manquant.
J'ai corrigé ton code et j'ai amélioré sa présentation qui t'aide a distinguer les blocs.

<?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";
}

}
?>

Bon travail
-1
emarie3680 Messages postés 131 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 16 décembre 2022 13
24 oct. 2008 à 13:05
Super !
Je te remercie mille fois pour ton aide et ta gentillesse !
Bonne continuation !!
Éric
-1
emarie3680 Messages postés 131 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 16 décembre 2022 13
24 oct. 2008 à 15:03
C'est encore moi ...
J'ai voulu compléter mon formulaire en rajoutant deux boutons radio (oui et non).
J'aurais voulu récupérer le choix de l'utilisateur dans mon mail. Encore une fois j'ai une parse erreur :
Voici mon script :
<?php
if($_POST){
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$musique = $_POST['musique'];

if(isset($_POST['musique']))
htmlentities ($_POST['musique']);

if(empty($erreurs)) {
$to = "test@yahoo.fr";
$contenu = "message de : ".$prenom." ".$nom;
$contenu = "reponse : ".$musique.";
$resultat = mail($to, $subject, $contenu, $reply);
}

if($resultat) {
echo "email envoyé";
} else {
echo "échec";
}

}
?>

Le résultat est :
Parse error: syntax error, unexpected T_STRING in /home/b/bijtoulon/html/traitementest.php on line 18

Vous arrivez à voir le gag ? Ca fait deux heures que j'essaie et je vois rien.
Merci !
-1
briiiiix Messages postés 575 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 juin 2010 18
24 oct. 2008 à 15:10
Voila,
Un conseil, essaies toujours de diviser ton code en blocs

<?php
if($_POST){
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$musique = $_POST['musique'];

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

if(empty($erreurs)) {
$to = "test@yahoo.fr";
$contenu = "message de : ".$prenom." ".$nom;
$contenu = "reponse : ".$musique;
$resultat = mail($to, $subject, $contenu, $reply);
}

if($resultat) {
echo "email envoyé";
} else {
echo "échec";
}

}
?>
-1
emarie3680 Messages postés 131 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 16 décembre 2022 13
24 oct. 2008 à 15:23
OK, merci encore ! En fait, tu laisses un espace après chaque fonction ?
-1
azerwhite Messages postés 625 Date d'inscription mardi 21 octobre 2008 Statut Membre Dernière intervention 7 novembre 2011 43
24 oct. 2008 à 15:32
Ben, débrouille toi pour que cela soit visible c'est à dire


<?php
if($_POST)
{
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$musique = $_POST['musique'];

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

if(empty($erreurs))
{
$to = "test@yahoo.fr";
$contenu = "message de : ".$prenom." ".$nom;
$contenu = "reponse : ".$musique;
$resultat = mail($to, $subject, $contenu, $reply);
}

if($resultat)
{
echo "email envoyé";
}
else
{
echo "échec";
}

}
?>


On appel cela indentation et la présentation d'un code. Le quel des deux tu lis le mieux =>

function insert_id($record = 0) {if ($record)return (mysql_insert_id($record)); return (mysql_insert_id());}function insert_id($record = 0){iif ($record)return (mysql_insert_id($record)); return (mysql_insert_id()); }


function insert_id($record = 0)
{
if ($record)
return (mysql_insert_id($record));
return (mysql_insert_id());
}
-1
emarie3680 Messages postés 131 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 16 décembre 2022 13
24 oct. 2008 à 15:36
J'ai encore un souci ...
Du coup, dans mon mail, je ne récupère plus que la réponse cochée par l'utilisateur, je ne vois plus son nom et son prénom. (Avant j'avais "réponse de : nom prénom")
Je ne peux utiliser $contenu qu'une seule fois ?
Ou il faut mettre le champ musique et son résultat à la suite de ".nom; ?
En fait, je demande le nom et le prénom puis je pose la question Aimez-vous la musique ? avec oui non comme réponse possible.
-1
azerwhite Messages postés 625 Date d'inscription mardi 21 octobre 2008 Statut Membre Dernière intervention 7 novembre 2011 43
24 oct. 2008 à 15:45
A ben, oui tu peux pas utiliser plusieurs fois le nom du variable dans ces conditions
pour le nom et le prenom tu devrais nommer ta var : $nom_prenom et pour la musique $musique

et On ne peut pas le voir parce que Comment Ca Marche change la mise en forme mais après

après une condition ou une boucle je te conseil de mettre un TAB histoire d'avancer un peu le code
-1
briiiiix Messages postés 575 Date d'inscription vendredi 24 octobre 2008 Statut Membre Dernière intervention 1 juin 2010 18
24 oct. 2008 à 15:55
Dsl pour mon absence

Pour $contenu utilisez plustot la concatenation

if(empty($erreurs))
{
$to = "test@yahoo.fr";
$contenu = "message de : ".$prenom." ".$nom;
$contenu .= "reponse : ".$musique;
$resultat = mail($to, $subject, $contenu, $reply);
}

le point avant le = indique a php qu'il faut ajouter a la variable et non pas ecraser.

Bon travail
-1
emarie3680 Messages postés 131 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 16 décembre 2022 13
24 oct. 2008 à 16:05
Merci pour ta réponse,
Je vais essayer ce que tu me conseilles ce soir car je commence à fatiguer ...
En effet, c'est plus clair au niveau présentation... et lisibilité.
Si je nomme ma var $nom_prenom qu'est-ce qu'il se passe pour des deux champs de formulaire qui eux sont différents ?
Par contre, si j'ai un formulaire, disons, d'une dizaine de champs texte et d'une vingtaine de boutons radio ... ça va donner quoi ça au niveau du codage en php ???? Il y faudrait y passer des journées entières pour écrire le php correspondant au formulaire html... avec toutes les erreurs qui peuvent en résulter ... Vu comment je galère avec un formulaire de 4 champs !!! Il n'y a pas un moyen de générer le php d'après le formulaire ?
Tu pourrais me conseiller un livre pour apprendre le php ? J'ai pas envie de passer mon temps à emboucanner tout le monde sur le forum à cause de parse errors en pagaille !
Merci encore,
Éric
-1
emarie3680 Messages postés 131 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 16 décembre 2022 13
24 oct. 2008 à 16:10
Merci Brixxx !
Je viens de lire votre réponse au sujet du point et de la concaténation. Fallait l'inventer ça !
Que pensez-vous de mes questions existentielles posées plus haut ?
Bonne soirée et merci encore,
Éric
-1