flamtech Posted May 21, 2008 Share Posted May 21, 2008 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. Quote Link to comment https://forums.phpfreaks.com/topic/106579-add-validation-question/ Share on other sites More sharing options...
MadTechie Posted May 21, 2008 Share Posted May 21, 2008 i am not going to do it for you (you need to show some effort) but your need an input text box and some text, if the input name is "question" then your php validation code would be if( strtolower($_POST['question']) != "hot" ) { echo "wrong"; } Quote Link to comment https://forums.phpfreaks.com/topic/106579-add-validation-question/#findComment-546378 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.