Nah, gimana? Udah ketemu masalah di script kirim email yang saya posting sebelumnya? Ini jawabannya.
Seperti yang sudah saya sampaikan dalam posting sebelumnya, ini adalah masalah Array PHP. Nah, perhatikan list PHP script untuk mengirimkan email yang sudah diperbaiki ini.
<?php /****SET THE MAX CHARS FOR EACH MESSAGE***************/ //it is recommended not to set the max too high, to prevent extremely long messages // from stalling your server $EMAIL_MAX = 2500; $SMS_MAX = 120; /*****************************************************/
//function for stripping whitespace and some chars function cleanUp($str_to_clean, $newlines, $spaces){ //build list of whitespace chars to be removed $bad_chars = array('\r', '\t', ';'); //if newlines are false, add that to the list of bad chars if(!$newlines){array_push($bad_chars, '\n');} //if spaces are false, strip them too if(!$spaces){array_push($bad_chars, ' ');} $str_to_clean_a = str_replace($bad_chars, '', $str_to_clean); $str_to_clean_b = strip_tags($str_to_clean_a); return $str_to_clean_b; } //function to check for valid email address pattern function checkEmail($email) { if(!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email)) {return false;} return true; } //function to check for valid url pattern function checkURL($url) { if(!eregi("^http:\/\/", $url)) {return false;} return true; } ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns=" http://www.w3.org/1999/xhtml"> <head> <title>Contact Form</title> <style type="text/css"> /* BASIC STYLES */ body{font-family: 'Lucida Grande',Trebuchet, Tahoma, sans-serif;color:#222;font-size:11px;} fieldset{margin:0;padding:0;border:0;} label{width:250px; display:block;} .txt_input{width:250px; display:block;} textarea{height:80px; width:250px;} input{display:block;} .req{color:#f00;font-size:90%;} #form_errors{color:#f00; display:none;} #form_thanks{color:#000; display:none;} </style>
<?php if(isset($_POST["submitForm"])){
$_name = cleanUp($_POST["sender_name"], false, true);
$_subject = cleanUp($_POST["sender_subject"], false, true);
$_message = cleanUp($_POST["sender_message"], true, true);
$_url = cleanUp($_POST["sender_url"], false, false);
$_body = "You have been sent this message from your contact form\n\n"; if($_name){ $_body .= "NAME: $_name\n\n"; } if($_email){ $_body .= "EMAIL: $_email\n\n"; } if($_url){ $_body .= "URL: $_url\n\n"; } if($_phone){ $_body .= "PHONE: $_phone\n\n"; } if($_message){ //check length of body, reduce to max chars if(strlen($_message) > $EMAIL_MAX){$_message= substr($_message, 0, $EMAIL_MAX);}else{$_message = $_message;} if(strlen($_message) > $SMS_MAX){$_message2 = substr($_message, 0, $SMS_MAX);}else{$_message2 = $_message;} }
//store the recipient(s) $_to = array();
//now get the recipient(s) $_to = array("alamat_email1","alamat_email2"); //define the subject if(!$_subject){$_subject = "E-Mail from your contact form";}
if(!$_name){$_name = "CONTACT FORM";} if(!$_email){$_email = $_name;} //set the headers $_header = "From: $_name < $_email >" . "\r\n" . "Reply-To: ".$_email."\r\n" . "Super-Simple-Mailer: supersimple.org"; //we can send up to 2 emails (EMAIL and/or SMS) if(count($_to) > 2){ $_to = array_slice($_to,0,2);} for($i=0;$i<count($_to);$i++){ //get the correct message, based on where it is delivering to if(strstr($_to[$i],"teleflip.com")){$_text = $_body.$_message2;}else{$_text = $_body.$_message;} //send the email(s) mail($_to[$i], $_subject, $_text, $_header); } echo "<script type=\"text/javascript\">window.onload = function(){showThanks(thanks_message);}</script>"; } ?>
</head> <body> <div id="container"> <div class="contact"> <fieldset style="float:left;"> <p id="form_errors"></p> <p id="form_thanks"></p> <form name="contact" action="<?=$_SERVER['PHP_SELF']?>" method="post" onsubmit="return validateForm();">
<label>Your Name <span class="req">*</span></label> <input type="text" class="txt_input" name="sender_name" />
<label>Subject <span class="req">*</span></label> <input type="text" class="txt_input" name="sender_subject" />
<label>URL <span class="req">*</span></label> <input type="text" class="txt_input" name="sender_url" />
<label>Message <span class="req">*</span></label> <textarea name="sender_message"></textarea> <input type="submit" name="submitForm" value="Submit" /> </form> </fieldset> </div> </div> </body> </html>
Ketemu bedanya? Kalau belum baca sekali lagi script email PHP tersebut. Saya sudah bold baris untuk insialisasi Array. Udah, itu aja perbaikannya. Simpel khan?
Kamu juga bisa baca tips untuk mencari kesalahan (istilah kerennya debugging PHP)yang ada pada script hanya dengan menggunakan komentar PHP. |