[ peca89bg @ 11.05.2010. 17:33 ] @
ovo je moj kod za slanje email bez attachmenta Code: <?php $errors = array(); function validate_form_items() { session_start(); $form_items = array( "name" => array( "regex" => "/^([a-zA-Z '-]+)$/", "error" => "Vaše ime mora biti u odgovarajućem formatu.", ), "email" => array( "regex" => "/^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/", "error" => "Niste lepo uneli e-mail adresu!", ), "captcha" => array( "error" => "Niste uneli ispravan kod!", ), ); global $errors; if(!preg_match($form_items["name"]["regex"], $_POST["your_name"])) $errors[] = $form_items["name"]["error"]; if(!preg_match($form_items["email"]["regex"], $_POST["your_email"])) $errors[] = $form_items["email"]["error"]; if($_POST["vercode"] != $_SESSION["vercode"] OR $_SESSION["vercode"]=='') $errors[] = $form_items["captcha"]["error"]; return count($errors); } function email($from, $from_name, $to, $maxcharfield) { $headers .= "From: ".$from."\r\n"; $headers .= "Content-type: text/html; charset=UTF-8"; $subject = $from_name; $your_message.= "<b>Ime:</b><br>"; $your_message.= " ".ucfirst($from_name); $your_message.= "<br />"; $your_message.= "<b>Poruka:</b><br />"; $your_message.= " "; $maxcharfield=$your_message.stripslashes($maxcharfield); if (mail($to, $subject, $maxcharfield, $headers) ) { return true; } else { return false; } } function print_error($errors) { foreach($errors as $error) { $err.=$error."<br/>"; } echo "<div style=\"border:1px red solid; -moz-border-radius: 7px; -webkit-border-radius: 7px; font-size:14px; font-weight:normal; color:red; margin:10px; padding:10px;\"> $err <div>"; } function form_process() { $from_name = $_POST["your_name"]; $from_email = $_POST["your_email"]; $to = "[email protected]"; $maxcharfield = $_POST["maxcharfield"]; $vercode = $_POST["vercode"]; $error_count = validate_form_items(); if($error_count == 0) { if(email($from_email, $from_name, $to, $maxcharfield, $vercode)) { echo "<script type='text/javascript'> alert('Vaš email je uspešno poslat na adresu: [email protected]!'); window.location = 'http://pecaijeca.coolpage.biz/index1.html'; </script>"; } else { global $errors; $errors[] = "E-mail ne moze bitip poslat u ovom trenutku.<br>Kontaktirajte nekog za gresku."; } } } if(isset($_POST["submit"])) form_process(); ?> <html > <head> <!-- UTF-8 --> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <!-- naziv strane --> <title>Email: Petar Maletić</title> <!-- ukljucivanje stila --> <link rel="stylesheet" type="text/css" href="style1.css" /> <!-- favicon --> <link rel="shortcut icon" href="pj.ico"> </head> <body> <form id="test" name="test" method="post" action="<?php echo $PHP_SELF?>"> <table> <tr><td colspan="2"><?php global $errors; if(count($errors) != 0){print_error($errors);}?></td> </tr> <tr ><td style="color: #ff7c11; font-size: 12pt;">Vaše ime: <span style="color: red"> *</span></td> <td colspan="3"><input size="30" style="border: solid #ff7c11 2px; -moz-border-radius: 7px; -webkit-border-radius: 7px; font-family: verdana, helvetica, sans serif; padding-left: 3px;" name="your_name" id="name" value="<?php echo $_POST["your_name"]?>" placeholder="Kako je Vaše ime?" type="text"></td></tr> <tr ><td style="color: #ff7c11; font-size: 12pt;">Email: <span style="color: red"> *</span></td> <td><input size="30" style="font-family: verdana, helvetica, sans serif; border: solid #ff7c11 2px; -moz-border-radius: 7px; -webkit-border-radius: 7px; padding-left: 3px;" name="your_email" id="email" value="<?php echo $_POST["your_email"]?>" placeholder="Koji je Vaš email?" type="text"></td></tr> <tr><td style="color: #ff7c11; font-size: 12pt" align="left" valign="top">Poruka:</td> <td><textarea name="maxcharfield" id="maxcharfield" onKeyDown="textCounter(this,'progressbar1',200)" onKeyUp="textCounter(this,'progressbar1',200)"onFocus="textCounter(this,'progressbar1',200)" style="padding-left: 3px; border: solid #ff7c11 2px; -moz-border-radius: 7px; -webkit-border-radius: 7px;font-family: verdana, helvetica, sans serif;" rows="10" cols="30" placeholder="Upišite Vašu poruku ovde..."><?php echo $_POST["maxcharfield"]?></textarea></td> <td valign="bottom"><span style="color: red; font-size: 8pt; font-style: italic;" >*max 200 karaktera</span></td></tr> <tr><td> </td><td ><div id="progressbar1" class="progress"></div><script>textCounter(document.getElementById("maxcharfield"),"progressbar1",20)</script></td></tr> <tr><td colspan="2"><span style="color: #ff7c11; font-size: 12pt">Unesite kod:</span><span style="color: red"> *</span></td></tr> <tr><td><img src="captcha.php"></td><td><input size="30" style="font-family: verdana, helvetica, sans serif; border: solid #ff7c11 2px; -moz-border-radius: 7px; -webkit-border-radius: 7px; padding-left: 3px;" name="vercode" id="captcha" value="<?php echo $_POST["vercode"]?>" placeholder="Koji je kod?" type="text"></td></tr> <tr> <td> </td><td style="text-align: center"><br><input name="submit" type="image" value="submit" src="submit.gif" style="cursor: crosshair; "/><a href="javascript:document.test.reset(); "><img border="0" src="reset.gif" style="margin-left: 20px;"></a></td></tr> </table></form> </body> </html> ` e a ovo je moj kod za slanje emaila sa attachmentom Code: <?php $errors = array(); function validate_form_items() { $fsizemax = 100; session_start(); $form_items = array( "name" => array( "regex" => "/^([a-zA-Z '-]+)$/", "error" => "Vaše ime mora biti u odgovarajućem formatu.", ), "email" => array( "regex" => "/^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/", "error" => "Niste lepo uneli e-mail adresu!", ), "captcha" => array( "error" => "Niste uneli ispravan kod!", ), "fajl" => array( "error" => "Fajl je veći od 100kb.", ), ); global $errors; if(!preg_match($form_items["name"]["regex"], $_POST["your_name"])) $errors[] = $form_items["name"]["error"]; if(!preg_match($form_items["email"]["regex"], $_POST["your_email"])) $errors[] = $form_items["email"]["error"]; if($_POST["vercode"] != $_SESSION["vercode"] OR $_SESSION["vercode"]=='') $errors[] = $form_items["captcha"]["error"]; if($_FILES["attachment"][35]>($fsizemax*1024)) $errors[] = $form_items["fajl"]["error"]; return count($errors); } function email($from, $from_name, $to, $maxcharfield) { $boundary = md5(uniqid(time())); $headers .= "From: ".$from."\r\n"; $headers .= "Content-type: text/html; charset=UTF-8"; $headers .= "Mime-Version: 1.0\n"; $headers .= "Content-Type: multipart/mixed;\n"; $headers .= "\tboundary=\"----------" . $boundary . "\"\n"; $message = "------------" . $boundary . "\n"; $subject = $from_name; $message.= "<b>Ime:</b><br>"; $message.= " ".ucfirst($from_name); $message.= "<br />"; $message.= "<b>Poruka:</b><br />"; $message.= " "; $maxcharfield=$message.stripslashes($maxcharfield); if(is_uploaded_file($_FILES['attachment']['tmp_name'])) { $attach = $_FILES['attachment']['tmp_name']; $filename = basename($_FILES['attachment']['name']); $fp = fopen($attach,"r"); $fdata = fread($fp, filesize($attach)); fclose($fp); $message .= "------------" . $boundary . "\n"; $message .= "Content-Type: " . $_FILES['attachment']['type'] . ";\n"; $message .= "\tname=\"" . $filename . "\"\n"; $message .= "Content-Transfer-Encoding: base64\n"; $message .= "Content-Disposition: attachment;\n"; $message .= "\tfilename=\"" . $filename . "\"\n\n"; $message .= chunk_split(base64_encode($fdata)) . "\n"; } if(mail($to, $subject, $maxcharfield, $message, $headers)) { return true; } return false; } function print_error($errors) { foreach($errors as $error) { $err.=$error."<br/>"; } echo "<div style=\"border:1px red solid; -moz-border-radius: 7px; -webkit-border-radius: 7px; font-size:14px; font-weight:normal; color:red; margin:10px; padding:10px;\"> $err <div>"; } function form_process() { $from_name = $_POST["your_name"]; $from_email = $_POST["your_email"]; $to = "[email protected]"; $maxcharfield = $_POST["maxcharfield"]; $vercode = $_POST["vercode"]; $atac = $_FILES["attachment"]; $error_count = validate_form_items(); if($error_count == 0) { if(email($from_email, $from_name, $to, $maxcharfield, $vercode, $atac)) { echo "<script type='text/javascript'> alert('Vaš email je uspešno poslat na adresu: [email protected]!'); window.location = 'http://pecaijeca.coolpage.biz/index1.html'; </script>"; } else { global $errors; $errors[] = "E-mail ne moze bitip poslat u ovom trenutku.<br>Kontaktirajte nekog za gresku."; } } } if(isset($_POST["submit"])) form_process(); ?> <html > <head> <!-- UTF-8 --> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <!-- naziv strane --> <title>Email: Petar Maletić</title> <!-- ukljucivanje stila --> <link rel="stylesheet" type="text/css" href="style1.css" /> </head> <body> <form id="test" name="test" method="post" action="<?php echo $PHP_SELF?>" enctype='multipart/form-data'> <table> <tr><td colspan="2"><?php global $errors; if(count($errors) != 0){print_error($errors);}?></td> </tr> <tr ><td style="color: #ff7c11; font-size: 12pt;">Vaše ime: <span style="color: red"> *</span></td> <td colspan="3"><input size="30" style="border: solid #ff7c11 2px; -moz-border-radius: 7px; -webkit-border-radius: 7px; font-family: verdana, helvetica, sans serif; padding-left: 3px;" name="your_name" id="name" value="<?php echo $_POST["your_name"]?>" placeholder="Kako je Vaše ime?" type="text"></td></tr> <tr ><td style="color: #ff7c11; font-size: 12pt;">Email: <span style="color: red"> *</span></td> <td><input size="30" style="font-family: verdana, helvetica, sans serif; border: solid #ff7c11 2px; -moz-border-radius: 7px; -webkit-border-radius: 7px; padding-left: 3px;" name="your_email" id="email" value="<?php echo $_POST["your_email"]?>" placeholder="Koji je Vaš email?" type="text"></td></tr> <tr><td style="color: #ff7c11; font-size: 12pt" align="left" valign="top">Poruka:</td> <td><textarea name="maxcharfield" id="maxcharfield" onKeyDown="textCounter(this,'progressbar1',200)" onKeyUp="textCounter(this,'progressbar1',200)"onFocus="textCounter(this,'progressbar1',200)" style="padding-left: 3px; border: solid #ff7c11 2px; -moz-border-radius: 7px; -webkit-border-radius: 7px;font-family: verdana, helvetica, sans serif;" rows="10" cols="30" placeholder="Upišite Vašu poruku ovde..."><?php echo $_POST["maxcharfield"]?></textarea></td> <td valign="bottom"><span style="color: red; font-size: 8pt; font-style: italic;" >*max 200 karaktera</span></td></tr> <tr><td> </td><td ><div id="progressbar1" class="progress"></div><script>textCounter(document.getElementById("maxcharfield"),"progressbar1",20)</script></td></tr> <tr><td>Ubaci</td><td ><input type="file" name="attachment" id="fajl" value="<?php echo $_POST["attachment"]?>"></td></tr> <tr><td colspan="2"><span style="color: #ff7c11; font-size: 12pt">Unesite kod:</span><span style="color: red"> *</span></td></tr> <tr><td><img src="captcha.php"></td><td><input size="30" style="font-family: verdana, helvetica, sans serif; border: solid #ff7c11 2px; -moz-border-radius: 7px; -webkit-border-radius: 7px; padding-left: 3px;" name="vercode" id="captcha" value="<?php echo $_POST["vercode"]?>" placeholder="Koji je kod?" type="text"></td></tr> <tr> <td> </td><td style="text-align: center"><br><input name="submit" type="image" value="submit" src="submit.gif" style="cursor: crosshair; "/><a href="javascript:document.test.reset(); "><img border="0" src="reset.gif" style="margin-left: 20px;"></a></td></tr> </table></form> </body> </html> ` lepo je radilo i bez prblema dok nisam pokusao da ubacim attachment... a a attachment sam uzeo iz ovog primera Code: <?php $sitemail = "[email protected]"; // specify your email address here to receive emails $mtextmax = 2000; // limit message text in number of characters allowed $fnum = 3; // number of file attachment fields $fsizemax = 100; // limit each attached file size in kB $enc = "iso-8859-1"; // email text encoding $name = $_POST["name"]; $email = $_POST["email"]; $subject = $_POST["subject"]; $mtext = $_POST["mtext"]; $securitycode = $_POST["securitycode"]; $submit = $_POST["submit"]; if($submit) { session_start(); if(!isset($_SESSION["SecurityCode"])) { die("Error: Illegal form access!"); } } ?> <html> <head> <title>Protected form with file attachment</title> </head> <body> <?php if(!$submit) { echo "<p><b>Bold</b> fields are required.</p>\n"; echo "<form action='" . $_SERVER['PHP_SELF'] . "' method='post' enctype='multipart/form-data'>\n"; echo "<table align='center' border='1' cellspacing='0' cellpadding='4'>\n"; echo "<tr>\n"; echo "<td ><p><b><label for='name'>Your name:</label></b></p></td>\n"; echo "<td><input type='text' name='name' id='name' size='40' maxlength='50'></td>\n"; echo "</tr><tr>\n"; echo "<td ><p><b><label for='email'>Your email address:</label></b></p></td>\n"; echo "<td><input type='text' name='email' id='email' size='40' maxlength='50'></td>\n"; echo "</tr><tr>\n"; echo "<td ><p><b><label for='subject'>Message subject:</label></b></p></td>\n"; echo "<td><input type='text' name='subject' id='subject' size='40' maxlength='100'></td>\n"; echo "</tr><tr>\n"; echo "<td ><p><b><label for='mtext'>Message text:</label></b><br><small>(".$mtextmax." Chars Max)</small></p></td>\n"; echo "<td><textarea name='mtext' id='mtext' rows='5' cols='34'></textarea></td>\n"; echo "</tr><tr>\n"; for($i=1;$i<=$fnum;$i++) { echo "<td ><p><label for='attachment".$i."'>Attachment ".$i."</label> <small>(".$fsizemax." KB Max)</small></p></td>\n"; echo "<td><input type='file' class='file' name='attachment".$i."' id='attachment".$i."' size='35'></td>\n"; echo "</tr><tr>\n"; } echo "<td ><p><b><label for='securitycode'>Security Code:</label></b><img src='codeimg.php' width='44' height='14' border='0' alt='Security Code'></p></td>\n"; echo "<td><input type='text' name='securitycode' id='securitycode' size='12' maxlength='4'></td>\n"; echo "</tr><tr>\n"; echo "<td ><p><b>Submit:</b></p></td>\n"; echo "<td><input type='submit' name='submit' value=' Submit '></td>\n"; echo "</tr>\n</table>\n</form>\n<br>\n"; } else { // Processing received data $formerror = ""; if(!$name) { $formerror.= "You did not enter your name!\n"; } elseif(strlen($name) > 50) { $formerror.= "Name length should NOT exceed 50 chars!\n"; } if(!$email) { $formerror.= "You did not enter your email address!\n"; } elseif(strlen($email) > 50) { $formerror.= "Email address length should NOT exceed 50 chars!\n"; } elseif(!preg_match("/^([\w\.-]+)@([\w\.-]+)\.([\w]+)$/", $email)) { // check email address against the regular expression $formerror.= "The email address is not valid!\n"; } if(!$subject) { $formerror.= "You did not enter the message subject!\n"; } if(strlen($subject) > 100) { $formerror.= "Message subject length should NOT exceed 100 chars!\n"; } if(!$mtext) { $formerror.= "You did not enter the message text!\n"; } elseif(strlen($mtext) > $mtextmax) { $formerror.= "Message text length should NOT exceed 1000 chars!\n"; } if($_FILES["attachment"]["size"]>($fsizemax*1024)){ $formerror.= "The attached file size is larger than ".$fsizemax." KB!\n"; } if(!$securitycode) { $formerror.= "You did not enter the security code!\n"; } if($securitycode != $_SESSION["SecurityCode"]) { $formerror.= "The security code is wrong!\n"; } if($formerror) { echo "<p><b>Errors filling Form:</b></p>\n"; echo "<p>" . nl2br($formerror) . "</p>\n"; echo "<p>Please go <a href=\"javascript:history.back()\">Back</a> and fill the form correctly.</p>\n"; exit; } $boundary = md5(uniqid(time())); $headers = "From: " . $name . "<" . $email . ">\n"; $headers .= "Reply-To: " . $name . "<" . $email . ">\n"; $headers .= "Mime-Version: 1.0\n"; $headers .= "Content-Type: multipart/mixed;\n"; $headers .= "\tboundary=\"----------" . $boundary . "\"\n"; $message = "------------" . $boundary . "\n"; $message .= "Content-Type: text/plain;\n"; $message .= "\tcharset=" . $enc . "\n"; $message .= "Content-Transfer-Encoding: 8bit\n\n"; $message .= stripslashes($mtext) . "\n\n"; for($i=1;$i<=$fnum;$i++) { if(is_uploaded_file($_FILES['attachment'.$i]['tmp_name'])) { $attach = $_FILES['attachment'.$i]['tmp_name']; $filename = basename($_FILES['attachment'.$i]['name']); $fp = fopen($attach,"r"); $fdata = fread($fp, filesize($attach)); fclose($fp); $message .= "------------" . $boundary . "\n"; $message .= "Content-Type: " . $_FILES['attachment'.$i]['type'] . ";\n"; $message .= "\tname=\"" . $filename . "\"\n"; $message .= "Content-Transfer-Encoding: base64\n"; $message .= "Content-Disposition: attachment;\n"; $message .= "\tfilename=\"" . $filename . "\"\n\n"; $message .= chunk_split(base64_encode($fdata)) . "\n"; } } mail($sitemail, $subject, $message, $headers); echo "<p>Message successfully sent to " . $sitemail . "</p>\n"; } ?> </body> </html> stavio sam samo da imam jedan a ne tri kao sto je u ovom primeru, radi se o tome da na onu formu bez attachmenta dodam attachment i da ako je fajl veci od 100 kb da izbaci gresku u istom obliku kao i sve druge |