8797 sujets

Développement web côté serveur, CMS

Bonjour,
Quelqu'un pourait-il m'aider sur un formulaire HTML avec un PHP pour valider et envoyer le formulaire
Voci le code HTML

<form method="POST" action="ecrivez_nous.php3" name="ecrivez-nous">
              <table width="748" align="center" height="388">
                <tr> 
                  <td colspan="3" height="9"><font color="#0000FF">Nous sommes 
                    le:<b><font color="#000099"> <i> 
                    <script language="JavaScript" src="js_date.js"></script>
                    </i></font></b></font></td>
                </tr>
                <tr> 
                  <td width="12"></td>
                  <td width="333"> 
                    <div align="right"><font color="#0000FF"><small>Nom:<b><font color="#FF0000">*</font></b></small></font></div>
                  </td>
                  <td width="432"><b><font face="Verdana"><small> 
                    <input type="text" name="nom" size="50">
                    </small></font></b></td>
                </tr>
                <tr> 
                  <td width="12"></td>
                  <td width="333"> 
                    <div align="right"><font color="#0000FF"><small>Pr&eacute;nom 
                      :<b><font color="#FF0000">*</font></b></small></font></div>
                  </td>
                  <td width="432"><b><font face="Verdana"><small> 
                    <input type="text" name="prenom" size="50">
                    </small></font></b></td>
                </tr>
                <tr> 
                  <td width="12"></td>
                  <td width="333"> 
                    <div align="right"><font color="#0000FF"><small>Adresse E-Mail:<b><font color="#FF0000">*</font></b></small></font></div>
                  </td>
                  <td width="432"><b><font face="Verdana"><small> 
                    <input type="text" name="email" size="50">
                    </small></font></b></td>
                </tr>
                <tr> 
                  <td width="12"></td>
                  <td width="333"> 
                    <div align="right"><font color="#0000FF"><small>Adresse :<b><font color="#FF0000">*</font></b></small></font></div>
                  </td>
                  <td width="432"><b><font face="Verdana"><small> 
                    <input type="text" name="adresse" size="50" value="">
                    </small></font></b></td>
                </tr>
                <tr> 
                  <td width="12"></td>
                  <td width="333"> 
                    <div align="right"><font color="#0000FF"><small>Choisir une 
                      Cat&eacute;gorie :<b><font color="#FF0000">*</font></b></small></font></div>
                  </td>
                  <td width="432"><b><font face="Verdana"><small>
                    <select name="categorie" size="1">
                      <option value="0" selected>- Faite un choix -</option>
                      <option value="Adh&eacute;rent &agrave; l'ADGCP-63">Adh&eacute;rent 
                      &agrave; l'ADGCP-63</option>
                      <option value="Garde non Adh&eacute;rent">Garde non Adh&eacute;rent</option>
                      <option value="Pr&eacute;sident de Soci&eacute;t&eacute;">Pr&eacute;sident 
                      de Soci&eacute;t&eacute;</option>
                      <option value="Responsable de Soci&eacute;t&eacute;">Responsable 
                      de Soci&eacute;t&eacute;</option>
                      <option value="Responsable de Battues">Responsable de Battues</option>
                      <option value="Chasseur">Chasseur</option>
                      <option value="Non Chasseur">Non Chasseur</option>
                      <option value="Questions diverses">Questions diverses</option>
                    </select>
                    </small></font></b></td>
                </tr>
                <tr> 
                  <td width="12"></td>
                  <td width="333"> 
                    <div align="right"><font color="#0000FF"><small>Message :<b><font color="#FF0000">*</font></b></small></font></div>
                  </td>
                  <td width="432"><b><font face="Verdana"><small> 
                    <textarea name="message" cols="70"></textarea>
                    </small></font></b></td>
                </tr>
                <tr> 
                  <td width="12"></td>
                  <td colspan="2">(<font color="#0000FF"><small><b><font color="#FF0000">*</font></b></small></font>) 
                    Tous les champs sont obligatoires pour pouvoir recevoir la 
                    r&eacute;ponse &agrave; votre message.</td>
                </tr>
              </table>
              <p align="center"><small><font face="Verdana"> 
                <input type="submit" value="Envoyer" name="envoyer">
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
                <input
type="reset" value="Effacer la Saisie" name="recommencer">
                </font></small> </p>
</form>


Et voici le code PHP3 qui bloque quelque part mais j'ai beau tourner et retourner toutes les variables mais rien n'y fait.

<!-- DEBUT DU SCRIPT  mail.php3-->
<html>
<head></head>
<body>
<font color="#0000FF"> 
<?
/* Ce script a été développé par Nadine Gaine.
Vous pouvez l'utiliser gratuitement à des fins NON-COMMERCIALES seulement, et le modifier à votre convenance.
Trouvé sur  http://www.toulouse-renaissance.net/c_outils/
 
*/
$MailTo = "contact@adgcp-63.com.com"; //adresse à laquelle sera envoyé le contenu du formulaire
$MailCc = "dcompan@wanadoo.fr"; // adresse à laquelle sera envoyé un communiqué
$MailSubject = "Demande de Renseignements"; //texte qui va figurer dans le champ "sujet" du email
$MailHeader = "From: "$EMail" ("$email"); //adresse email qui va figurer dans le champ "expéditeur" du email et qui peut être remplacé par la variable "$champx" ("$champ3").

/* Les routines suivantes permettent à chacune des variables de prendre la valeur des champs du formulaire et de les stocker ensuite dans la variable globale MailBody qui constituera le corps du message */

$Envoi = 1; //initialisation de la variable envoi à 1

if ($nom == ""){ //nom du champ1
echo("<font face=verdana size=2>Vous n'avez pas renseigné votre Nom.</font><br>"); //message qui s'affiche si le visiteur n'a pas rempli ce champ
$Envoi = 0; //si le champ1 n'a pas été rempli, la variable envoi prend la valeur de 0
}
else {
$MailBody .= "Nom : $nom\n"; //si le champ1 contient de l'information, elle est stockée dans la variable MailBody
}
if ($prenom == ""){
echo("<font face=verdana size=2>Vous n'avez pas renseigné votre Prénom.</font><br>");
$Envoi = 0;
}
else {
$MailBody .= "Prénom : $prenom\n";
}
if ($email == ""){
echo("<font face=verdana size=2>Pour pouvoir recevoir une réponse merci de renseigner votre adresse E-Mail</font><br>");
$Envoi = 0;
}
else {
$MailBody .= "Adresse E-Mail : $email\n";
}
if ($adresse == ""){
echo("<font face=verdana size=2>Si nous avons du courrier à vous faire parvenir, merci de renseigner votre adresse.</font><br>");
$Envoi = 0;
}
else {
$MailBody .= "Adresse : $adresse\n";
}
if ($categorie == ""){
echo("<font face=verdana size=2>Vous avez oublié de choisir une catégorie.</font><br>");
$Envoi = 0;
}
else {
$MailBody .= "Catégorie Choisie : $categorie\n";
}
if ($message == ""){
echo("<font face=verdana size=2>Exposez clairement votre question ou vos observations dans le champ message.</font><br>");
$Envoi = 0;
}
else {
$MailBody .= "Message : $message\n";
}
if ($Envoi == 0) echo("<p>&nbsp;</p><p>&nbsp;</p><p align=\"center\"><a href=\"http://adgcp-63.com/ecrivez_nous1.htm\"><strong>Retour</strong></a></p>"); 
//Envoi du message

if ($Envoi == 1) { //vérification que la variable envoi est bien à 1
mail($MailTo, $MailSubject, $MailBody, $MailHeader); //envoi du message
mail($MailCc, $MailSubject, $MailBody, $MailHeader); //envoi du communiqué (enlever // pour le rendre opérationnel
echo("<p><font face=verdana size=2>Votre message a bien été envoyé.<br>Merci de vos commentaires.</font>"); echo("<p>&nbsp;</p><p>&nbsp;</p><p align=\"center\"><a href=\"http://adgcp-63.com/accueil.php3\"><strong>Retour</strong></a></p>"); //affichage d'un message de confirmation.
}
?>
</font> 
</body>
</html>
<!-- FIN DU SCRIPT mail.php3-->


Merci pour vos réponses que j'attend avec impatience popur pouvoir tester sur mon serveur ce nouveau formulaire.
Salut,

a écrit :
Et voici le code PHP3 qui bloque quelque part


Tu peux préciser les symptômes exacts ? (page blanche ?)

As-tu pensé à activer tous les messages d'erreurs dans ton "php.ini" ?

Je vais tâcher de tester ton code mais en le lisant j'ai l'impression que la ligne 14 (initialisation de $MailHeader) est erronée (vive la coloration syntaxique !)

Smiley cligne
Ton code est particulièrement dégueux..

PHP3 je ne me souviens plus trop de la configuration par défaut. Je pense que le problème vient des variables globales.

Si elles sont désactivées dans ton php.ini tu ne sais pas accéder aux éléments de formulaire directement par $nom.

Esseye avec

$_GLOBAL['nom'] ou $HTTP_POST_VARS['nom'] ou $_POST['nom']

Mais bon ça peut être tout à fait autre chose, je n'ai fait que survoler Smiley smile
Pardon j'ai oublié de répondre à une question:

a écrit :
Tu peux préciser les symptômes exacts ? (page blanche ?)

As-tu pensé à activer tous les messages d'erreurs dans ton "php.ini" ?

Le symptome est la page blanche.
Et aussi quel php.ini?
Pour le php.ini, laisse tomber si tu n'administres pas le serveur.
Sinon, ta méthode de <form> est "post", donc tu ne peux pas accéder aux variables directement par leur nom, ou alors passe ta methode en "get".
Mais "post" est nettement meilleure question sécurité. Pour récupérer les variables en php3, je crois qu'il faut utiliser "$HTTP_POST_VARS". par exemple:
$variable=htmlentities(stripslashes($HTTP_POST_VARS["variable"]),ENT_QUOTES);

Quant au register_globals, mieux vaut ne pas toucher à ça si tu ne sais pas ce que c'est... Smiley cligne
Modifié par chu (16 May 2005 - 22:52)
Nonobsotant ton problème, si tu est chez un hebergeur (payant ou gratuit) qui utilise encore PHP3, je ne saurait trop te conseiller d'en changer sur le champs... le nombre de faille de sécurité connu de PHP3 (qui ne seront jamais corrigé) et les possiblité offerte par PHP4 (et à fortiori PHP5) sont autant d'argument qui devrait t'inciter a trouver un hebergement plus correcte !
Bonjour,
Je viens tout juste des résoudre mon problème.

Dans les noms des variables j'avais mis des majuscules, des espaces, des apostrophes.... et c'est cela qui bloqué tout le script.

Merci pour votre aide.