Eléphanteau du PHP |
17 Messages
10 sept. 2007, 21:58
J'ai bien regardé le lien au-dessus et j'ai toujours des erreurs dans mon code.
Merci de bien vouloir m'aider car j'en ai besoin rapidement
Voici mon code html :
Code : Tout sélectionner
<form name="form1" method="post" action="traitement2.php">
<table width="673" border="0">
<tr>
<td height="26" colspan="6"><div align="left" class="titre2"><strong>1° Information
personnelle </strong></div></td>
</tr>
<tr>
<td width="152"> </td>
<td width="6"> </td>
<td colspan="4"> </td>
</tr>
<tr>
<td><div align="right"><span class="texte">Société</span> :</div></td>
<td> </td>
<td colspan="4"><input name="societe" type="text" id="societe">
<!--s -->
<!--Saisissez votre Nom --></td>
</tr>
<tr>
<td><div align="right"><span class="texte">Nom*</span> :</div></td>
<td> </td>
<td width="149"><input name="nom" type="text" id="Nom"></td>
<td width="90" class="texte"><div align="right">Prénom*
:</div></td>
<td width="6"> </td>
<td width="244"><input name="prenom" type="text" id="prenom"></td>
</tr>
<tr>
<td class="texte"><div align="right">Fonction :</div></td>
<td> </td>
<td colspan="4"><input name="fonction" type="text" id="fonction"></td>
</tr>
<tr>
<td class="texte"><div align="right">Adresse* :</div></td>
<td> </td>
<td><input name="adresse" type="text" id="adresse"></td>
<td class="texte"><div align="right">Code Postal* : </div></td>
<td> </td>
<td><input name="codepostal" type="text" id="codepostal"></td>
</tr>
<tr>
<td class="texte"><div align="right">Ville* :</div></td>
<td> </td>
<td><input name="ville" type="text" id="ville"></td>
<td class="texte"><div align="right">Pays : </div></td>
<td> </td>
<td><input name="pays" type="text" id="pays"></td>
</tr>
<tr>
<td class="texte"><div align="right">Téléphone : </div></td>
<td> </td>
<td><input name="telephone" type="text" id="telephone"></td>
<td class="texte"><div align="right">Fax : </div></td>
<td> </td>
<td><input name="fax" type="text" id="fax"></td>
</tr>
<tr>
<td class="texte"><div align="right">Email* : </div></td>
<td> </td>
<td><input name="email" type="text" id="email"></td>
<td class="texte"><div align="right">Site Internet : </div></td>
<td> </td>
<td><input name="site" type="text" id="site"></td>
</tr>
<tr>
<td>
<div align="center"> </div></td>
<td> </td>
<td> </td>
<td><div align="center"> </div></td>
<td> </td>
<td> </td>
</tr>
<tr>
<td colspan="6"><strong class="titre2">2° Votre projet </strong></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td class="texte"><div align="right">Langue source : </div></td>
<td class="texte"> </td>
<td class="texte">
<div align="left">
<select name="select">
<option value="1">Afrikaans</option>
... </select>
</div></td>
<td><div align="center"> </div></td>
<td class="texte"><div align="right">Langue cible 1 : </div></td>
<td class="texte"> </td>
<td class="texte">
<div align="left">
<select name="select2">
<option value="0">Aucune</option>
...
</select>
<td class="texte"><div align="right">Langue cible 2 : </div></td>
<td class="texte"> </td>
<td class="texte">
<div align="left">
<select name="select3">
<option value="0">Aucune</option>
...
</select>
</div></td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td class="texte"><div align="right">Langue cible 3 : </div></td>
<td class="texte"> </td>
<td class="texte">
<div align="left">
<select name="select4">
<option value="0">Aucune</option>
...
</select>
</div></td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td class="texte"><div align="right">Langue cible 4 : </div></td>
<td class="texte"> </td>
<td class="texte">
<div align="left">
<select name="select5">
<option value="0">Aucune</option>
...
</select>
</div></td>
</tr>
<tr>
<td valign="top"><div align="right" class="texte">Domaine du projet
: </div></td>
<td> </td>
<td colspan="4" class="texte"><textarea name="projet" cols="50" rows="7" id="projet"></textarea></td>
<tr class="texte">
<td valign="middle"><div align="right">Joindre le fichier : </div></td>
<td> </td>
<td colspan="4"><input name="fichier" type="file" id="fichier" size="40"></td>
</tr>
<td><div align="center">
<input name="submit" type="submit"
value="Envoyer">
</table>
</form>
et mon code php
<?php
// dans le cas de l'envoi d'un fichier joint il convient de séparer le corps du message du fichier
// pour cela on utilise un identifiant de séparateur
// identifiant de séparateur, en principe unique
$limite = md5(uniqid(time()));
$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$mess_ok = "Votre demande a bien été prise en compte.";
$message = $msg_erreur;
$fich= $_FILES['fichier']['tmp_name'];
$ftaille = $_FILES['fichier']['size'];
$ftype = $_FILES['fichier']['type'];
$fnom = $_FILES['fichier']['name'];
$entetedate = date("D, j M Y H:i:s +0100"); // Offset horaire
define('MAIL_DESTINATAIRE','[email protected]'); //adresse mail de destination
define('MAIL_SUJET','Demande de devis'); //Sujet du mail
// Tester le serveur
if(strtoupper(substr(PHP_OS,0,3)=='WIN'))
{
$eol="\r\n";
$sol="\n";
}elseif(strtoupper(substr(PHP_OS,0,3)=='MAC'))
{
$eol="\r";
}else
{
$eol="\n";
}
// Verification des champs laissé vide
if (empty($_POST['nom']))
$message .= "Votre nom<br/>";
if (empty($_POST['prenom']))
$message .= "Votre Prenom<br/>";
if (empty($_POST['adresse']))
$message .= "Votre adresse <br/>";
if (empty($_POST['codepostal']))
$message .= "Votre Code postal<br/>";
if (empty($_POST['ville']))
$message .= "Votre Ville<br/>";
if (empty($_POST['email']))
$message .= "Votre adresse mail<br/>";
if (strlen($message) > strlen($msg_erreur))
{
echo $message;
}
else
{
foreach($_POST as $index => $valeur)
$$index = stripslashes(trim($valeur));
}
//Préparation de l'entête du mail:
$mail_entete = "From: {$_POST['nom']}"
."<{$_POST['email']}>\r\n";
$mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
$mail_entete .= "X-Mailer: PHP/" . phpversion() . "\n" ;;
$mail_entete .= "Date: $entetedate";
$mail_entete .= "Content-Type: multipart/mixed;\n"; // On indique que le mail est divisé en plusieurs parties
$mail_entete .= "boundary=\"----=$limite\"\n\n"; // On indique quel est le séparateur utilisé
// préparation du corps du mail
$mail_corps = "Société: $societe\n";
$mail_corps .= "Message de : $nom $prenom\n";
$mail_corps .= "Fonction : $fonction\n";
$mail_corps .= "Adresse : $adresse, $codepostal $ville, $pays\n";
$mail_corps .= "Son numéro de téléphone: $telephone, fax : $fax\n";
$mail_corps .= "Son site Internet : $site\n";
$mail_corps .= "Langue source : $select\n";
$mail_corps .= "Langue cible 1: $select2\n";
$mail_corps .= "Langue cible 2 : $select3\n";
$mail_corps .= "Langue cible 3 : $select4\n";
$mail_corps .= "Langue cible 4 : $select5\n\n\n";
$mail_corps .= "Domaine du projet : $projet";
// composition de l'en-tête du message : le message textuel suivi du code du fichier
$msg = "----$limite\r\n";
$msg .= "Content-type:text/plain;charset=us-ascii\r\n";
$msg .= "Content-transfer-encoding:8bit\r\n";
// Il est indispensable d'introduire une ligne vide entre l'entête et le texte
$msg .= "\r\n";
$msg .= "$mail_corps\r\n";
$msg .= "----$limite\r\n";
$msg .= "Content-type:$ftype;name=$fnom\r\n";
$msg .= "Content-transfer-encoding:base64\r\n\r\n";
$msg .= "$code\r\n";
$msg .= "----$limite----";
// envoi du mail
if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$msg,$mail_entete))
{
//Le mail est bien expédié
echo $mess_ok;
} else
{
//Le mail n'a pas été expédié
echo 'Une erreur est survenue lors de l\'envoi du formulaire par email';
}
?>
Voici ce qu'il m'affiche lorsque j'appui sur envoyer sans remplir le formulaire :
Erreur. Les champs suivants doivent être obligatoirement remplis :
Votre nom
Votre Prenom
Votre adresse
Votre Code postal
Votre Ville
Votre adresse mail
Votre demande a bien été prise en compte.
Je reçois donc quelque chose sur ma boite mail vu que la "demande a bien eté prise en compte"
boundary="----=a143b0df4cd8c28caab3865a468c1b63"
To:
[email protected]
----631b24c105a94cba6633f761365aeacf
Content-type:text/plain;charset=us-ascii
Content-transfer-encoding:8bit
Société:
Message de :
Fonction :
Adresse : , ,
Son numéro de téléphone: , fax :
Son site Internet :
Langue source : 1
Langue cible 1: 0
Langue cible 2 : 0
Langue cible 3 : 0
Langue cible 4 : 0
Domaine du projet :
----631b24c105a94cba6633f761365aeacf
Content-type:;name=
Content-transfer-encoding:base64
----631b24c105a94cba6633f761365aeacf----
Quand je remplis les champs je ne reçois rien
Modifié en dernier par
b|zhon le 11 sept. 2007, 13:02, modifié 2 fois.