tdpurnell Posted February 6, 2007 Share Posted February 6, 2007 Hi ya, I am having problems with this script, i am trying to make the add attachment part work, but can't get it to. a version using this script can be found at http://peakbouldering.co.uk/?id=menu&page=share. Any comments would be greatly appreciated. the contact form works fine, and i have tried to modify it to send attachments, and it isn't working, i am sure that there is something really simple wrong? Tom <script language="JavaScript"> function checkForm() { var cname, cemail, csubject, cmessage, cattachments; with(window.document.msgform) { cname = sname; cemail = email; csubject = subject; cmessage = message; cattachments = attachments; } if(trim(cname.value) == '') { alert('Please enter your name'); cname.focus(); return false; } else if(trim(cemail.value) == '') { alert('Please enter your email'); cemail.focus(); return false; } else if(!isEmail(trim(cemail.value))) { alert('Email address is not valid'); cemail.focus(); return false; } else if(trim(csubject.value) == '') { alert('Please enter message subject'); csubject.focus(); return false; } else if(trim(cmessage.value) == '') { alert('Please enter your message'); cmessage.focus(); return false; } else if(trim(cattachments.value) == '') { alert('Please attach a file'); cattachments.focus(); return false; } else { cname.value = trim(cname.value); cemail.value = trim(cemail.value); csubject.value = trim(csubject.value); cmessage.value = trim(cmessage.value); cattachments.value = trim(cattachments.value); return true; } } /* Strip whitespace from the beginning and end of a string Input : a string */ function trim(str) { return str.replace(/^\s+|\s+$/g,''); } /* Check if a string is in valid email format. Returns true if valid, false otherwise. */ function isEmail(str) { var regex = /^[-_.a-z0-9]+@(([-_a-z0-9]+\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i; return regex.test(str); } </script> </head> <body> <?php $errmsg = ''; // error message $sname = ''; // sender's name $email = ''; // sender's email addres $subject = ''; // message subject $message = ''; // the message itself $attachments = ''; // the attachments if(isset($_POST['send'])) { $sname = $_POST['sname']; $email = $_POST['email']; $subject = $_POST['subject']; $message = $_POST['message']; $attachments = $_POST['attachments']; if(trim($sname) == '') { $errmsg = 'Please enter your name'; } else if(trim($email) == '') { $errmsg = 'Please enter your email address'; } else if(!isEmail($email)) { $errmsg = 'Your email address is not valid'; } else if(trim($subject) == '') { $errmsg = 'Please enter message subject'; } else if(trim($message) == '') { $errmsg = 'Please enter your message'; } else if(trim($attachments) == '') { $errmsg = 'Please attach a file'; } if($errmsg == '') { if(get_magic_quotes_gpc()) { $subject = stripslashes($subject); $message = stripslashes($message); } // the email will be sent here $to = "[email protected]"; // the email subject ( modify it as you wish ) $subject = '[Website Question] : ' . $subject; // the mail message ( add any additional information if you want ) $msg = "From : $sname \r\n " . $message; //the file attachment $file = $attachments; mail($to, $subject, $msg, $file, "From: $email\r\nReply-To: $email\r\nReturn-Path: $email\r\n"); ?> <div align="center">Your message is sent. Click <a href="index.php">here</a> to go back to homepage </div> <?php } } if(!isset($_POST['send']) || $errmsg != '') { ?> <div align="center" class="errmsg"><?=$errmsg;?></div> <form method="post" name="msgform" id="msgform"> <table width="500" border="0" align="center" cellpadding="2" cellspacing="1" class="maincell"> <tr> <td width="106">Your Name</td> <td width="381"><input name="sname" type="text" class="box" id="sname" size="30" value="<?=$sname;?>"></td> </tr> <tr> <td>Your Email</td> <td><input name="email" type="text" class="box" id="email" size="30" value="<?=$email;?>"></td> </tr> <tr> <td>Subject</td> <td><input name="subject" type="text" class="box" id="subject" size="30" value="<?=$subject;?>"></td> </tr> <tr> <td>Attachments</td> <td><input name="attachments" type="file" class="box" id="attachments" size="30" value="<?=$attachments;?>"></td> </tr> <tr> <td>Message</td> <td><textarea name="message" cols="55" rows="10" wrap="OFF" class="box" id="message"><?=$message;?></textarea></td> </tr> <tr align="center"> <td colspan="2"><input name="send" type="submit" class="bluebox" id="send" value="Send Message" onclick="return checkForm();"></td> </tr> <tr align="center"> <td colspan="2"> </td> </tr> <tr align="left"> <td colspan="2"><div align="center">If by any chance the form isn't working you can contact me by emailing <script language="JavaScript"> var addr = 'peakbouldering'; var host = 'googlemail.com'; var email = '<a href="mailto:' + addr + '@' + host + '">' + addr + '@' + host + '</a>'; document.write(email); </script> </div></td> </tr> </table> </form> <?php } function isEmail($email) { return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i" ,$email)); } ?> <p> </p> </body> </html>[/color][/color] Link to comment https://forums.phpfreaks.com/topic/37358-form-with-file-attachment-problem/ Share on other sites More sharing options...
richardw Posted February 6, 2007 Share Posted February 6, 2007 Did this come right from the other page, or is it reconstructed to resemble it. One item I use whwn uploading and posting is to add the form type "enctype="multipart/form-data" to the form definition. If this you are using the same script as the one you point to, can you provide a link to where I can download it and scan for differences. best Link to comment https://forums.phpfreaks.com/topic/37358-form-with-file-attachment-problem/#findComment-178628 Share on other sites More sharing options...
tdpurnell Posted February 6, 2007 Author Share Posted February 6, 2007 Below is the original script that works to send emails without attachments, the above is my attempt to modify it to include sending attachments in the email. <style type="text/css"> body { font-family: Arial, Helvetica, sans-serif; } .box { font-family: Arial, Helvetica, sans-serif; border: 1px solid #000000; } .bluebox { font-family: Arial, Helvetica, sans-serif; font-weight: bolder; color: #FFFFFF; background-color: #006699; border: 1px solid #000000; } .maincell { font-family: Arial, Helvetica, sans-serif; padding: 5px; border: 1px solid #006699; } .errmsg { font-family: "Courier New", Courier, mono; font-weight: bolder; color: #CC0000; } </style> <script language="JavaScript"> function checkForm() { var cname, cemail, csubject, cmessage; with(window.document.msgform) { cname = sname; cemail = email; csubject = subject; cmessage = message; } if(trim(cname.value) == '') { alert('Please enter your name'); cname.focus(); return false; } else if(trim(cemail.value) == '') { alert('Please enter your email'); cemail.focus(); return false; } else if(!isEmail(trim(cemail.value))) { alert('Email address is not valid'); cemail.focus(); return false; } else if(trim(csubject.value) == '') { alert('Please enter message subject'); csubject.focus(); return false; } else if(trim(cmessage.value) == '') { alert('Please enter your message'); cmessage.focus(); return false; } else { cname.value = trim(cname.value); cemail.value = trim(cemail.value); csubject.value = trim(csubject.value); cmessage.value = trim(cmessage.value); return true; } } /* Strip whitespace from the beginning and end of a string Input : a string */ function trim(str) { return str.replace(/^\s+|\s+$/g,''); } /* Check if a string is in valid email format. Returns true if valid, false otherwise. */ function isEmail(str) { var regex = /^[-_.a-z0-9]+@(([-_a-z0-9]+\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i; return regex.test(str); } </script> </head> <body> <?php $errmsg = ''; // error message $sname = ''; // sender's name $email = ''; // sender's email addres $subject = ''; // message subject $message = ''; // the message itself if(isset($_POST['send'])) { $sname = $_POST['sname']; $email = $_POST['email']; $subject = $_POST['subject']; $message = $_POST['message']; if(trim($sname) == '') { $errmsg = 'Please enter your name'; } else if(trim($email) == '') { $errmsg = 'Please enter your email address'; } else if(!isEmail($email)) { $errmsg = 'Your email address is not valid'; } else if(trim($subject) == '') { $errmsg = 'Please enter message subject'; } else if(trim($message) == '') { $errmsg = 'Please enter your message'; } if($errmsg == '') { if(get_magic_quotes_gpc()) { $subject = stripslashes($subject); $message = stripslashes($message); } // the email will be sent here $to = "[email protected]"; // the email subject ( modify it as you wish ) $subject = '[Website Question] : ' . $subject; // the mail message ( add any additional information if you want ) $msg = "From : $sname \r\n " . $message; mail($to, $subject, $msg, "From: $email\r\nReply-To: $email\r\nReturn-Path: $email\r\n"); ?> <div align="center">Your message is sent. Click <a href="index.php">here</a> to go back to homepage </div> <?php } } if(!isset($_POST['send']) || $errmsg != '') { ?> <div align="center" class="errmsg"><?=$errmsg;?></div> <form method="post" name="msgform" id="msgform"> <table width="500" border="0" align="center" cellpadding="2" cellspacing="1" class="maincell"> <tr> <td width="106">Your Name</td> <td width="381"><input name="sname" type="text" class="box" id="sname" size="30" value="<?=$sname;?>"></td> </tr> <tr> <td>Your Email</td> <td><input name="email" type="text" class="box" id="email" size="30" value="<?=$email;?>"></td> </tr> <tr> <td>Subject</td> <td><input name="subject" type="text" class="box" id="subject" size="30" value="<?=$subject;?>"></td> </tr> <tr> <td>Message</td> <td><textarea name="message" cols="55" rows="10" wrap="OFF" class="box" id="message"><?=$message;?></textarea></td> </tr> <tr align="center"> <td colspan="2"><input name="send" type="submit" class="bluebox" id="send" value="Send Message" onclick="return checkForm();"></td> </tr> <tr align="center"> <td colspan="2"> </td> </tr> <tr align="left"> <td colspan="2"><div align="center">If by any chance the form isn't working you can contact me by emailing <script language="JavaScript"> var addr = 'peakbouldering'; var host = 'googlemail.com'; var email = '<a href="mailto:' + addr + '@' + host + '">' + addr + '@' + host + '</a>'; document.write(email); </script> </div></td> </tr> </table> </form> <?php } function isEmail($email) { return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i" ,$email)); } ?> <p> </p> </body> </html> Link to comment https://forums.phpfreaks.com/topic/37358-form-with-file-attachment-problem/#findComment-178662 Share on other sites More sharing options...
tdpurnell Posted February 7, 2007 Author Share Posted February 7, 2007 can anyone help, It would be most appreciated. Tom Link to comment https://forums.phpfreaks.com/topic/37358-form-with-file-attachment-problem/#findComment-178991 Share on other sites More sharing options...
tdpurnell Posted February 7, 2007 Author Share Posted February 7, 2007 anyone? Link to comment https://forums.phpfreaks.com/topic/37358-form-with-file-attachment-problem/#findComment-179131 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.