mail_php et formulaire (voir dernier post pr le probleme)
Posté : 29 sept. 2007, 12:35
Bonjour a tous,
Depuis que j'ai changé d'hebergeur (passé de free à netim) , j'ai des soucis dans mes fichiers *.php
J'ai envoyé un mail à Netim pour m'expliquer le probleme.
Voici la réponse :
Voici le code en *.php
Depuis que j'ai changé d'hebergeur (passé de free à netim) , j'ai des soucis dans mes fichiers *.php
J'ai envoyé un mail à Netim pour m'expliquer le probleme.
Voici la réponse :
Mais je ne vois pas comment il faut faire .C'est une différence de configuration entre votre serveur précédent et celui
de l'hébergement
Pour des raisons de sécurité les variables ne sont plus déclarés de manière
globale.
Par exemple le champ nom, une fois le formulaire validé, ne sera pas
automatiquement déclaré dans la variable $nom mais plutôt par $_POST["nom"]
Voici le code en *.php
<?php
{
$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$msg_ok = "Votre demande a bien été prise en compte.";
// Verification des champs laissé vide
if (empty($_POST['nom']))
$erreur .= "Votre nom<br/>";
if (empty($_POST['prenom']))
$erreur .= "Votre Prenom<br/>";
if (empty($_POST['adresse']))
$erreur .= "Votre adresse <br/>";
if (empty($_POST['codepostal']))
$erreur .= "Votre Code postal<br/>";
if (empty($_POST['ville']))
$erreur.= "Votre Ville<br/>";
if (empty($_POST['email']))
$erreur .= "Votre adresse mail<br/>";
if (strlen($erreur) > strlen($msg_erreur))
{
echo $erreur;
}
else
if ( ! empty($fichier))
{
$fich= $_FILES['fichier']['tmp_name'];
$ftaille = $_FILES['fichier']['size'];
$ftype = $_FILES['fichier']['type'];
$fnom = $_FILES['fichier']['name'];
// identifiant de séparateur, en principe unique
$limite = md5(uniqid(time() ));
// ajout d'un texte à la saisie
$mail_corps .= "\r\nNB: Ajout d'une pièce jointe : $fnom\r\n";
// ouverture du fichier joint uploadé en lecture
$f = fopen($fich, "r") or die("ouverture du fichier $fich impossible ...");
// récupération du code du fichier joint
$code =fread($f, $ftaille);
// encodage standard
$code = chunk_split(base64_encode($code));
$destinataire = '[email protected]';
if(strtoupper(substr(PHP_OS,0,3)=='WIN'))
{
$eol="\r\n";
$sol="\n";
}
else
if(strtoupper(substr(PHP_OS,0,3)=='MAC'))
{
$eol="\r";
}
else
{
$eol="\n";
}
$from_email = trim(htmlentities($_POST['email']));
$entetemail = "From: $from_email \n"; // Adresse expéditeur
$entetemail .= "Cc: \n";
$entetemail .= "Bcc: \n"; // Copies cachées
$entetemail .= "Reply-To: $from_email \n"; // Adresse de retour
$entetemail .= "X-Mailer: PHP/" . phpversion() . "\n" ;
$entetemail .= "Content-Type: multipart/mixed;\n"; // On indique que le mail est divisé en plusieurs parties
$entetemail .= "Content-Type: multipart/mixed;boundary=\"".$limite."\"".$eol;// Mail divisé en plusieurs parties et séparateur utilisé
// préparation du corps du mail
$mail_corps = "Societe: ($_POST['societe'])\n";
$mail_corps .= "Message de : ($_POST['nom']) ($_POST['prenom'])\n";
$mail_corps .= "Fonction : ($_POST['fonction'])\n";
$mail_corps .= "Adresse : ($_POST['adresse']), ($_POST['codepostal']), ($_POST['ville']),($_POST['pays'])\n";
$mail_corps .= "Son numero de telephone: ($_POST['telephone']), fax : ($_POST['fax'])\n";
$mail_corps .= "Son site Internet : ($_POST['site'])\n";
$mail_corps .= "Langue source : ($_POST['select'])\n";
$mail_corps .= "Langue cible 1: ($_POST['select2'])\n";
$mail_corps .= "Langue cible 2 : ($_POST['select3'])\n";
$mail_corps .= "Langue cible 3 : ($_POST['select4'])\n";
$mail_corps .= "Langue cible 4 : ($_POST['select5'])\n\n\n";
$mail_corps .= "Domaine du projet : ($_POST['projet'])\n\n\n";
$mail_corps .= "CGV : ($_POST['cgv'])";
/* composition de l'en-tête du message :
* le message textuel suivi du code du fichier
*********************************************/
// composition : le message textuel suivi du code du fichier
$msg = "";
$msg .= "--".$limite.$eol;
$msg .= "Content-type:text/plain;charset=us-ascii".$eol;
$msg .= "Content-transfer-encoding:8bit".$eol.$eol;
$msg .= $mail_corps.$eol;
$msg .= "--".$limite.$eol;
$msg .= "Content-type:$ftype;name=$fnom".$eol;
$msg .= "Content-transfer-encoding:base64".$eol;
$msg .= "Content-Disposition: attachment; filename=$fnom".$eol.$eol;
$msg .= $code.$eol.$eol;
$msg .= "--".$limite."--".$eol.$eol;
function decoder($msg)
{
$msg = stripslashes($msg); // évitete les anti-slashs d'échappement
$msg = trim($msg); // évite les '\n', '\r', '\t' etc
return $msg;
}
// envoi du mail
if( mail($destinataire, "Demande de devis", decoder($msg), $entetemail) )
{
//Le mail est bien expédié
echo $msg_ok;
}
else
{
//Le mail n'a pas été expédié
echo 'Une erreur est survenue lors de l\'envoi du formulaire par email';
}
}
}
?>
Merci de bien vouloir m'aider car je galere enormément