FRIHOST FORUMS SEARCH FAQ TOS BLOGS COMPETITIONS
You are invited to Log in or Register a free Frihost Account!


Form Mail help........lol





mdsite
i dont know but i cant get form processing to work. I dont know where i am going wrong. If u can help plz start from the basics upwards.
Thank-You
Roald
Plz post here your code so we can help.
hexkid
Does this work?
When you run it with the proper address, do you receive an email?
Doe the script output "Mail message was (probably) sent."?

Code:
<?php
define('EMAIL_ADDRESS', 'mdsite@example.com'); // replace with YOUR addy

if (mail(EMAIL_ADDRESS, 'test', 'This is a test.')) {
  echo 'Mail message was (probably) sent.';
} else {
  echo 'Mail message <b>*NOT*</b> sent, sorry.';
}
?>
mdsite
Well when i try it goes page cannot been found when i use my code.
mdsite
this is the code i use

Code:
<?php
error_reporting(E_PARSE);
define("ADMIN_MAIL", "jb@bwp.net");
define("HOST_NAME", $_SERVER['HTTP_HOST']);
define("PHP_SELF", $_SERVER['PHP_SELF']);
define("ERR_MISSING", "Missing required field : ");
define("ERR_EMAIL", "Please enter a valid e-mail address : ");
define("ERR_CREDIT_CARD_NUMBER", "Please check the credit card number : ");
define("ERR_CREDIT_CARD_EXPIRED", "Please check the credit card expiry date : ");
define("ERR_SELECT_UPLOAD", "Please select file : ");// recipient
 define('FORM_RECIPIENT', 'Example@example.com');
// --- Array of Form Elements ---
$form_mail[] = array( "name" => "Text", "text" => "Text",  "type" => "text", "required" => "" ) ;
$form_mail[] = array( "name" => "text", "text" => "text",  "type" => "text", "required" => "" ) ;

// -- Detech Submit & SendMail --
$isHideForm = false;
if( $HTTP_POST_VARS["formmail_submit"] ){
   $sErr = checkPass();
   if( ! $sErr ){
      sendFormMail( $form_mail, "") ;
      $isHideForm = true;

      $redirect = "";
      if( strlen(trim($redirect)) ):
         header( "Location:$redirect" );
         exit;
      endif;
   }
}


?>
<?
// ===============================================
function    sendFormMail( $form_mail, $sFileName = ""  )
{
    global    $HTTP_POST_VARS ;

    if (ereg('/freeformmaker.com/', HOST_NAME))
    {
        return;
    }
   $to = FORM_RECIPIENT;
   $from = "NO_REPLY@" . HOST_NAME;
   $subject = $HTTP_POST_VARS["esh_formmail_subject"];

   // first stage keep it simple:
   $sWhatToDo = $sFileName ? "mailandfile" : "" ; //$HTTP_POST_VARS["esh_formmail_mail_and_file"];

   //$sFileName = $HTTP_POST_VARS["esh_formmail_save_record_file"];
   $cc = $HTTP_POST_VARS["esh_formmail_cc"];
   $bcc = $HTTP_POST_VARS["esh_formmail_bcc"];
   $charset = $HTTP_POST_VARS["esh_formmail_charset"];

    for( $i = 0; $i < count( $form_mail ); $i ++ ){
        $value = trim( $HTTP_POST_VARS[ $form_mail[ $i ][ "name" ] ] );
        $content .= $form_mail[ $i ][ "text" ] . " \t : " . $value ."\n";
        $line .= remove_newline( $value ) . "\t" ;
      if( strtolower("Sender's email") == strtolower($form_mail[ $i ][ "type" ]) ) {
         //print "Type:[" . $form_mail[ $i ][ "type" ] . "] $value <br>\n";
         $from = $value ;
      }
    };
    $content .= "\n\nIP:" . getEnv( "REMOTE_ADDR" );

   switch( strtolower($sWhatToDo) ){
      case "mailandfile" :
           mailAttachments( $to , $subject , $content,  $from,  $charset, $cc , $bcc ) ;
           if( ! appendToFile( $sFileName, $line ) )
            mailReport( $content . "\n\nWrite Form Mail to File Fail." );
         break;

      case "fileonly" :
           if( ! appendToFile( $sFileName, $line ) )
            mailReport( $content . "\n\nWrite Form Mail to File Fail.", $from );
         break;

      default :
           mailAttachments( $to , $subject , $content,  $from,  $charset, $cc , $bcc ) ;
   }

   mailAutoResponse( $from ) ;
}


//------------------------------------------------------------------------------------------
function mailAutoResponse( $to ){
    global    $HTTP_POST_VARS ;
   $subject = $HTTP_POST_VARS["esh_formmail_return_subject"];
   $responseMsg = $HTTP_POST_VARS["esh_formmail_return_msg"];
   if( $to && $responseMsg )
      mail( $to, $subject, $responseMsg, "From: " . FORM_RECIPIENT);
}


//------------------------------------------------------------------------------------------
function mailReport( $content = "", $from = "" ){
   mail( ADMIN_MAIL, "Error@" . HOST_NAME . PHP_SELF, $content, "From:$from" );
}

//------------------------------------------------------------------------------------------
function   remove_newline( $str = "" ){
   $newliner = "<!--esh_newline-->" ; // replace \r\n with $newliner ;
   $newtaber = "<!--esh_newtaber-->" ; // replace \t with $newtaber ;
   $str = ereg_replace( "\t", $newtaber, $str );
   $str = ereg_replace( "\r\n", $newliner, $str );
   return ereg_replace( "\n", $newliner, $str );
}

//------------------------------------------------------------------------------------------
function   checkPass()
{
   global   $form_mail ;
   global   $HTTP_POST_VARS ;
    global    $HTTP_POST_FILES ;

   for( $i = 0; $i < count( $form_mail ); $i ++ ){
      $type = strtolower( $form_mail[ $i ][ "type" ]  );
      $value = trim( $HTTP_POST_VARS[ $form_mail[ $i ][ "name" ] ] );
      $required = $form_mail[ $i ][ "required" ] ;
      $text = stripslashes( $form_mail[ $i ][ "text" ] );

      // simple check the field has something keyed in.
      if( !strlen($value) && (  $required == "Required" ) && $type != "attachment" )
         return ERR_MISSING . $text  ;

      // verify the special case
      if(
         ( strlen($value) || $type == "attachment" )
         &&  $required == "Required"
      ):
         switch( $type ){
               case    strtolower("Sender's Name") :
                       break;
               case    strtolower("Generic email"):
               case    strtolower("Sender's email"):
                        if( ! formIsEMail($value) )    return ERR_EMAIL . $text ;
                        break;
               case   "text" :
                        break;
               case    "textarea" :
                        break;
               case   "checkbox" :
               case    "radio" :
                        break;
               case    "select" :
                        break;
               case    "attachment" :
                        $upload_file = $HTTP_POST_FILES[ $form_mail[ $i ]["name"] ][ "tmp_name" ] ;
                        if( ! is_uploaded_file($upload_file)  )
                           return  ERR_SELECT_UPLOAD . $text;
                        break;
               case strtolower("Date(MM-DD-YYYY)"):
                        break;
               case strtolower("Date(MM-YYYY)"):
                        break;
               case strtolower("CreditCard(MM-YYYY)"):
                        if( $value < date("Y-m") ) return ERR_CREDIT_CARD_EXPIRED  . $text;
                        break;
               case strtolower("CreditCard#"):
                        if( !formIsCreditNumber( $value )  ) return ERR_CREDIT_CARD_NUMBER  . $text ;
                        break;
               case strtolower("Time(HH:MM:SS)"):
                        break;
               case strtolower("Time(HH:MM)"):
                        break;
               default :
                  //return $sErrRequired . $form_mail[ $i ][ "text" ];
            } // switch
      endif;
   } // for

   return "" ;
}



//------------------------------------------------------------------------------------------
function formSelected( $var, $val )
{
    echo ( $var == $val ) ? "selected" : "";
}


//------------------------------------------------------------------------------------------
function formChecked( $var, $val )
{
    echo ( $var == $val ) ? "checked" : "";
}


//------------------------------------------------------------------------------------------
function    formIsEMail( $email ){
        return ereg( "^(.+)@(.+)\\.(.+)$", $email );
}


//------------------------------------------------------------------------------------------
function    selectList( $name, $selectedValue, $start, $end, $prompt = "-Select-", $style = "" )
{
    $tab = "\t" ;
    print "<select name=\"$name\" $style>\n" ;
    print $tab . "<option value=''>$prompt</option>\n" ;
    $nLen = strlen( "$end" ) ;
    $prefix_zero = str_repeat( "0", $nLen );
    for( $i = $start; $i <= $end ; $i ++ ){
        $stri = substr( $prefix_zero . $i, strlen($prefix_zero . $i)-$nLen, $nLen );
        $selected = ( $stri == $selectedValue ) ? " selected " : "" ;
        print $tab . "<option value=\"$stri\" $selected >$stri</option>\n" ;
    }
    print "</select>\n\n" ;
}


//------------------------------------------------------------------------------------------
// something like CreditCard.pm in perl CPAN
function formIsCreditNumber( $number ) {

    $tmp = $number;
    $number = preg_replace( "/[^0-9]/", "", $tmp );

    if ( preg_match(  "/[^\d\s]/", $number ) )  return 0;
    if ( strlen($number) < 13  && 0+$number ) return 0;

    for ($i = 0; $i < strlen($number) - 1; $i++) {
        $weight = substr($number, -1 * ($i + 2), 1) * (2 - ($i % 2));
        $sum += (($weight < 10) ? $weight : ($weight - 9));
    }

    if ( substr($number, -1) == (10 - $sum % 10) % 10  )  return $number;
    return $number;
}


// -------------------------- Begin Mail Attachment Functions -----------------------------------------------------------------
function    mailAttachments( $to = "" , $subject = "" , $message = "" , $from = "support@lynx.net" , $charset = "iso-8859-1", $cc = "" , $bcc = "" ){
    global    $HTTP_POST_FILES ;

        if( ! strlen( trim( $to ) ) ) return "Missing \"To\" Field." ;

        $boundary = "====_My_PHP_Form_Generator_" . md5( uniqid( srand( time() ) ) ) . "====";

        // setup mail header infomation
        $headers = "From: $from\r\n";
        if ($cc) $headers .= "CC: $cc\r\n";
        if ($bcc) $headers .= "BCC: $bcc\r\n";
      $plainHeaders = $headers ; // for no attachments header
        $headers .= "MIME-Version: 1.0\nContent-type: multipart/mixed;\n\tboundary=\"$boundary\"\n";

        $txtMsg = "\nThis is a multi-part message in MIME format.\n" .
                        "\n--$boundary\n" .
                        "Content-Type: text/plain;\n\tcharset=\"$charset\"\n\n"  . $message . "\n";

        //create mulitipart attachments boundary
        $sError = "" ;
        $nFound = 0;
        foreach( $HTTP_POST_FILES as $aFile ){
                    $sFileName = $aFile[ "tmp_name" ] ;
                    $sFileRealName = $aFile[ "name" ] ;
                    if( is_file( $sFileName ) ):

                        if( $fp = fopen( $sFileName, "rb" ) ) :
                            $sContent = fread( $fp, filesize( $sFileName ) );
                            $sFName = basename( $sFileRealName ) ;
                            $sMIME = getMIMEType( $sFName ) ;

                            $bPlainText = ( $sMIME == "text/plain" ) ;
                            if( $bPlainText ) :
                                $encoding = "" ;
                            else:
                                $encoding = "Content-Transfer-Encoding: base64\n";
                                $sContent = chunk_split( base64_encode( $sContent ) );
                            endif;

                            $sEncodeBody .=     "\n--$boundary\n" .
                                                        "Content-Type: $sMIME;\n" .
                                                        "\tname=\"$sFName\"\n" .
                                                        $encoding .
                                                        "Content-Disposition: attachment;\n" .
                                                        "\tfilename=\"$sFName\"\n\n" .
                                                        $sContent . "\n" ;
                            $nFound ++;
                        else:
                            $sError .= "<br>File $sFileName can not open.\n" ;
                        endif; // if( $fp = fopen( $sFileName, "rb" ) ) :

                    else:
                        $sError .= "<br>File $sFileName doesn't exist.\n" ;
                    endif; //if( file_exists( $sFileName ) ):
        }; // end foreach

         $sEncodeBody .= "\n\n--$boundary--" ;
         $sSource = $txtMsg . $sEncodeBody ;


       $nFound ? mail( $to, $subject, $sSource, $headers  )
                      : mail( $to, $subject, $message, $plainHeaders );

        return $sError ;
}

/* ---------------------------------------------------------------------------------------------------
    Parameters: $sFileName
    Return :
        1. "" :  no extendsion name, or sFileName is empty
        2. string: MIME Type name of array aMimeType's definition.
   ---------------------------------------------------------------------------------------------------*/
function    getMIMEType( $sFileName = "" ) {

        $sFileName = strtolower( trim( $sFileName ) );
        if( ! strlen( $sFileName  ) ) return "";

        $aMimeType = array(
                                        "txt" => "text/plain" ,
                                        "pdf" => "application/pdf" ,
                                        "zip" => "application/x-compressed" ,

                                        "html" => "text/html" ,
                                        "htm" => "text/html" ,

                                        "avi" => "video/avi" ,
                                        "mpg" => "video/mpeg " ,
                                        "wav" => "audio/wav" ,

                                        "jpg" => "image/jpeg " ,
                                        "gif" => "image/gif" ,
                                        "tif" => "image/tiff " ,
                                        "png" => "image/x-png" ,
                                        "bmp" => "image/bmp"
                                    );
        $aFile = split( "\.", basename( $sFileName ) ) ;
        $nDiminson = count( $aFile ) ;
         $sExt = $aFile[ $nDiminson - 1 ] ; // get last part: like ".tar.zip", return "zip"

        return ( $nDiminson > 1 ) ? $aMimeType[ $sExt ] : "";
}
// End Mail Attachment Functions


//------------------------------------------------------------------------------------------
function    appendToFile( $sFileName = "", $line = "" ){
    if( !$sFileName || !$line ) return 0;
    $hFile = fopen( "$sFileName", "a+w" );
    $nBytes = 0;
    if( $hFile ){
        $nBytes = fputs( $hFile , trim($line)."\r\n" );
        fclose( $hFile );
    };
    return $nBytes ;
}
?>
ncwdavid
What the hell is that mdsite? it looks like a script to take a credit card number? im sorry if it isnt i didnt really look at it but from what ive seen it look that way?
mdsite
lol, i got it from somewhere i cant remember. Do you know any simple one which will work. I am using MS office publisher to make the site but i still cant get the form to sent to me.
Ohhhh yeah, it is not a Cedit Card form. lol
ncwdavid
What needs to be processed? is it a login box? a contact form? where does it have to be sent? database? email address? written to a file?
mdsite
it is a contact form and it need to be sent to a email address
ncwdavid
I am supposing you know how to post the info from the form to the script.
Code:

<?php
//after posting all the info from the form

if( mail("admin@yourdomain.com",$subject,$message)){
echo "Email sent successfully!";
}
else{
echo "Email was not sent";
}
?>

Is that all you need or do you need more?
mdsite
i dont, i need more help. Explain what i do with the code
hexkid
mail.html
Code:
<html>
<head>
<title>mail</title>
</head>
<body>
<form action="mail.php" method="post">
  <!-- PUT YOUR FORM HERE -->
  <!-- DO NOT FORGET A SUBMIT BUTTON -->
  <input type="submit">
</form>
</body>
</html>


As you see, the action for the form in mail.html is mail.php. The mail.php script will mail everything inside the form to the address defined in it.
Code:
<?php
define('EMAIL_ADDRESS', 'mdsite@example.com'); // replace with YOUR addy

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
  if (mail(EMAIL_ADDRESS, 'form post', print_r($_POST, true))) {
    // mail (probably) sent
    // you might want to update a database or something
  } else {
    // mail not sent
    // you might want to update a database or something
  }
  // after sending the email, return to the mail.html page
  header('Location: mail.html');
  exit('Redirected to <a href="mail.html">mail.html</a>.');
} else {
  exit('This URL not supposed to be requested with a GET.');
}
?>
mdsite
i got the buttons made and the test input but i cant get the form process to work. (i made the buttons on MS office publisher, my website is bassed on that program)
hexkid
Create a script with only
Code:
<?php echo "Hello world, the time is ", date("H:i:s"); ?>


Run it on the browser.
Refresh a few times.
Do you see the seconds changing?
manum
dude i guess u need to put ur code on ur freehost account and then try running it....... do elobrate on ur problem pls....
Related topics
PHP: Feedback form issues.. help =P
form mail for php
A Simple Form Mail in PHP
Looking for easy FormMail Script
Please Help? CGI form mail on my site... only 2 questions!
Form Mail Help Needed
Recommend Form - Need Help!
Mail() Help
form mail problems (quality help=frih$)
[man]Form Mail en PHP
Form Processing Help. It is doing my head in
Gmail Paper :: Free Physical Copy Of Any Message
PHP Form Question
Google Mail Autopilot by CADIE
Reply to topic    Frihost Forum Index -> Scripting -> Php and MySQL

FRIHOST HOME | FAQ | TOS | ABOUT US | CONTACT US | SITE MAP
© 2005-2011 Frihost, forums powered by phpBB.