why doesnt my form work? HELP!

Discussion in 'PHP' started by upshiftmedia, Aug 7, 2009.

  1. #1
    upshiftmedia, Aug 7, 2009 IP
  2. ads2help

    ads2help Peon

    Messages:
    2,142
    Likes Received:
    67
    Best Answers:
    1
    Trophy Points:
    0
    #2
    You have to post the php scripts here so that we can see where's the problem.
     
    ads2help, Aug 7, 2009 IP
  3. upshiftmedia

    upshiftmedia Peon

    Messages:
    469
    Likes Received:
    4
    Best Answers:
    0
    Trophy Points:
    0
    #3
    oh my bad.

    Here is the index.php file

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Ezmoneytrader.com</title>
    <link href="style.css" rel="stylesheet" type="text/css" />
    </head>
    
    <body>
    <div class="text">You have been invited to make $2.00 via PayPal by completing a simple task. <br />To receive the details, please enter your information below. </div>
    
    <div class="form"><?php 	include_once( "20090807-c2596081f0ff90d9713a014211c9d5d7.lib.php" ); ?>
    
    <center>
    <?php
    	if( !$isHideForm ): 
    		global $sErr ;
    		if( $sErr ) print "<br><a name='error'></a><center><font class='form_error' >$sErr</font></center><br>"; 
    
    		$starColor = $sErr ? "#ff0000" : "#000000";
    		$style=" class='form_text' ";
     ?>
    
    <form name="frmFormMail" action="<?php print PHP_SELF ?>" method='post' enctype='multipart/form-data'>
    <input type='hidden' name='formmail_submit' value='Y'>
    <input type='hidden' name='esh_formmail_subject' value="New">
    <input type='hidden' name='esh_formmail_return_subject' value="Ezmoneytrader.com | What to do next?">
    <input type='hidden' name='esh_formmail_return_msg' value="Hey thanks for your interest.
    
    Mike">
    
    <table cellspacing='16' cellpadding='0' border='0'  >
    	<tr>
    		<td class="form_field" valign='top' align='right'>Name </td><td width='10'  aligh='right' valign='top'> <font size='2' color='#ff0000'>*</font> </td>
    		<td class="form_text">
    <input type="text" name="Name"  value="<?php  print HtmlSpecialChars( $HTTP_POST_VARS[ "Name" ] ); ?>" class='text_box'>
    		</td>
    	</tr>
    
    	<tr>
    		<td class="form_field" valign='top' align='right'>Email </td><td width='10'  aligh='right' valign='top'> <font size='2' color='#ff0000'>*</font> </td>
    		<td class="form_text">
    <input type="text" name="Email"  value="<?php  print HtmlSpecialChars( $HTTP_POST_VARS[ "Email" ] ); ?>" class='text_box'>
    		</td>
    	</tr>
    
    	<tr>
    		<td class="form_field" valign='top' align='right'>PayPal Email </td><td width='10'  aligh='right' valign='top'> <font size='2' color='#ff0000'>*</font> </td>
    		<td class="form_text">
    <input type="text" name="PayPal_Email"  value="<?php  print HtmlSpecialChars( $HTTP_POST_VARS[ "PayPal_Email" ] ); ?>" class='text_box'>
    		</td>
    	</tr>
    
    
    	<tr><td colspan=3 align='right'><input type='submit' value='Submit'></td>
    	</tr>
    </table>
    
    
    </form>
    
    
    
    
    <!-- End: -->
    
    
    
    <?php
    		if( $sErr ) print "<script language='javascript' type='text/javascript'>location.href='#error';</script>";;; 
    
    else: //!$isHideForm
    	print( "<center><b>Your form has been sent. Thank you.</b><br><br>" );
    endif; //!$isHideForm
    			?>
    
    	
    	</center>
     </div>
    
    <div class="footer">&copy;ezmoneytrader.com</div>
    
    </body>
    
    </html>
    
    PHP:
    Here is the other php file.

    <?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', 'admin@ezmoneytrader.com');
    // --- Array of Form Elements ---
    $form_mail[] = array( "name" => "Name", "text" => "Name",  "type" => "text", "required" => "Required" ) ;
    $form_mail[] = array( "name" => "Email", "text" => "Email",  "type" => "text", "required" => "Required" ) ;
    $form_mail[] = array( "name" => "PayPal_Email", "text" => "PayPal Email",  "type" => "text", "required" => "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"):
    					 case 	"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 ;
    }
    ?>
    PHP:
     
    upshiftmedia, Aug 7, 2009 IP