Pages vues depuis 25/05/2001 : 108 505 891
Index du forum »» SFORM »» Sform et fichiers joints
<?PHP
/************************************************************************/
/* SFORM Extender for NPDS V Contact Example */
/* =========================== */
/* */
/* - 2004 */
/* */
/* This program is free software. You can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 2 of the License. */
/************************************************************************/
// Récuperation du nom d'utilisateur sur le site par rapport au cookie
cookiedecode($user);
$username = $cookie[1];
if ($username == "") {
$nom = "";
} else {
$nom = $username;
}
// Récupération de l'adresse email de l'utilisateur si membre sur le site par rapport au cookie
list($email,$femail) = mysql_fetch_row(mysql_query("SELECT email,femail FROM ".$NPDS_Prefix."users where uname='$username'"));
$m->add_form_field_size(50);
$m->add_title("Soumission de voitures");
$m->add_field('nom', "Nom/Pseudo",$nom,'text',true,150,"","");
$m->add_field('cars', "Nom du véhicule",$cars,'text',true,25,"","");
$m->add_field('type', "Type de véhicule",$type,'text',false,25,"","");
$m->add_extra("<tr><td colspan=2> </td></tr>");
$m->add_field('email', "Adresse de messagerie",$email,'text',true,255,"","email");
$m->add_extra("<tr><td colspan=2> </td></tr>");
$m->add_upload('B1', "Fichier à envoyer", "30", "");
$m->add_extra("<tr><td colspan=2> </td></tr>");
// ----------------------------------------------------------------
// CES CHAMPS sont indispensables --- Don't remove these fields
$m->add_extra("<tr><td align=center colspan=2>");
// Reset bouton
$m->add_field("","","R a z",'reset',false);
// Return bouton
$m->add_extra(" -::- ");
$m->add_extra("<a href=index.php>[ Retour ]</a>");
// Submit bouton
$m->add_extra(" -::- ");
$m->add_field("","","Soumettre",'submit',false);
$m->add_extra("</td></tr>");
// ----------------------------------------------------------------
?>
<?PHP
/************************************************************************/
/* SFORM Extender for NPDS V Contact Example . */
/* =========================== */
/* */
/* 2002 - 2004 */
/* */
/* This program is free software. You can redistribute it and/or modify */
/* it under the terms of the GNU General Public License as published by */
/* the Free Software Foundation; either version 2 of the License. */
/************************************************************************/
/* Dont modify this file is you dont know what you make */
/************************************************************************/
global $ModPath, $ModStart;
$sform_path="modules/sform/";
!include!_once($sform_path."sform.php");
global $m;
$m=new form_handler();
//********************
$m->add_form_title("CONTACT");
$m->add_form_method("post");
$m->add_form_check("true");
$m->add_mess(" * désigne un champ obligatoire ");
$m->add_submit_value("ok");
$m->add_!url(!"modules.php");
$m->add_field("ModStart","",$ModStart,'hidden',false);
$m->add_field("ModPath","",$ModPath,'hidden',false);
/************************************************/
!include!($sform_path."upload/formulaire.php");
/************************************************/
// Manage the <form>
switch($ok) {
case 'Soumettre':
if (!$sformret) {
$m->make_response();
$limite = md5(uniqid(rand()));
$message = $m->aff_response("class=\"LIGNA\"","not_echo","");
//lefichier
if ($B1<>"") {
$attachement = "------=$limite\n";
$attachement .= "!content-type:! application/octet-stream; name=\"$B1\"\n";
$attachement .= "!content-transfer-encoding:!base_64\n";
$attachement ."!content-disposition:! attachment; filename=\"$B1\"";
$attachement .= chunk_split(base_64_encode(implode("", file($B1))));
}
global $notify_email;
$message="<html><body>".$message."</body></html>";
send_email($notify_email, $m->title,$message.$attachement,"","","html");
opentable();
echo $B1; // verification du nom du fichier
echo "<p align=\"center\">Votre demande est prise en compte. Nous y répondrons au plus vite</p>";
closetable();
break;
} else {
$ok="";
}
default:
echo $m->print_form("class=\"LIGNA\"");
break;
}
?>
------=7e55e2799f8919c5a0c84f18c0c3ceb3 !content-type:! application/octet-stream; name="/tmp/phpQuoPwI" !content-transfer-encoding:!base_64 PD8NCi8qIE1vZGlmaWV6IGxlcyBwYXJhbeh0cmVzIGQnYXBwZWwgZGUgbGEgZm9uY3Rpb24gc2Vs b24gdm9zIGJlc29pbnMNCg0KTkUgUEFTIEFKT1VURVIgREUgTElHTkVTIFZJREVTIEFVIERFQlVU...
$to ="ma@mail.box";
$sujet = "Sujet du Mail";
$message = "Le Texte du Mail";
$chemin = "chemindufichier";
$fichier = "nomdefichier.typ";
//$reply = ;
//$from = ;
// On choisi généralement de construire une frontière générée aleatoirement
$boundary = "----="."_parties_".md5(uniqid(rand()));
//entete du message
{
//date de creation
$mail_mime = "Date: ".date("l j F Y, G:i")."\r\n";
// Version du format MIME utilisé
$mail_mime .= "!mime-version:! 1.0\r\n";
// Type de contenu. Ici plusieurs parties de type different "multipart/mixed"
// Avec un frontière définie par $boundary
$mail_mime .= "!content-type:! multipart/mixed; boundary=\"$boundary\"\r\n";
//termine l'entete avec un retour a la ligne obligatoire pour separer l'entete du corps
$mail_mime .= "\r\n";
}
//--------------------------------------------------
// Construction du message proprement dit
//--------------------------------------------------
{
//Le message en texte simple pour les navigateurs qui n'acceptent pas le HTML
$texte = "This is a multi-part message in MIME format.\r\n";
$texte .= "Ceci est un message est au format MIME.\r\n";
}
//---------------------------------
// 1ère partie du message
// Le texte
//---------------------------------
{
// Chaque partie du message est séparé par une frontière (attention au --, ce n'est pas une erreur!)
$texte .= "--$boundary\r\n";
// Et pour chaque partie on en indique le type
$texte .= "!content-type:! text/plain; charset=\"iso-8859-1\"\r\n";
// Et comment il sera codé
$texte .= "!content-transfer-encoding:! 7bit\r\n";
//ligne vide indispensable entre type et texte
$texte .= "\r\n";
$texte .= $message."\r\n";
$texte .= "\r\n";
}
//---------------------------------
// 2nde partie du message
// Le fichier
//---------------------------------
{
// penser a convertir le contenu du fichier en une chaîne de caractère
// certe totalement illisible mais sans caractères exotiques
// et avec des retours à la ligne tout les 76 caractères
// pour être conforme au format RFC 2045
$contenu_fichier = chunk_split(base_64_encode(implode("", file($chemin.$fichier))));
// Ne pas oublier que chaque partie du message est séparé par une frontière
$attachement = "--$boundary\r\n";
// Et pour chaque partie on en indique le type
$attachement .= "!content-type:! application/octet-stream; name=\"$fichier\"\r\n";
// Et comment il sera codé
$attachement .= "!content-transfer-encoding:! base_64\r\n";
// Petit plus pour les fichiers joints
// Il est possible de demander à ce que le fichier
// soit si possible affiché dans le corps du mail
//$attachement .= "!content-disposition:! inline;";
//au cas ou on ne souhaite pas voir le fichier dans le corps
$attachement .= "!content-disposition:! attachment;";
$attachement .= " filename=\"$fichier\"\r\n";
// Il est indispensable d'introduire une ligne vide entre l'entête et le texte
$attachement .= "\r\n";
// C'est ici que l'on insère le code du fichier lu
$attachement .= $contenu_fichier . "\r\n";
$attachement .= "\r\n\r\n";
// on indique la fin par une nouvelle frontière
$attachement .= "--$boundary--\r\n";
}
//---------------------------------
// y a plus qu'a!
// mais on evite quand meme la fonction integrée a NPDS, sinon on perd la partie MIME
//---------------------------------
{
global $mail_fonction, $adminmail;
if (($mail_fonction==1) or ($mail_fonction=="")) {
$From_email=$adminmail;
if ($from!="") { $From_email=$from; }
$result=mail($to, $sujet, $texte.$attachement, "Reply-to: $reply\r\n!from:! $From_email\r\nX-Mailer: NPDS\r\n".$mail_mime);
} else {
$pos = strpos($adminmail, "@");
$tomail=substr($adminmail,0,$pos);
$result=email($tomail, $to, $sujet, $texte.$attachement, $tomail, "Reply-to: $reply\r\n!from:! $From_email\r\nX-Mailer: NPDS\r\n".$mail_mime);
}
}
Message édité par : hexagone
Message édité par : hexagone