Problème envoi de requete formulaire PHP

Fermé
floiris Messages postés 24 Date d'inscription dimanche 12 août 2007 Statut Membre Dernière intervention 4 février 2010 - 23 sept. 2008 à 21:44
 floiris - 6 oct. 2008 à 21:07
Bonjour,

Est-ce qu'une bonne âme pourrait m'aider, on m'a aider à faire un formulaire et une page PHP3 pour le renvoi mais ce message s'affiche quand je clique sur envoyer de la page formulaire

erreur page page Fatal error: Call to undefined function: email() in form2mail.php3 on line 65

Je peux envoyer les deux fichiers à celui qui voudrait m'aider, je lance un sacré SOS , je suis super débutant en PHP et je me prends la tête !!!

Merci d'avance Floriris

9 réponses

Re salut, j'ai collé le bout de code que tu m'as envoyé et j'ai une nouvelle erreur

Parse error: syntax error, unexpected T_VARIABLE, expecting '(' in form2mail.php3 on line 4

je te met le code de la page php, peut ête que j'ai mal placé le code. merci encore


<?php

//Teste la réception de données
if(isset $_POST)
{
'Récupère les infos du formulaire
$nom = $_POST['Nom'];
$tel = $_POST['Tel'];ED
$mail = $_POST['Mail'];
'sujet du mail
$sujet = "Réservation";
'Corps du mail
$msg = "Réservation de " . $nom . " Tel : " . $tel . " mail : " . $mail;
'Initialise l'adresse mail du destinataire (ton adresse en fait)
$dest = "florinda_2@hotmail.fr";

'envoi du mail
mail($dest,$sujet,$msg);
}
?>

<html>

<head>

<META HTTP-EQUIV="Content-Type" CONTENT=" text/html; charset=iso-8859-1">

<title></title>

<script language="JavaScript" type="text/JavaScript">
<!--



function MM_preloadImages() { //v3.0

var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();

var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)

if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}

}
//-->
</script>

<META NAME="Author" LANG="fr" CONTENT="sauveur tumeo">

</head>



<body marginheight="0" topmargin="0">

<div align="center"></div>

<br>

<table width="421" border="0" align="center" cellpadding="0" cellspacing="6" style="BORDER-RIGHT: #990000 1px solid; BORDER-TOP: #990000 1px solid; BORDER-LEFT: #990000 1px solid; BORDER-BOTTOM: #990000 1px solid">

<TBODY>

<tr>

<td> </td>

</tr>

<tr>

<td><div align="center">Votre Réservation est Prise en Compte.</div>

</td>

</tr>

<tr>

<td><div align="center">Nous vous contacterons tres bientôt</div>

</td>

</tr>

<tr>

<td> </td>

</tr>

<tr>

<td><div align="center">Merci</div>

</td>

</tr>

<tr>

<td> </td>

</tr>

</table>

</body>

</html>


<?php
}
// affiche le html qui suit si erreur
//
else{
?>
<html>
<head><title>Erreur de formulaire</title></head>
<body bgcolor="white">
<h1> Erreur de formulaire </h1>
</body>
</html>
<?php
}
?>

</body>

</html>

<?php

}

?>
0
incaout Messages postés 347 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 novembre 2012 74
24 sept. 2008 à 14:01
Salut

Ton problème vient apparemment du fait que PHP ne connait pas la fonction "email()" que tu appelles.
Si tu veux utiliser la fonction interne d'envoi de courrier de Php, il faut utiliser mail();

Tu devrais passer à la version 5 de PHP qui offre plus de fonctions et de facilités sur certaines choses ;-)

Cdlt

IC
-1
floiris Messages postés 24 Date d'inscription dimanche 12 août 2007 Statut Membre Dernière intervention 4 février 2010
24 sept. 2008 à 14:21
Salut, merci de ta réponse mais je ne vois pas ce que je dois changé, l'extension du fichier php3 par php5 et remplacer email par mail.

je te met en lien les deux pages ,
la page reservation en html qui appelle la page php3 pour confirmer la réservation

http://spiritphotos.free.fr/taxi/reservation1.html
http://spiritphotos.free.fr/taxi/form2mail.php3

voilà et bonne journée
-1
incaout Messages postés 347 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 novembre 2012 74
25 sept. 2008 à 08:45
Salut
Le problème vient des premières lignes dans ton fichier form2mail. Supprimes tout ce qu'il y a avant la balise <HTML>

Maintenant ce fichier n'est pas un fichier PHP. Il ne contient aucune ligne de code PHP. En fait, il affiche le message de confirmation de réservation et c'est tout. Est ce l'effet souhaité ou devrait il faire autre chose ?

Pour passer en PHP 5, il faut que tu installes le programme PHP 5 à la place de PHP 3.

Cdlt

IC
-1

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

Posez votre question
floiris Messages postés 24 Date d'inscription dimanche 12 août 2007 Statut Membre Dernière intervention 4 février 2010
25 sept. 2008 à 10:56
Salut !

en fait il faut que je recoive par email la demande de réservation, et ensuite que la demande de réservation s'affiche sur la page aussi pour indiquer au client que tout a été bien pris en compte.

Florinda
-1
incaout Messages postés 347 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 novembre 2012 74
25 sept. 2008 à 14:28
Ok, dans ce cas là, il te faut ajouter du code PHP dans ton fichier form2Mail.

<?php

//Teste la réception de données
if(isset $_POST)
{
'Récupère les infos du formulaire
$nom = $_POST['Nom'];
$tel = $_POST['Tel'];
$mail = $_POST['Mail'];
'sujet du mail
$sujet = "Réservation";
'Corps du mail
$msg = "Réservation de " . $nom . " Tel : " . $tel . " mail : " . $mail;
'Initialise l'adresse mail du destinataire (ton adresse en fait)
$dest = "monadresse@mail.com";

'envoi du mail
mail($dest,$sujet,$msg);
}
?>
<HTML>
Ici la suite de ta page.

Evidemment, c sommaire, mais c pour donner une idée :-)

Bon courage

IC
-1
je vais tester tout dans la soirée et je te dirai si j'arrive enfin à faire fonctionner ce formulaire, avec toutes ces explications ça devrait aller. merci et bonne soirée . Florinda
0
Re salut, j'ai collé le bout de code que tu m'as envoyé et j'ai une nouvelle erreur

Parse error: syntax error, unexpected T_VARIABLE, expecting '(' in form2mail.php3 on line 4

je te met le code de la page php, peut ête que j'ai mal placé le code. merci encore


<?php

//Teste la réception de données
if(isset $_POST)
{
'Récupère les infos du formulaire
$nom = $_POST['Nom'];
$tel = $_POST['Tel'];ED
$mail = $_POST['Mail'];
'sujet du mail
$sujet = "Réservation";
'Corps du mail
$msg = "Réservation de " . $nom . " Tel : " . $tel . " mail : " . $mail;
'Initialise l'adresse mail du destinataire (ton adresse en fait)
$dest = "florinda_2@hotmail.fr";

'envoi du mail
mail($dest,$sujet,$msg);
}
?>

<html>

<head>

<META HTTP-EQUIV="Content-Type" CONTENT=" text/html; charset=iso-8859-1">

<title></title>

<script language="JavaScript" type="text/JavaScript">
<!--



function MM_preloadImages() { //v3.0

var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();

var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)

if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}

}
//-->
</script>

<META NAME="Author" LANG="fr" CONTENT="sauveur tumeo">

</head>



<body marginheight="0" topmargin="0">

<div align="center"></div>

<br>

<table width="421" border="0" align="center" cellpadding="0" cellspacing="6" style="BORDER-RIGHT: #990000 1px solid; BORDER-TOP: #990000 1px solid; BORDER-LEFT: #990000 1px solid; BORDER-BOTTOM: #990000 1px solid">

<TBODY>

<tr>

<td> </td>

</tr>

<tr>

<td><div align="center">Votre Réservation est Prise en Compte.</div>

</td>

</tr>

<tr>

<td><div align="center">Nous vous contacterons tres bientôt</div>

</td>

</tr>

<tr>

<td> </td>

</tr>

<tr>

<td><div align="center">Merci</div>

</td>

</tr>

<tr>

<td> </td>

</tr>

</table>

</body>

</html>


<?php
}
// affiche le html qui suit si erreur
//
else{
?>
<html>
<head><title>Erreur de formulaire</title></head>
<body bgcolor="white">
<h1> Erreur de formulaire </h1>
</body>
</html>
<?php
}
?>

</body>

</html>

<?php

}

?>
0
incaout Messages postés 347 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 novembre 2012 74
29 sept. 2008 à 20:22
Salut,

G corrigé un ou deux trucs. il faut enlever mes commentaires ou les faire précéder de //
Par contre tu ne peux pas gérer l'affichage conditionnel de ta page comme tu le fais. Si tu veux faire un affichage conditionnel, il faut que tu reprennes le script PHP à part dans un fichier PHP et que tu fasses une redirection en fonction du test de la condition. Je te mets le code à la suite (séapré par une ligne)

<?php

//Teste la réception de données
if(isset ($_POST))
{
//Récupère les infos du formulaire
$nom = $_POST['Nom'];
$tel = $_POST['Tel'];
$mail = $_POST['Mail'];
//sujet du mail
$sujet = "Réservation";
//Corps du mail
$msg = "Réservation de " . $nom . " Tel : " . $tel . " mail : " . $mail;
//Initialise l'adresse mail du destinataire (ton adresse en fait)
$dest = "florinda_2@hotmail.fr";

//envoi du mail
mail($dest,$sujet,$msg);
}
?>

<html>

<head>

<META HTTP-EQUIV="Content-Type" CONTENT=" text/html; charset=iso-8859-1">

<title></title>

<script language="JavaScript" type="text/JavaScript">
<!--



function MM_preloadImages() { //v3.0

var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();

var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)

if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}

}
//-->
</script>

<META NAME="Author" LANG="fr" CONTENT="sauveur tumeo">

</head>



<body marginheight="0" topmargin="0">

<div align="center"></div>

<br>

<table width="421" border="0" align="center" cellpadding="0" cellspacing="6" style="BORDER-RIGHT: #990000 1px solid; BORDER-TOP: #990000 1px solid; BORDER-LEFT: #990000 1px solid; BORDER-BOTTOM: #990000 1px solid">

<TBODY>

<tr>

<td> </td>

</tr>

<tr>

<td><div align="center">Votre Réservation est Prise en Compte.</div>

</td>

</tr>

<tr>

<td><div align="center">Nous vous contacterons tres bientôt</div>

</td>

</tr>

<tr>

<td> </td>

</tr>

<tr>

<td><div align="center">Merci</div>

</td>

</tr>

<tr>

<td> </td>

</tr>

</table>

</body>

</html>

---------------------------------------------------------------------------------------------------------------------------------------------------------------
//Gestion de l'affichage conditionnel

//Fichier Php

<?php

//Teste la réception de données
if(isset ($_POST))
{
//Récupère les infos du formulaire
$nom = $_POST['Nom'];
$tel = $_POST['Tel'];
$mail = $_POST['Mail'];
//sujet du mail
$sujet = "Réservation";
//Corps du mail
$msg = "Réservation de " . $nom . " Tel : " . $tel . " mail : " . $mail;
//Initialise l'adresse mail du destinataire (ton adresse en fait)
$dest = "florinda_2@hotmail.fr";
//Mémorise la page à charger en cas de succès
$page="confirmation.html" //mettre ici le nom du fichier HTML à afficher pour la confirmation
//envoi du mail
mail($dest,$sujet,$msg);
}
else
{
$page="Erreur.html"; //mettre ici le nom du fichier à afficher pour l'erreur
}

//Redirige vers la bonne page
header($page);
?>

Donc il te faut en tout 4 fichiers :
1) le fichier HTML avec le formulaire
2) le fichier PHP qui est appelé lors de la soumission du formulaire
3) le fichier HTML de confirmation
4) le fichier HTML d'erreur.

Bon courage

IC

PS. j'espère ne pas avoir fait d'autres erreurs. A tester
-1
hello ça marche !!! enfin que je commence à y voir plus clair, je m'entraine à changer les champs qui seront envoyé par email (par je veux récupérer le nom, le tel, l'adresse...)

j'ai copié le premier code que tu as placé, par contre le deuxième ou tu parles de gestion de l'affichage conditionnel, je suis entrain de regarder sur le net ce dont il s'agit, à priori je n'en ai pas besoin dans ce cas précis non? en tout cas je te remercie de ta patience car en général quand on est débutant , c'est pas évident de comprendre les infos que que l'on trouve même dans les tutoriaux, c'est jamais expliqué" de façon pédagogique.

J'y retourne et bonne soirée. Florinda
0
incaout Messages postés 347 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 novembre 2012 74
1 oct. 2008 à 20:33
Salut.

Y a pas de quoi. Bonne continuation ;-)

IC
-1
Coucou me revoilà, je me débrouille pour rajouter des champs à recevoir par emails,

par ex :

$msg = "-Réservation de " . $nom . " -Mon Adresse est: " . $Adresse . " -Mon mail : " . $mail . "-ma ville :" . $ville . " Jour de Départ:" . $jours_aller ;

je reçois bien toutes les infos sur mon adresses email mais tout est à la ligne

ex:

-Réservation de renaud -Mon Adresse est: dsdsd -Mon mail : florinda_2@hotmail.fr-ma ville :les chapelles JOurde Départ:2

est-ce possible de recevoir ces mêmes infos mais que ce soit à la ligne , est-il possible d'incopore des br dans du php?

Sinon dernière question, mon formulaire contient beaucoup de données obligatoire que le client devra cocher, puisque c'est une réservation, je suis obligé de rajouter à chaque des champs dans le fichier php
comme ça

$nom = $_POST['Nom'];
$Adresse = $_POST['Adresse'];
$mail = $_POST['Mail'];
$ville = $_POST['Ville'];
$jours_aller = $_POST['jours_aller'];


Merci et bonne soirée.
0
incaout Messages postés 347 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 15 novembre 2012 74
3 oct. 2008 à 22:28
Salut,

Tu peux parfaitement mettre du HTML dans le code PHP. Il suffit d'inclure les balises comme cela :

$texte = "<html><title></title><body><p>Reservation de " . $nom . "</p>";

Pour les champs, tu n'es pas forcément obligé de les associer à des variables.

Tu peux aussi faire $msg = "nom : " . $_POST['Nom'];

Si enfin tu souhaites mettre chaque nom de champ et sa valeur sur une ligne, tu peux faire une boucle de parcours du tableau $_POST

foreach($_POST as $key=>$valeur)
{
$msg = $msg . $key . " : " .$valeur ."<br>";
}
Et cela te donnera :
Nom : Xxxxxxxxxxxxxxx
Prénom : Yyyyyyyyyyyy
etc....

Cdlt

IC
-1
tes explications sont super ! bonne soirée . florinda
0