[résolu] Insérer un formulaire PHP dans un tableau html
Posté : 08 janv. 2008, 00:35
Bonjour,
J'ai un souci que je ne comprends pas avec php. J'ai un message Parse error: qui revient à chaque fois que j'insére mon formulaire dans un tableau html. Si je mets le même code php en dehors du tableau html, ça fonctionne bien.
Pour être plus précis voilà le code qui fonctionne :
Apparament le morceau de code qui pose probléme est celui-ci :
(Le parse error est suivi du numéro de la ligne 2).
J'ai un souci que je ne comprends pas avec php. J'ai un message Parse error: qui revient à chaque fois que j'insére mon formulaire dans un tableau html. Si je mets le même code php en dehors du tableau html, ça fonctionne bien.
Pour être plus précis voilà le code qui fonctionne :
<?php
if ($etat!="ok"){// le formulaire n'a pas été soumis, ou soumis avec une erreur
if ($etat=="erreur"){
//le formulaire a été soumis avec une erreur
echo "<p><strong>".$erreur."</strong></p>\n";
// afficher le message d'erreur
}
?>
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
<p><label for="email_expediteur">Votre adresse e-mail (obligatoire):</label><br />
<input type="text" size="40" name="email_expediteur" id="email_expediteur" value="<?php
if (!empty($_POST["email_expediteur"])) {
// l'adresse email de l'expéditeur a été saisie: la réafficher
echo htmlspecialchars($_POST["email_expediteur"],ENT_QUOTES);
}
?>" />
</p>
<p><label for="titre">Titre de message (facultatif):</label><br />
<input type="text" size="40" name="titre" id="titre" value="<?php
if (!empty($_POST["titre"])) {
// le titre du message a été saisi: le réafficher
echo htmlspecialchars($_POST["titre"],ENT_QUOTES);
}
?>" />
</p>
<p><label for="message">Message (obligatoire):</label><br />
<textarea name="message" id="message" cols="40" rows="5"><?php
if (isset($_POST["message"])) {
// le message a été saisi: le réafficher
echo htmlspecialchars($_POST["message"],ENT_QUOTES);
}
?></textarea>
</p>
<p><input type="submit" name="envoyer" value="Envoyer" />
</p>
</form>
<?php
}
else {
// le formulaire a été soumis sans erreur, on envoie le mail
$entete = "From: ".$_POST["email_expediteur"]." <".$_POST["email_expediteur"].">\n";
$entete .= "MIME-Version: 1.0";
if (@mail($email_webmaster,$_POST["titre"],$_POST["message"],$entete)){
// mail envoyé
echo "Votre message a ete envoye.<br />\n";
echo "<a href=http://hotel-ulysse.fr>Retour a la page d'accueil</a>\n";
}
else {
// erreur lors de l'envoi du mail
echo "Un problème s'est produit lors de l'envoi du message.\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a>\n";
}
}
?>
Mais pour coller au design du site je dois l'intégrer dans un tableau ce qui donne :<TABLE WIDTH="600" BORDER="0" CELLPADDING="0" CELLSPACING="10" BGCOLOR="#FFFFCC">
<TR>
<TD>
<BR><BR>
<TABLE WIDTH="600" BORDER="0" CELLPADDING="0" CELLSPACING="4">
<TR> <TDALIGN="RIGHT">
<FONT FACE="Arial, geneva, helvetica" SIZE="-1" COLOR="#000000">
<!-- Insérer le code du formulaire php ici -->
<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
<p><label for="email_expediteur">Votre adresse e-mail (obligatoire):</label><br />
<input type="text" size="40" name="email_expediteur" id="email_expediteur" value="<?php
if (!empty($_POST["email_expediteur"])) {
// l'adresse email de l'expediteur a ete saisie: la reafficher
echo htmlspecialchars($_POST["email_expediteur"],ENT_QUOTES);
}
?>" />
</p>
<p><label for="titre">Titre de message (facultatif):</label><br />
<input type="text" size="40" name="titre" id="titre" value="<?php
if (!empty($_POST["titre"])) {
// le titre du message a été saisi: le réafficher
echo htmlspecialchars($_POST["titre"],ENT_QUOTES);
}
?>" />
</p>
<p><label for="message">Message (obligatoire):</label><br />
<textarea name="message" id="message" cols="40" rows="5">
<?php
if (isset($_POST["message"])) {
// le message a été saisi: le réafficher
echo htmlspecialchars($_POST["message"],ENT_QUOTES);
}
?>
</textarea>
</p>
<p><input type="submit" name="envoyer" value="Envoyer" />
</p>
</form>
</TD></TR>
</TABLE>
</FORM> </TD>
<?php
}
else {
// le formulaire a été soumis sans erreur, on envoie le mail
$entete = "From: ".$_POST["email_expediteur"]." <".$_POST["email_expediteur"].">\n";
$entete .= "MIME-Version: 1.0";
if (@mail($email_webmaster,$_POST["titre"],$_POST["message"],$entete)){
// mail envoyé
echo "Votre message a ete envoye.<br />\n";
echo "<a href=http://hotel-ulysse.fr>Retour a la page d'accueil</a>\n";
}
else {
// erreur lors de l'envoi du mail
echo "Un problème s'est produit lors de l'envoi du message.\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a>\n";
}
}
?>
</TR>
</TABLE><BR><BR> </TD>
</TR>
</TABLE></TD>
</TR>
</TABLE></TD>
</TR>
</TABLE></TD>
</TR>
</TABLE>
</center>
La ligne d'erreur qui apparaît aprés le parse error est celle ci (ligne 3 dans cet extrait :Code : Tout sélectionner
</FORM> </TD>
<?php
}(Le parse error est suivi du numéro de la ligne 2).
<?php
}
else {
// le formulaire a été soumis sans erreur, on envoie le mail
$entete = "From: ".$_POST["email_expediteur"]." <".$_POST["email_expediteur"].">\n";
$entete .= "MIME-Version: 1.0";
if (@mail($email_webmaster,$_POST["titre"],$_POST["message"],$entete)){
// mail envoyé
echo "Votre message a ete envoye.<br />\n";
echo "<a href=http://hotel-ulysse.fr>Retour a la page d'accueil</a>\n";
}
else {
// erreur lors de l'envoi du mail
echo "Un problème s'est produit lors de l'envoi du message.\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a>\n";
}
}
?>
Je ne comprends pas pourquoi mon formulaire php n'est utilisable que en dehors du tableau html. Je n'ai jamais eu un probléme comme ça. Quelqu'un a déjà eu un souci qui ressemble à ça ?