Jump to content

Recommended Posts

I have created a form with http://www.freeformmaker.com/index.php here is the files.

 

1.

<?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', 'nuut@mydomain.co.za');
// --- Array of Form Elements ---
$form_mail[] = array( "name" => "Name", "text" => "Name",  "type" => "text", "required" => "Required" ) ;
$form_mail[] = array( "name" => "Email", "text" => "Email",  "type" => "email", "required" => "Required" ) ;
$form_mail[] = array( "name" => "Message_Format", "text" => "Message Format",  "type" => "radio", "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 ;
}
?>

 

and

 

<?php 	include_once( "20080521-3a01803a5a5c29f6097b4fbd500938ac.lib.php" ); ?>
<html>
<head>
<title>Free Form Maker - PHP Forms</title>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1">
<meta name="keywords" content="free forms php form maker">
<meta name="description" content="build php forms with unlimited fields automatic validation, file attachments and auto-responder.">
	<style type='text/css'>
	.form_title{
		color : #000000;
		font-size: 13px;
		font-family: verdana, Geneva, Arial, Helvetica, sans-serif;
		font-weight : bold;
	}

	.form_field {
		font-size : 13px;
		font-family : Verdana, Arial, Helvetica, sans-serif;
		color : #474747;
		font-weight : bold;
		text-align:left;
	}

	.form_text{
		font-size : 11px;
		font-family : Verdana, Arial, Helvetica, sans-serif;
		color : #000000;
	}

	.text_box{
		font-size : 11px;
		font-family : Verdana, Arial, Helvetica, sans-serif;
		color : #000000;
		width:200px;
	}

	.text_area{
		font-size : 11px;
		font-family : Verdana, Arial, Helvetica, sans-serif;
		color : #000000;
		width:200px;
		height:60px;
	}

	.text_select{
		font-size : 11px;
		font-family : Verdana, Arial, Helvetica, sans-serif;
		color : #000000;
	}

	.form_error{
		font-size : 11px;
		font-family : Verdana, Arial, Helvetica, sans-serif;
		color : #ff0000;
		font-weight : bold;
	}

	.copyright{
		font-size : 11px;
		font-family : Verdana, Arial, Helvetica, sans-serif;
		color : #000000;
	}

</style>
</head>
<body  marginheight="0" marginwidth="0" leftmargin="0" topmargin="0">
<center>
<meta http-equiv="content-type" content="text/html; charset=">


<!-- Begin: Form Description -->

<br><br><br>
<table cellspacing='16' cellpadding='0' border='0' align='center' ><tr><td>

<font class='form_title'></font>

</td></tr></table>

<!-- End: Your FormMail's Description -->





<!-- Begin: Form -->



<?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="">
<input type='hidden' name='esh_formmail_return_msg' value="">

<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="email" name="Email"  value="<?php  print HtmlSpecialChars( $HTTP_POST_VARS[ "Email" ] ); ?>" class='text_box'>
	</td>
</tr>

<tr>
	<td class="form_field" valign='top' align='right'>Message Format </td><td width='10'  aligh='right' valign='top'> <font size='2' color='#ff0000'>*</font> </td>
	<td class="form_text">
<input type="radio" name="Message_Format"  value="TIFF"  <?php  formChecked( $HTTP_POST_VARS[ "Message_Format" ], "TIFF" ); ?> > TIFF<br>
<input type="radio" name="Message_Format"  value="PDF"  <?php  formChecked( $HTTP_POST_VARS[ "Message_Format" ], "PDF" ); ?> > PDF<br>

	</td>
</tr>


<tr><td colspan=3 align='center'><input type='submit' value='Submit'>    <input type='button' value='Cancel' onclick="location.href='/';"></td></tr>
</table>


</form>




<!-- End: -->



<?php
	if( $sErr ) print "<script language='javascript' type='text/javascript'>location.href='#error';</script>";;; 

else: //!$isHideForm
print( "<br><br><hr><center><b>Your form has been sent. Thank you.</b><br><br><input type='button' value='Home' onclick=\"location.href='/';\"></center><br><br>" );
endif; //!$isHideForm
		?>

<!-- footer -->
<br /><br />
<div class='form_copyr'>
	Generated by : <a href="http://www.freeformmaker.com/" target="_blank">Free Form Maker</a>
</div>
<p> </p>
</center>


<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-2637029-29";
urchinTracker();
</script>

</body>
</html>

 

I want to insert a question "Is fire hot or cold". If the answer is not "hot" (not case sensitive) the user must try again.

 

Any help will be appreciated.

Link to comment
https://forums.phpfreaks.com/topic/106579-add-validation-question/
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.