Formulaire php...petite erreur à réparer...

pook's
Invité n'ayant pas de compte PHPfrance

25 avr. 2005, 18:27

j'ai un code php pour un formulaire...
il fonctionne très bien...
mais
dans le mail que je reçois quand j'envoie le formulaire, je reçois toutes les réponses sauf une: celle du menu déroulant.

quelqu'un peut m'aider? merci!!!

Mammouth du PHP | 19672 Messages

25 avr. 2005, 18:28

Montre nous la partie traitement du code. Vérifie aussi que tu initialises bien la variable correspondant au champ manquant.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

pook's
Invité n'ayant pas de compte PHPfrance

25 avr. 2005, 18:31

j'y connais absolument rien en php...

voilà le code...

mais merci d'avance :D

<?php

$email_dest = "[email protected]";

if ($_POST['envoi']) {

$message_remerciement = "Nous vous remercions de vous être inscrit sur ... Nous visiterons votre site dans les plus brefs délais et l\'inscrirons sur l\'annuaire s\'il correspond réellement au sujet. Cordialement, l\'équipe de ...";

// E-mail headers:
$headers ="MIME-Version: 1.0 \n";
$headers .="From: [email protected] \n";
$headers .="Content-Type: text/html; charset=iso-8859-1 \n";

$subject = "Inscription à l\'annuaire";

$partie_entete = "<html><head>
<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>
</head>
<body bgcolor=#FFFFFF>";

for ($a=1; $a<= $_POST['nbre_champs_texte']; $a++) {
$partie_champs_texte .= "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_champ'.$a] . " = " . $_POST['champ'.$a] . "</font><br>";
}

if ($_POST['nbre_zone_email'] != 0) {
$partie_zone_email = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_email'] . " = " . $_POST['zone_email'] . "</font><br>";
}

if ($_POST['nbre_zones_texte'] != 0) {
$partie_zone_texte = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_zone'] . " = " . $_POST['zone_texte'] . "</font><br>";
$partie_zone_texte = stripslashes($partie_zone_texte);
}

$fin = "</body></html>";

$sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_zone_texte . $fin;

// Send the e-mail
if (@!mail($email_dest,$subject,$sortie,$headers)) {
echo("Envoi du formulaire impossible");
} // Closing if !mail...

} // Closing if edit
?><html>
<head>
<title>Assistant d'envoi de formulaires</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript"><!-- Hide script from older browsers
function verifSelection()
{if (mail_form.champ1.value == "") {
alert("Veuillez remplir ce champ")
return false
} if (mail_form.champ2.value == "") {
alert("Veuillez remplir ce champ")
return false
} if (mail_form.zone_email.value == "") {
alert("Veuillez remplir ce champ")
return false
}

invalidChars = " /:,;'"

for (i=0; i<invalidChars.length; i++) { // does it contain any invalid characters?
badChar = invalidChars.charAt(i)

if (mail_form.zone_email.value.indexOf(badChar,0) > -1) {
alert("Votre adresse e-mail contient des caractères invalides. Veuillez vérifier.")
mail_form.zone_email.focus()
return false
}
}

atPos = mail_form.zone_email.value.indexOf("@",1) // there must be one "@" symbol
if (atPos == -1) {
alert('Votre adresse e-mail ne contient pas le signe "@". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}

if (mail_form.zone_email.value.indexOf("@",atPos+1) != -1) { // and only one "@" symbol
alert('Il ne doit y avoir qu\'un signe "@". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}

periodPos = mail_form.zone_email.value.indexOf(".",atPos)

if (periodPos == -1) { // and at least one "." after the "@"
alert('Vous avez oublié le point "." après le signe "@". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}

if (periodPos+3 > mail_form.zone_email.value.length) { // must be at least 2 characters after the
alert('Il doit y avoir au moins deux caractères après le signe ".". Veuillez vérifier.')
mail_form.zone_email.focus()
return false
}if (mail_form.zone_texte.value == "") {
alert("Veuillez remplir ce champ")
return false
} } // Fin de la fonction

</script>
</head>

<body>
<form name="mail_form" method="post" action="<?=$PHP_SELF?>" onSubmit="return verifSelection()">
<div align="center"></div>
<p align="center">
<?php
if ($message_remerciement) {
echo("<font face=Verdana size=2>");
echo(stripslashes($message_remerciement));
echo("</p></body></html>");
exit();
}
?>
<table width="566" border="0" align="center">
<p align="center">
</p><tr>
<td><font face="Verdana" size="2">Titre du site</font></td>
<td><input name="champ1" type="text"></td>
</tr><tr>
<td><font face="Verdana" size="2">Url du site</font></td>
<td><input name="champ2" type="text"></td>
</tr><tr>
<td width><font face="Verdana" size="2">Votre e-mail</font></td>
<td width><input name="zone_email" type="text"></td>
</tr><tr>
<td valign="top"><font face="Verdana" size="2">Description du site</font></td>
<td><textarea name="zone_texte" cols="50" rows="10"></textarea></td>
</tr><tr>
<td valign="top"><font face="Verdana" size="2">Rubrique</font></td>
<td>
<select name="rubrique">
<option value=" Formation1">Formation, aide scolaire : toutes branches confondues</option>
<option value=" Formation2">Formation, aide scolaire : langues : français</option>
<option value=" Formation3">Formation, aide scolaire : langues : anglais</option>
<option value=" Formation4">Formation, aide scolaire : langues : néerlandais</option>
<option value=" Formation5">Formation, aide scolaire : langues : espagnol</option>
<option value=" Formation6">Formation, aide scolaire : langues : allemand</option>
<option value=" Formation7">Formation, aide scolaire : langues : autre</option>
<option value=" Formation8">Formation, aide scolaire : sciences</option>
<option value=" Formation9">Formation, aide scolaire : histoire</option>
<option value=" Formation10">Formation, aide scolaire : géographie</option>
<option value=" Formation11">Formation, aide scolaire : mathématiques</option>
<option value=" Formation12">Formation, aide scolaire : autres</option>
<option value=" projets">Projets pédagogiques</option>
<option value=" dico">Dictionnaires, encyclopédies</option>
<option value=" bac">Bac</option>
<option value=" bib">Bibliothèques</option>
<option value=" trad">Traductions</option>
<option value=" corr">Corrigés</option>
<option value=" autres">Autres</option>
</select>
</tr><tr>
<td valign="top"><input name="nbre_champs_texte" type="hidden" id="nbre_champs_texte" value="2">
<input name="nbre_zones_texte" type="hidden" value="1">
<input name="nbre_zone_email" type="hidden" value="1">
<input name="titre_champ1" type="hidden" value="Titre du site"><input name="titre_champ2" type="hidden" value="Url du site"><input name="titre_email" type="hidden" value="Votre e-mail"><input name="titre_zone" type="hidden" value="Description du site"></td>
<td><div align="center">
<input type="reset" name="Reset" value="Effacer">
<input type="submit" name="envoi" value="Envoyer">
</div></td>
</tr>
</table>
<div align="center"></div>
</form>
</body>
</html>

ViPHP
pjl
ViPHP | 2119 Messages

25 avr. 2005, 18:31

Va va pas Cyrano de demander le code.

Après tout le monde va le voir.

Un peu de courage que diable, passe un coup de chiffonnette sur ta boule de cristal et le code apparaitra.

Mammouth du PHP | 19672 Messages

25 avr. 2005, 18:34

Va va pas Cyrano de demander le code.

Après tout le monde va le voir.

Un peu de courage que diable, passe un coup de chiffonnette sur ta boule de cristal et le code apparaitra.
Damned, c'est vrai, j'avais oublié ma boule de cristal :langue:
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 19672 Messages

25 avr. 2005, 18:53

Bon, la réponse, telle que je l'imaginais: le champ de sélection n'est pas récupéré, donc pas envoyé. Plutôt que des pages d'explication, voilà le code PHP réparé, à toi d'arranger la mise en page de l'ajout.
<?php

$email_dest = "[email protected]";

if ($_POST['envoi'])
{
    $message_remerciement = "Nous vous remercions de vous être inscrit sur ... Nous visiterons votre site dans les plus brefs délais et l\'inscrirons sur l\'annuaire s\'il correspond réellement au sujet. Cordialement, l\'équipe de ...";

    // E-mail headers:
    $headers ="MIME-Version: 1.0 \n";
    $headers .="From: [email protected] \n";
    $headers .="Content-Type: text/html; charset=iso-8859-1 \n";

    $subject = "Inscription à l\'annuaire";

    $partie_entete = "<html><head>
<meta http-equiv=Content-Type content=text/html; charset=iso-8859-1>
</head>
<body bgcolor=#FFFFFF>";

    for ($a=1; $a<= $_POST['nbre_champs_texte']; $a++) {
        $partie_champs_texte .= "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_champ'.$a] . " = " . $_POST['champ'.$a] . "</font><br>";
    }

    if ($_POST['nbre_zone_email'] != 0) {
        $partie_zone_email = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_email'] . " = " . $_POST['zone_email'] . "</font><br>";
    }

    if ($_POST['nbre_zones_texte'] != 0) {
        $partie_zone_texte = "<font face='Verdana' size='2' color='#003366'>" . $_POST['titre_zone'] . " = " . $_POST['zone_texte'] . "</font><br>";
        $partie_zone_texte = stripslashes($partie_zone_texte);
    }
    $partie_zone_choix = "<font face='Verdana' size='2' color='#003366'>Rubrique : " . $_POST['rubrique'] . "</font>";

    $fin = "</body></html>";

    $sortie = $partie_entete . $partie_champs_texte . $partie_zone_email . $partie_zone_texte . $partie_zone_choix . $fin;

    // Send the e-mail
    if (@!mail($email_dest,$subject,$sortie,$headers)) {
        echo("Envoi du formulaire impossible");
    } // Closing if !mail...

} // Closing if edit
?>
Attention, je n'ai recopié que la partie PHP du haut, à toi de remettre le HTML et je JavaScript comme ils étaient avant.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 2 Messages

25 avr. 2005, 19:00

merci merci merci!!! :D

Mammouth du PHP | 19672 Messages

25 avr. 2005, 19:10

Pas de quoi ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Petit nouveau ! | 2 Messages

25 avr. 2005, 19:14

c'est juste agréable de recevoir des réponses rapidement...
il ne me reste plus qu'à essayer de comprendre comment tout ça fonctionne :$ lol

Eléphant du PHP | 357 Messages

26 avr. 2005, 11:36

Cyrano t'ai vraiment géniale !!!!
pooketteuh si tu veux un site explicatif pour commencer le php je te conseil sans aucune hésitation

www.siteduzero.com

c'est vraiment tres bien fait et bien expliqué