Server IP : 103.119.228.120 / Your IP : 3.139.98.10 Web Server : Apache System : Linux v8.techscape8.com 3.10.0-1160.119.1.el7.tuxcare.els2.x86_64 #1 SMP Mon Jul 15 12:09:18 UTC 2024 x86_64 User : nobody ( 99) PHP Version : 5.6.40 Disable Function : shell_exec,symlink,system,exec,proc_get_status,proc_nice,proc_terminate,define_syslog_variables,syslog,openlog,closelog,escapeshellcmd,passthru,ocinum cols,ini_alter,leak,listen,chgrp,apache_note,apache_setenv,debugger_on,debugger_off,ftp_exec,dl,dll,myshellexec,proc_open,socket_bind,proc_close,escapeshellarg,parse_ini_filepopen,fpassthru,exec,passthru,escapeshellarg,escapeshellcmd,proc_close,proc_open,ini_alter,popen,show_source,proc_nice,proc_terminate,proc_get_status,proc_close,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,dl,symlink,shell_exec,system,dl,passthru,escapeshellarg,escapeshellcmd,myshellexec,c99_buff_prepare,c99_sess_put,fpassthru,getdisfunc,fx29exec,fx29exec2,is_windows,disp_freespace,fx29sh_getupdate,fx29_buff_prepare,fx29_sess_put,fx29shexit,fx29fsearch,fx29ftpbrutecheck,fx29sh_tools,fx29sh_about,milw0rm,imagez,sh_name,myshellexec,checkproxyhost,dosyayicek,c99_buff_prepare,c99_sess_put,c99getsource,c99sh_getupdate,c99fsearch,c99shexit,view_perms,posix_getpwuid,posix_getgrgid,posix_kill,parse_perms,parsesort,view_perms_color,set_encoder_input,ls_setcheckboxall,ls_reverse_all,rsg_read,rsg_glob,selfURL,dispsecinfo,unix2DosTime,addFile,system,get_users,view_size,DirFiles,DirFilesWide,DirPrintHTMLHeaders,GetFilesTotal,GetTitles,GetTimeTotal,GetMatchesCount,GetFileMatchesCount,GetResultFiles,fs_copy_dir,fs_copy_obj,fs_move_dir,fs_move_obj,fs_rmdir,SearchText,getmicrotime MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /usr/share/awl/inc/ |
Upload File : |
<?php /** * Classes to handle validation of form data. * * @package awl * @subpackage Validation * @author Emily Mossman <emily@mcmillan.net.nz> * @copyright Catalyst IT Ltd * @license http://gnu.org/copyleft/gpl.html GNU GPL v2 or later */ require_once("AWLUtilities.php"); /** * Rules used for validation of form fields. * @package awl */ class Validation { /**#@+ * @access private */ /** * List of rules for validation * @var rules */ var $rules = array(); /** * The javascript function name to call onsubmit of the form * @var func_name */ var $func_name = ""; /**#@-*/ /** * Initialise a new validation. * @param string $func_name The javascript function name to call onsubmit of the form */ function __construct($func_name) { $this->func_name = $func_name; } /** * Adds a validation rule for a specific field upon submission of the form. * You must call RenderRules below RenderFields when outputing the page * @param string $fieldname The name of the field. * @param string $error_message The message to display on unsuccessful validation. * @param string $function_name The function to call to validate the field */ function AddRule( $fieldname, $error_message, $function_name ) { $this->rules[] = array($fieldname, $error_message, $function_name ); } /** * Returns the javascript for form validation using the rules. * @param string $onsubmit The name of the function called on submission of the form. * @param string $prefix Optional prefix for form fields. * @return string HTML/Javascript for form validation. */ function RenderJavascript($prefix = "") { if(! count($this->rules) ) return ""; $html = <<<EOHTML <script language="JavaScript"> function $this->func_name(form) { var error_message = "";\n EOHTML; foreach($this->rules as $rule) { list($fieldname, $error_message, $function_name) = $rule; $html .= <<<EOHTML if(!$function_name(form.$prefix$fieldname)) error_message += "$error_message\\n"; EOHTML; } $html .= <<<EOHTML if(error_message == "") return true; alert("Errors:"+"\\n"+error_message); return false; } </script> EOHTML; return $html; } /** * Validates the form according to it's rules. * @param object $object The data object that requires form validation. * @return boolean True if the validation succeeded. */ function Validate($object) { global $c; if(! count($this->rules) ) return; $valid = true; foreach($this->rules as $rule) { list($fieldname, $error_message, $function_name) = $rule; if (!$this->$function_name($object->Get($fieldname))) { $valid = false; $c->messages[] = $error_message; } } return $valid; } /////////////////////////// // VALIDATION FUNCTIONS /////////////////////////// /** * Checks if a string is empty * @param string $field_string The field value that is being checked. * @return boolean True if the string is not empty. */ function not_empty($field_string) { return ($field_string != ""); } /** * Checks that a string is not empty or zero * @param string $select_string The select value that is being checked. * @return boolean True if the string is not empty or equal to 0. */ function selected($field_string) { return (!($field_string == "" || $field_string == "0")); } /** * Check that the given string is a positive dollar amount. * Use not_empty first if string is required. * @param string $field_string The amount to be checked. * @return boolean Returns true if the given string is a positive dollar amount. */ function positive_dollars($field_string) { if(!$field_string) return true; if( preg_match('/^\$?[0-9]*\.?[0-9]?[0-9]?$/', $field_string) ) { $field_string = preg_replace("/\$/", "", $field_string); $field_string = preg_replace("/\./", "", $field_string); if( intval($field_string) > 0 ) return true; } return false; } /** * Check that the given string is a positive integer. * Use not_empty first if string is required. * @param string $field_string The amount to be checked. * @return boolean Returns true if the given string is a positive integer. */ function positive_integer($field_string) { if(!$field_string) return true; return ( preg_match('/^[0-9]*$/', $field_string) ); } /** * Check that the given string is a valid email address. * Use not_empty first if string is required. * @param string $field_string The string to be checked. * @return boolean Returns true if the given string is a valid email address. */ function valid_email_format($field_string) { if(!$field_string) return true; // Anything printable, followed by between 1 & 5 valid domain components, with a TLD to finish $pattern = "/^[[:print:]]+@([a-z0-9][a-z0-9-]*\.){1,5}[a-z]{2,5}$/i"; return (preg_match($pattern, $field_string)); } /** * Check that the given string matches the user's date format. * Use not_empty first if string is required. * @param string $field_string The string to be checked. * @return boolean Returns true if the given string matches the user's date format from session. */ function valid_date_format($field_string) { global $session; if(!$field_string) return true; switch($session->date_format_type) { case 'J': if (!preg_match('/^([0-9]{4})[\/\-]([0-9]{1,2})[\/\-]([0-9]{1,2})$/', $field_string, $regs)) return false; $day = intval($regs[3]); $month = intval($regs[2]); $year = intval($regs[1]); break; case 'U': if (!preg_match('/^([0-9]{1,2})[\/\-]([0-9]{1,2})[\/\-]([0-9]{4})$/', $field_string, $regs)) return false; $day = intval($regs[2]); $month = intval($regs[1]); $year = intval($regs[3]); break; case 'E': default: if (!preg_match('/^([0-9]{1,2})[\/\-]([0-9]{1,2})[\/\-]([0-9]{4})$/', $field_string, $regs)) return false; $day = intval($regs[1]); $month = intval($regs[2]); $year = intval($regs[3]); } return (checkdate ($month, $day, $year)); } }