webForum webForum sponsras med lina och serverplats av Binero AB

Gå tillbaka   webForum > Artiklar och källkod > Källkod > Script - PHP

Svar
 
Trådverktyg Visningsalternativ
Äldre 2010-05-11, 08:44   #1
Mr T
Medlem
 
Mr Ts avatar
 
Registrerad: 2007-05-30
Inlägg: 1 025
Lösningar: 4
Formulär med bifogad fil

Hittade ett gammalt formulär script där man kan skicka med bifogad fil (vilket har efterfrågats). En bra grund för den som vill skicka med bifogade filer i e-mail.
Det består av 2 filer. En grafisk fil och en program fil.

DOCK:
* "in-fångandet" av variablerna kan behövas bättras, beroende på server inställningar.
* Koden har funkat bra på FS-datas servrar, men har strulat på andra (och jag har därför inte test kört på ett tag). Detta beror inte på koden utan på inställningarna på servern.

Grafisk fil
email_g.php
HTML-kod:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

	<head>
		<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
		<meta name="generator" content="Adobe GoLive">
		<title>E-mail</title>
		<style type="text/css" media="screen"><!--
body
{
	font-size: 12px;
	font-family: Verdana, Arial, Serif, Geneva;
	font-style: normal
}
        
form
{
    font-size: 12pt;
    font-family: Verdana, Arial, Serif, Geneva;
    background-color: transparent
}

input
{
    border-right: none;
    border-top: none;
    border-left: none;
    border-bottom: 1px solid black;
    background-color: transparent
}

textarea
{
    border-right: 1px solid black;
    border-top: 1px solid black;
    border-left: 1px solid black;
    border-bottom: 1px solid black;
    background-color: transparent
}

select
{
    border-right: 1px solid black;
    border-top: 1px solid black;
    border-left: 1px solid black;
    border-bottom: 1px solid black;
    background-color: transparent
}
--></style>
	</head>

	<body bgcolor="#cecea5">
	
	<FORM ACTION="email_c.php" METHOD=POST NAME=phpgen1 enctype="multipart/form-data">
	
<table border="0">
	<tr>
		<td>
			<table border="0" cellspacing="2" cellpadding="2" bgcolor="#d8d79f">
				<tr>
					<td width="70">Fr&aring;n</td>
					<td><b>:</b></td>
					<td><input type="text" name="from_email" size="30" /></td>
				</tr>
				<tr>
					<td width="70">Till</td>
					<td><b>:</b></td>
					<td><input type="text" name="to_email" size="30" /></td>
				</tr>
				<tr>
					<td width="70">Cc</td>
					<td><b>:</b></td>
					<td><input type="text" name="cc_email" size="30" /></td>
				</tr>
				<tr>
					<td width="70">Bcc</td>
					<td><b>:</b></td>
					<td><input type="text" name="bcc_email" size="30" /></td>
				</tr>
				<tr>
					<td width="70">Rubrik</td>
					<td><b>:</b></td>
					<td><input type="text" name="subject_email" size="50" /></td>
				</tr>
				<tr>
					<td width="70">Bifoga</td>
					<td></td>
					<td><input type="file" name="AttachmentFile" size="16" /></td>
				</tr>
			</table>
		</td>
	</tr>
	<tr>
		<td>
			<hr />
		</td>
	</tr>
	<tr>
		<td><textarea name="mess" rows="6" cols="60"></textarea></td>
	</tr>
	<tr>
		<td align="right"><input type="submit" name="Submit" value="Skicka" /></td>
	</tr>
</table>

</form>

	</body>
</html>
Kod fil
email_c.php
PHP-kod:
<?

$from_email
=chop($from_email);
$to_email=chop($to_email);
$subject_email=chop($subject_email);
$mess=chop($mess);


if (empty(
$from_email) OR empty($to_email) OR empty($subject_email) OR empty($mess)) {
    
// något fällt saknas
    
echo "<font color=\"#FF0000\"><h1>SOME FIELD IS MISSING!!</H1></font>";
    exit;
// if

$file_upload_path "/spamm/EmailAttachment/";



// ----------------- HEADERN ---------------

$headers "From: ".$from_email."\n";
                
$headers .= "Reply-To: ".$from_email."\n";

if (!empty(
$cc_email)) {
                
    
$headers .= "Cc: ".$cc_email."\n";
}


if (!empty(
$bcc_email)) {
                
    
$headers .= "Bcc: ".$bcc_email."\n";
}

    

$headers .= "MIME-Version: 1.0\n".
                
"Content-Type: multipart/mixed;\n\t boundary=\"".$boundary1."\"\n".

"X-Priority: 3\n".

"X-Mailer: phpMimeMail ( http://www.ziet.zhitomir.ua/~rozhik/php3/mimemail/ )\n";


// ----------------- BODYN ---------------

$boundary1 "MAIL-PARTS-2001-CODE-1-".time();
$boundary2 "MAIL-AttachedPARTS-2001-CODE-2-".time();


$body "\nThis part of the E-mail should never be seen. If\n";

$body .= "you are reading this, consider upgrading your e-mail\n";

$body .= "client to a MIME-compatible client.\n\n";
                    
$body .= "--".$boundary1."\n".

"Content-Type: multipart/alternative;\n\t".

"boundary=\"".$boundary2."\"\n";

$body .= "\n";

$body .= "--".$boundary2."\n";
                
$body .= "Content-Type: text/plain\n";

$body .= "Content-Transfer-Encoding: quoted-printable\n\n";
            
$body .= $mess;
         
$body .= "\n\n--".$boundary2."--\n";



// --------------------- lägger till ev. fil(er)


$AttachmentFile=chop($AttachmentFile);

if (
$AttachmentFile!="") {

    
$attach_file_name $_FILES['AttachmentFile']['name']; // $AttachmentFile_name;
    
$attach_file_type $_FILES['AttachmentFile']['type'];
    
$attach_file_sufix strtolower(substr($attach_file_name, (strrpos($attach_file_name'.'))));
        
    
$BifogadFil $_FILES['AttachmentFile']['tmp_name']; //$file_upload_path.$filnamn;
    
        
    
if($f=@fopen($BifogadFil,"r")) {
    
        
$file_contents=fread($f,filesize($BifogadFil));
        
        
fclose($f);
        
        
$body .= "\n--".$boundary1."\n";
        
        
$body .= "Content-Type: ".$attach_file_type."\n"//; name='sagan-om-ringen-kvitto.gif'\n";
        
        
$body .= "Content-Transfer-Encoding: base64\n";
        
        
$body .= "Content-Disposition: inline; filename=\"".$attach_file_name."\"\n\n";
        
        
$body .= "".chunk_split(base64_encode($file_contents))."\n";
        
    } else {
        echo 
"<B>ERROR IN \"".$BifogadFil."\" !!!</B>";
    } 
// if($f=@fopen
// for 


$body .= "\n--".$boundary1."--\n";





// ------------------------ Skickar e-mail

$success mail($to_email$subject_email$body$headers); 

// kollar om det gick bra att skicka e-mailet
if ($success) {
    echo 
"---------------------<br><br>\r\n";
    echo 
"to-email : ".$to_email."<br>";
    echo 
"subject_email : ".$subject_email."<br>";
    echo 
$headers;
    echo 
$body;
    echo 
"<br><br>---------------------<br>\r\n";
    echo 
"Mail iv&auml;gskickat";
} else {
    echo 
"ERROR ! Mailet kunde inte skickas!";
// if ($success)
__________________
---------------
http://fun.axplock.com
Ett gott skratt förlänger livet
Mr T besöker inte forumet just nu   Svara med citat
Äldre 2010-05-11, 09:55   #2
The_Hulk
Medlem
 
Registrerad: 2003-06-25
Inlägg: 1 914
Lösningar: 71
Hmm, du använder variabeln $boundary1 innan den har tilldelats något värde.
Du använder aldrig variabeln $file_upload_path.

Sen kan det vara en fördel att ändra infångandet av variablerna som du skrev.
PHP-kod:
$from_email=chop($_POST['from_email']);
$to_email=chop($_POST['to_email']);
$subject_email=chop($_POST['subject_email']);
$mess=chop($_POST['mess']); 
The_Hulk besöker inte forumet just nu   Svara med citat
Äldre 2010-05-11, 20:26   #3
Mr T
Medlem
 
Mr Ts avatar
 
Registrerad: 2007-05-30
Inlägg: 1 025
Lösningar: 4
Tack The Hulk. Finner du fler fel, vilket inte alls är omöjligt, får du gärna påpeka dom med. Det var ett tag sedan jag kunde köra det helt funktionelt tyvärr :-(
Dock var det en på forumet som frågade efter ett script, så jag tänkte jag kunde lägga upp det här.
__________________
---------------
http://fun.axplock.com
Ett gott skratt förlänger livet
Mr T besöker inte forumet just nu   Svara med citat
Äldre 2010-05-12, 08:10   #4
Mr T
Medlem
 
Mr Ts avatar
 
Registrerad: 2007-05-30
Inlägg: 1 025
Lösningar: 4
Har provat scriptet och det funkar precis som det är, men helt klart kan det behövas lite puttsning för att vara "snygg kod". Antagligen har mitt hotell configurerat om servrarna sina.
(provade redan då jag lade upp coden, men först ca 12 timmar senare kom mailen fram !?!??!)
__________________
---------------
http://fun.axplock.com
Ett gott skratt förlänger livet
Mr T besöker inte forumet just nu   Svara med citat
Svar
webForum > Artiklar och källkod > Källkod > Script - PHP

Trådverktyg
Visningsalternativ

Forumregler
Du får inte posta nya trådar
Du får inte posta svar
Du får inte bifoga filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är av
HTML-kod är av

Forumhopp


Alla tider är i GMT +1. Klockan är nu 00:34.


Powered by: vBulletin Version 3.8.6
Copyright © webForum