Results 1 to 4 of 4

Thread: 3 Formmail.php problems - help

  1. #1
    Join Date
    Feb 2006
    Posts
    4

    Unhappy 3 Formmail.php problems - help

    1. My form is working except for the attachments arenít being sent. Do you see something wrong with this code?
    // check for an attachment if there is a file upload it
    if ($attachment_name) {
    if ($attachment_size > 0) {
    if (!$attachment_type) $attachment_type = "application/unknown";
    $content .= "Attached File: ".$attachment_name."\n";
    $fp = fopen($attachment, "r");
    $attachment_chunk = fread($fp, filesize($attachment));
    $attachment_chunk = base64_encode($attachment_chunk);
    $attachment_chunk = chunk_split($attachment_chunk);

    2. Also canít figure out where to put the redirect link so that after they fill out the form it goes to that Ďthankyouí page. I think it should go somewhere in this strand of code but not sure where to put in the link:

    // if the redirect option is set: redirect them
    if ($redirect) {
    header("Location: $redirect");
    exit;
    } else {
    echo "Thank you for your submission\n";
    echo "<br><br>\n";
    echo "<small>This form is powered by <a href=\"http://www.dtheatre.com/scripts/\">Jack's Formmail.php ".VERSION."!</a></small>\n\n";
    exit;
    }

    3. when the emails come to my inbox there are 2 of them Ė duplicates Ė not sure why it is sending duplicates every time you hit submit

    Here is the script for my form in Dreamweaver:
    <form action="http://www.jennadesign.com/GRAYSOURCEINC/formmail.php" method="post" enctype="multipart/form-data" name="submitresumeform" id="submitresumeform">
    <input type=hidden name="recipient" value="jennifer@jennadesign.com">
    <table width="600" border="0" align="center" cellpadding="5" cellspacing="2">
    <tr>
    <td width="120"><div align="right" class="style6 style7">First Name: </div></td>
    <td width="180" valign="middle" class="style7"><input name="firstname" type="text" id="firstname">
    </td>
    <td width="120"><div align="right" class="style7"><span class="style6">Last Name: </span></div></td>
    <td width="180" valign="middle"><input name="lastname" type="text" id="lastname"></td>
    </tr>
    <tr>
    <td width="120"><div align="right" class="style7"><span class="style6">City:</span></div></td>
    <td width="180" valign="middle" class="style7"><input name="city" type="text" id="city">
    </td>
    <td width="120"><div align="right" class="style7"><span class="style6">State:</span></div></td>
    <td width="180" valign="middle"><input name="state" type="text" id="state"></td>
    </tr>
    <tr>
    <td width="120"><div align="right" class="style7"><span class="style6">Phone Number: </span></div></td>
    <td width="180" valign="middle" class="style7"><input name="phone" type="text" id="phone">
    </td>
    <td width="120"><div align="right" class="style7"><span class="style6"></span></div></td>
    <td width="180" valign="middle" class="style7">&nbsp;</td>
    </tr>
    <tr>
    <td width="120"><div align="right" class="style7"><span class="style6">Email Address: </span></div></td>
    <td width="180" valign="middle" class="style7"><input name="email" type="text" id="email">
    </td>
    <td width="120"><div align="right" class="style7"><span class="style6"></span></div></td>
    <td width="180" valign="middle" class="style7">&nbsp;</td>
    </tr>
    <tr>
    <td width="120"><div align="right" class="style7"><span class="style6">Attach Resume: </span></div></td>
    <td colspan="3" valign="middle"><input name="resume" type="file" id="resume"></td>
    </tr>
    <tr>
    <td width="120"><div align="right" class="style8">Job Category: </div></td>
    <td colspan="3" valign="middle"><select name="jobcategory" size="1" id="jobcategory">
    <option selected>Select . . .</option>
    <option value="itservices">IT Services</option>
    <option value="energy">Energy</option>
    <option value="F&A">Finance&amp;Accounting</option>
    </select></td>
    </tr>
    <tr>
    <input type="hidden" name="redirect" value="http://www.jennadesign.com/GRAYSOURCEINC/thankyou.html">
    <td>&nbsp;</td>
    <td colspan="3" valign="middle"><input type="submit" name="Submit" value="Submit"></td>

    </tr>
    </table>
    <br>
    </form>

  2. #2
    Join Date
    Feb 2006
    Posts
    4

    Default ok, only having 1 problem now - files won't attach

    here's my formmail.php script:
    */

    // for ultimate security, use this instead of using the form
    $recipient = "jenna@jennadesign.com"; // youremail@domain.com
    $redirect = "http://www.jennadesign.com/GRAYSOURCEINC/thankyou.html";
    // bcc emails (separate multiples with commas (,))
    $bcc = "";

    // referers.. domains/ips that you will allow forms to
    // reside on.
    $referers = array ('jennadesign.com','www.jennadesign.com','216.40.198.25');

    // banned emails, these will be email addresses of people
    // who are blocked from using the script (requested)
    $banlist = array ('*@somedomain.com', 'user@domain.com', 'etc@domains.com');

    // field / value seperator
    define("SEPARATOR", ($separator)?$separator:": ");

    // content newline
    define("NEWLINE", ($newline)?$newline:"\n");

    // formmail version (for debugging mostly)
    define("VERSION", "5.0");


    // our mighty error function..
    function print_error($reason,$type = 0) {
    build_body($title, $bgcolor, $text_color, $link_color, $vlink_color, $alink_color, $style_sheet);
    // for missing required data
    if ($type == "missing") {
    if ($missing_field_redirect) {
    header("Location: $missing_field_redirect?error=$reason");
    exit;
    } else {
    ?>
    The form was not submitted for the following reasons:<p>
    <ul><?
    echo $reason."\n";
    ?></ul>
    Please use your browser's back button to return to the form and try again.<?
    }
    } else { // every other error
    ?>
    The form was not submitted because of the following reasons:<p>
    <?
    }
    echo "<br><br>\n";
    echo "<small>This form is powered by <a href=\"http://www.dtheatre.com/scripts/\">Jack's Formmail.php ".VERSION."</a></small>\n\n";
    exit;
    }

    // function to check the banlist
    // suggested by a whole lot of people.. Thanks
    function check_banlist($banlist, $email) {
    if (count($banlist)) {
    $allow = true;
    foreach($banlist as $banned) {
    $temp = explode("@", $banned);
    if ($temp[0] == "*") {
    $temp2 = explode("@", $email);
    if (trim(strtolower($temp2[1])) == trim(strtolower($temp[1])))
    $allow = false;
    } else {
    if (trim(strtolower($email)) == trim(strtolower($banned)))
    $allow = false;
    }
    }
    }
    if (!$allow) {
    print_error("You are using from a <b>banned email address.</b>");
    }
    }

    // function to check the referer for security reasons.
    // contributed by some one who's name got lost.. Thanks
    // goes out to him any way.
    function check_referer($referers) {
    if (count($referers)) {
    $found = false;

    $temp = explode("/",getenv("HTTP_REFERER"));
    $referer = $temp[2];

    if ($referer=="") {$referer = $_SERVER['HTTP_REFERER'];
    list($remove,$stuff)=split('//',$referer,2);
    list($home,$stuff)=split('/',$stuff,2);
    $referer = $home;
    }

    for ($x=0; $x < count($referers); $x++) {
    if (eregi ($referers[$x], $referer)) {
    $found = true;
    }
    }
    if ($referer =="")
    $found = false;
    if (!$found){
    print_error("You are coming from an <b>unauthorized domain.</b>");
    error_log("[FormMail.php] Illegal Referer. (".getenv("HTTP_REFERER").")", 0);
    }
    return $found;
    } else {
    return true; // not a good idea, if empty, it will allow it.
    }
    }
    if ($referers)
    check_referer($referers);

    if ($banlist)
    check_banlist($banlist, $email);

    // This function takes the sorts, excludes certain keys and
    // makes a pretty content string.
    function parse_form($array, $sort = "") {
    // build reserved keyword array
    $reserved_keys[] = "MAX_FILE_SIZE";
    $reserved_keys[] = "required";
    $reserved_keys[] = "redirect";
    $reserved_keys[] = "require";
    $reserved_keys[] = "path_to_file";
    $reserved_keys[] = "recipient";
    $reserved_keys[] = "subject";
    $reserved_keys[] = "sort";
    $reserved_keys[] = "style_sheet";
    $reserved_keys[] = "bgcolor";
    $reserved_keys[] = "text_color";
    $reserved_keys[] = "link_color";
    $reserved_keys[] = "vlink_color";
    $reserved_keys[] = "alink_color";
    $reserved_keys[] = "title";
    $reserved_keys[] = "missing_fields_redirect";
    $reserved_keys[] = "env_report";
    $reserved_keys[] = "submit";
    if (count($array)) {
    if (is_array($sort)) {
    foreach ($sort as $field) {
    $reserved_violation = 0;
    for ($ri=0; $ri<count($reserved_keys); $ri++)
    if ($array[$field] == $reserved_keys[$ri]) $reserved_violation = 1;

    if ($reserved_violation != 1) {
    if (is_array($array[$field])) {
    for ($z=0;$z<count($array[$field]);$z++)
    $content .= $field.SEPARATOR.$array[$field][$z].NEWLINE;
    } else
    $content .= $field.SEPARATOR.$array[$field].NEWLINE;
    }
    }
    }
    while (list($key, $val) = each($array)) {
    $reserved_violation = 0;
    for ($ri=0; $ri<count($reserved_keys); $ri++)
    if ($key == $reserved_keys[$ri]) $reserved_violation = 1;

    for ($ri=0; $ri<count($sort); $ri++)
    if ($key == $sort[$ri]) $reserved_violation = 1;

    // prepare content
    if ($reserved_violation != 1) {
    if (is_array($val)) {
    for ($z=0;$z<count($val);$z++)
    $content .= $key.SEPARATOR.$val[$z].NEWLINE;
    } else
    $content .= $key.SEPARATOR.$val.NEWLINE;
    }
    }
    }
    return $content;
    }

    // mail the content we figure out in the following steps
    function mail_it($content, $subject, $email, $recipient) {
    global $attachment_chunk, $attachment_name, $attachment_type, $attachment_sent, $bcc;

    $ob = "----=_OuterBoundary_000";
    $ib = "----=_InnerBoundery_001";

    $headers = "MIME-Version: 1.0\r\n";
    $headers .= "From: ".$email."\n";
    $headers .= "Reply-To: ".$email."\n";
    if ($bcc) $headers .= "Bcc: ".$bcc."\n";
    $headers .= "X-Priority: 1\n";
    $headers .= "X-Mailer: DT Formmail".VERSION."\n";
    $headers .= "Content-Type: multipart/mixed;\n\tboundary=\"".$ob."\"\n";


    $message = "This is a multi-part message in MIME format.\n";
    $message .= "\n--".$ob."\n";
    $message .= "Content-Type: multipart/alternative;\n\tboundary=\"".$ib."\"\n\n";
    $message .= "\n--".$ib."\n";
    $message .= "Content-Type: text/plain;\n\tcharset=\"iso-8859-1\"\n";
    $message .= "Content-Transfer-Encoding: quoted-printable\n\n";
    $message .= $content."\n\n";
    $message .= "\n--".$ib."--\n";
    if ($attachment_name && !$attachment_sent) {
    $message .= "\n--".$ob."\n";
    $message .= "Content-Type: $attachment_type;\n\tname=\"".$attachment_name."\"\n";
    $message .= "Content-Transfer-Encoding: base64\n";
    $message .= "Content-Disposition: attachment;\n\tfilename=\"".$attachment_name."\"\n\n";
    $message .= $attachment_chunk;
    $message .= "\n\n";
    $attachment_sent = 1;
    }
    $message .= "\n--".$ob."--\n";

    mail($recipient, $subject, $message, $headers);
    }

    // take in the body building arguments and build the body tag for page display
    function build_body($title, $bgcolor, $text_color, $link_color, $vlink_color, $alink_color, $style_sheet) {
    if ($style_sheet)
    echo "<LINK rel=STYLESHEET href=\"$style_sheet\" Type=\"text/css\">\n";
    if ($title)
    echo "<title>$title</title>\n";
    if (!$bgcolor)
    $bgcolor = "#FFFFFF";
    if (!$text_color)
    $text_color = "#000000";
    if (!$link_color)
    $link_color = "#0000FF";
    if (!$vlink_color)
    $vlink_color = "#FF0000";
    if (!$alink_color)
    $alink_color = "#000088";
    if ($background)
    $background = "background=\"$background\"";
    echo "<body bgcolor=\"$bgcolor\" text=\"$text_color\" link=\"$link_color\" vlink=\"$vlink_color\" alink=\"$alink_color\" $background>\n\n";
    }

    // check for a recipient email address and check the validity of it
    // Thanks to Bradley miller (bradmiller@accesszone.com) for pointing
    // out the need for multiple recipient checking and providing the code.
    $recipient_in = split(',',$recipient);
    for ($i=0;$i<count($recipient_in);$i++) {
    $recipient_to_test = trim($recipient_in[$i]);
    if (!eregi("^[_\\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\\.)+[a-z]{2,6}$", $recipient_to_test)) {
    print_error("<b>I NEED VALID RECIPIENT EMAIL ADDRESS ($recipient_to_test) TO CONTINUE</b>");
    }
    }

    // This is because I originally had it require but too many people
    // were used to Matt's Formmail.pl which used required instead.
    if ($required)
    $require = $required;
    // handle the required fields
    if ($require) {
    // seperate at the commas
    $require = ereg_replace( " +", "", $require);
    $required = split(",",$require);
    for ($i=0;$i<count($required);$i++) {
    $string = trim($required[$i]);
    // check if they exsist
    if((!(${$string})) || (!(${$string}))) {
    // if the missing_fields_redirect option is on: redirect them
    if ($missing_fields_redirect) {
    header ("Location: $missing_fields_redirect");
    exit;
    }
    $require;
    $missing_field_list .= "<b>Missing: $required[$i]</b><br>\n";
    }
    }
    // send error to our mighty error function
    if ($missing_field_list)
    print_error($missing_field_list,"missing");
    }

    // check the email fields for validity
    if (($email) || ($EMAIL)) {
    $email = trim($email);
    if ($EMAIL) $email = trim($EMAIL);
    if (!eregi("^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,6}$", $email))
    print_error("your <b>email address</b> is invalid");
    $EMAIL = $email;
    }

    // check zipcodes for validity
    if (($ZIP_CODE) || ($zip_code)) {
    $zip_code = trim($zip_code);
    if ($ZIP_CODE) $zip_code = trim($ZIP_CODE);
    if (!ereg("(^[0-9]{5})-([0-9]{4}$)", trim($zip_code)) && (!ereg("^[a-zA-Z][0-9][a-zA-Z][[:space:]][0-9][a-zA-Z][0-9]$", trim($zip_code))) && (!ereg("(^[0-9]{5})", trim($zip_code))))
    print_error("your <b>zip/postal code</b> is invalid");
    }

    // check phone for validity
    if (($PHONE_NO) || ($phone_no)) {
    $phone_no = trim($phone_no);
    if ($PHONE_NO) $phone_no = trim($PHONE_NO);
    if (!ereg("(^(.*)[0-9]{3})(.*)([0-9]{3})(.*)([0-9]{4}$)", $phone_no))
    print_error("your <b>phone number</b> is invalid");
    }

    // check phone for validity
    if (($FAX_NO) || ($fax_no)) {
    $fax_no = trim($fax_no);
    if ($FAX_NO) $fax_no = trim($FAX_NO);
    if (!ereg("(^(.*)[0-9]{3})(.*)([0-9]{3})(.*)([0-9]{4}$)", $fax_no))
    print_error("your <b>fax number</b> is invalid");
    }

    // sort alphabetic or prepare an order
    if ($sort == "alphabetic") {
    uksort($HTTP_POST_VARS, "strnatcasecmp");
    } elseif ((ereg('^order:.*,.*', $sort)) && ($list = explode(',', ereg_replace('^order:', '', $sort)))) {
    $sort = $list;
    }

    // prepare the content
    $content = parse_form($HTTP_POST_VARS, $sort);

    // check for an attachment if there is a file upload it
    if ($attachment_name) {
    if ($attachment_size > 0) {
    if (!$attachment_type) $attachment_type = "application/unknown";
    $content .= "Attached File: ".$attachment_name."\n";
    $fp = fopen($attachment, "r");
    $attachment_chunk = fread($fp, filesize($attachment));
    $attachment_chunk = base64_encode($attachment_chunk);
    $attachment_chunk = chunk_split($attachment_chunk);
    }
    }

    // if the env_report option is on: get eviromental variables
    if ($env_report) {
    $env_report = ereg_replace( " +", "", $env_report);
    $env_reports = split(",",$env_report);
    $content .= "\n------ eviromental variables ------\n";
    for ($i=0;$i<count($env_reports);$i++) {
    $string = trim($env_reports[$i]);
    if ($env_reports[$i] == "REMOTE_HOST")
    $content .= "REMOTE HOST: ".$REMOTE_HOST."\n";
    if ($env_reports[$i] == "REMOTE_USER")
    $content .= "REMOTE USER: ". $REMOTE_USER."\n";
    if ($env_reports[$i] == "REMOTE_ADDR")
    $content .= "REMOTE ADDR: ". $REMOTE_ADDR."\n";
    if ($env_reports[$i] == "HTTP_USER_AGENT")
    $content .= "BROWSER: ". $HTTP_USER_AGENT."\n";
    }
    }

    // send it off
    mail_it(stripslashes($content), ($subject)?stripslashes($subject):"Resume Submission", $email, $recipient);
    if (file_exists($ar_file)) {
    $fd = fopen($ar_file, "rb");
    $ar_message = fread($fd, filesize($ar_file));
    fclose($fd);
    mail_it($ar_message, ($ar_subject)?stripslashes($ar_subject):"RE: Resume Submission", ($ar_from)?$ar_from:$recipient, $email);
    }

    // if the redirect option is set: redirect them
    if ($redirect) {
    header("Location: $redirect");
    exit;
    } else {
    echo "Thank you for your submission\n";
    echo "<br><br>\n";
    echo "<small>This form is powered by <a href=\"http://www.dtheatre.com/scripts/\">Jack's Formmail.php ".VERSION."!</a></small>\n\n";
    exit;
    }

    // <---------- THE END ----------> //

  3. #3
    Join Date
    Dec 2003
    Posts
    3,980

    Default Re: 3 Formmail.php problems - help

    Hi,

    It looks like you're using Jack's FormMail.

    You probably won't get support for that here.

    We supply Tectite FormMail, and you can get help for that on these forums.
    Russell Robinson - Author of Tectite FormMail and FormMailDecoder
    http://www.tectite.com/

  4. #4
    Join Date
    Feb 2006
    Posts
    4

    Default Re: 3 Formmail.php problems - help

    oh . . . woops. i wish i had used this formmail in the first place . . . thanks.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. How to set up the formmail.php file?
    By treborito in forum FormMail Subscription Support
    Replies: 1
    Last Post: 19-Oct-2004, 06:29 PM
  2. Badhandler Problems
    By Jacob in forum FormMail Subscription Support
    Replies: 3
    Last Post: 17-Aug-2004, 08:11 PM
  3. Error Messsage for Formmail.php
    By dparker2 in forum FormMail Subscription Support
    Replies: 8
    Last Post: 01-Jun-2004, 07:09 AM
  4. GOOD_URL COMMAND IN FORMMAIL.PHP
    By Paul Ovens in forum FormMail Subscription Support
    Replies: 3
    Last Post: 19-Jan-2004, 04:29 AM
  5. formmail.php
    By paul in forum FormMail Subscription Support
    Replies: 8
    Last Post: 03-Jan-2004, 06:11 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •