File: //home/awaldron/www/archive/ressyn/include/functions/f_forms.php
<?php
function form_validate($form_data, $valid, $width='') {
$errors = FALSE;
$out = '<div class="errors"'.(!empty($width)?' style="width:'.$width.';margin:0 auto;"':'').'>Your form could not be submitted due to the following errors:<ul>'."\n";
for ($i=0; $i < count($valid); $i++) {
// If two fields must be equal, write custom error
if ($valid[$i][2] == 'equal') {
if (strcmp($valid[$i][0],$valid[$i][1]) != 0) {
$errors = TRUE;
$out .= '<li> '. $valid[$i][3].'</li>';
}
} else if ($valid[$i][2] == 'exists') {
if (strcmp($valid[$i][0],$valid[$i][1]) == 0) {
$errors = TRUE;
if (!empty($valid[$i][0]) && !empty($valid[$i][1])) $out .= '<li> '. $valid[$i][3].'</li>';
}
} else if ($valid[$i][2] == 'empty_checkbox') {
if (empty($form_data[$valid[$i][0]])) {
$errors = TRUE;
$out .= '<li> '. $valid[$i][3].'</li>';
}
} else {
// $valid keys :: [0]=form_field_name, [1]=form_label, [2]=validation_type, [3]=Required
$fvalue = trim($form_data[$valid[$i][0]]);
// If field is not required and empty, do nothing
if (empty($fvalue) && !$valid[$i][3]) { }
// Test if field is required, but empty
else if (empty($fvalue) && $valid[$i][3]) {
$errors = TRUE;
$out .= '<li> \'' . $valid[$i][1].'\' is a required field.</li>';
}
// If field contains data, test if it's valid
else if (!empty($fvalue)) {
// If no validation type, do nothing
if ($valid[$i][2] == 'none') { }
// If validation type is an email adress
else if ($valid[$i][2] == 'email') {
if (!preg_match("/^[A-Z0-9._%-]+@[A-Z0-9._%-]+\.[A-Z]{2,6}$/i", $fvalue)) {
$errors = TRUE;
$out .= '<li> \'' . $valid[$i][1].'\' must contain a valid email address.</li>';
}
}
// If validation type is a URL
else if ($valid[$i][2] == 'url') { }
// If validation type is a number
else if ($valid[$i][2] == 'num') {
if (!ctype_digit($fvalue)) {
$errors = TRUE;
$out .= '<li> \'' . $valid[$i][1].'\' must contain a numeric value.</li>';
}
}
// If validation type is alpha
else if ($valid[$i][2] == 'alpha') {
if (!ctype_digit($fvalue)) {
$errors = TRUE;
$out .= '<li> \'' . $valid[$i][1].'\' can only contain alphabetical characters.</li>';
}
}
// If validation type is alphanumeric
else if ($valid[$i][2] == 'alnum') {
if (!ctype_digit($fvalue)) {
$errors = TRUE;
$out .= '<li> \'' . $valid[$i][1].'\' must contain an alphanumeric value.</li>';
}
}
// Otherwise, do nothing
else { }
}
// Otherwise, do nothing
else { }
}
}
$out .= '</ul></div>'."\n";
if ($errors) return $out;
else return FALSE;
}
function input_checkbox($name,$value='',$checked=false,$asis='') {
return '<input type="checkbox" name="'.$name.'" value="'.$value.'" '.$asis.($checked?' checked':'').' class="input-off" />';
}
function input_hidden($name,$value,$asis='') {
return '<input type="hidden" name="'.$name.'" value="'.$value.'" '.$asis.' />';
}
function input_radio($name,$value='',$checked=false,$asis='') {
return '<input type="radio" name="'.$name.'" value="'.$value.'" '.$asis.($checked?' checked':'').' class="input-off" />';
}
function input_submit($name="submit",$value="Submit",$asis='') {
return '<input type="submit" name="'.$name.'" value="'.$value.'" '.$asis.' class="input-button" />';
}
function input_text($name,$value='',$asis='') {
return '<input type="text" name="'.$name.'" value="'.$value.'" '.$asis.' class="input-off" />';
}
function input_password($name,$value='',$asis='') {
return '<input type="password" name="'.$name.'" value="'.$value.'" '.$asis.' class="input-off" />';
}
function input_textarea($name,$value='',$asis='') {
return '<textarea name="'.$name.'" '.$asis.' class="input-off">'.$value.'</textarea>';
}
function input_select($name,$opt,$val='',$selected='',$asis='') {
if (empty($val)) $val = $opt;
$out = '<select name="'.$name.'" '.$asis.'>'."\n";
for ($i=0; $i < count($opt); $i++) {
$out .= ' <option value="'.$val[$i].'"'.($val[$i]==$selected?' SELECTED':'').'>'.$opt[$i].'</option>'."\n";
}
$out .= '</select>'."\n";
return $out;
}
function select_birthdate($bdate=0) {
if (zero($bdate)) $bday = $bmon = $byear = 0;
else {
$bday = substr($bdate,6,2); if ($bday < 10) $bday = substr($bday,1,1);
$bmon = substr($bdate,4,2); if ($bmon < 10) $bmon = substr($bmon,1,1);
$byear = substr($bdate,0,4);
}
$month = array("","January","February","March","April","May","June","July","August","September","October","November","December");
$out = "<SELECT name=\"bmon\">\n";
$out .= "<option value=\"0\"></option>\n";
for ($i=1; $i <= 12; $i++) $out .= "<option value=\"".($i<10?"0".$i:$i)."\"".($bmon==$i?" SELECTED":"").">".$month[$i]."</option>\n";
$out .= "</select>\n";
$out .= "<SELECT name=\"bday\">\n";
$out .= "<option value=\"0\"></option>\n";
for ($j=1; $j <= 31; $j++) $out .= "<option value=\"".($j<10?"0".$j:$j)."\"".($bday==$j?" SELECTED":"").">".($j<10?"0".$j:$j)."</option>\n";
$out .= "</select>\n";
$out .= "<SELECT name=\"byear\">\n";
$out .= "<option value=\"0\"></option>\n";
for ($k=(date("Y")-15); $k >= (date("Y")-35); $k--) $out .= "<option value=\"".$k."\"".($byear==$k?" SELECTED":"").">".$k."</option>\n";
return $out;
}
function select_category($selected) {
$out = '<select name="cat" onchange="change_subcat_options();">'."\n";
$r = quickRSET("SELECT DISTINCT course_category, course_category_url FROM course ORDER BY course_category ASC");
$out .= '<option value="all">All Categories</option>'."\n";
for ($i=0; $i < count($r); $i++) {
$out .= '<option value="'.$r[$i][course_category_url].'"'.($r[$i][course_category_url]==$selected?' SELECTED':'').'>'.category_case($r[$i][course_category]).'</option>'."\n";
}
$out .= '</select>'."\n";
return $out;
}
function select_lookup($type,$selected='',$alph=0) {
$fdb = new awDatabase;
$sql = "SELECT * FROM lu_".$type.($alph==1?" ORDER BY ".$type." ASC":"");
$r = $fdb->quickRSET($sql);
$select = "<select id=\"".$type."_id\">\n";
$select .= "<option value=\"0\"></option>\n";
for ($i=0; $i < count($r); $i++) {
$select .= "<option value=\"".$r[$i][$type."_id"]."\"".($selected==$r[$i][$type."_id"]?" SELECTED":"").">".$r[$i][$type]."</option>\n";
}
$select .= "</select>\n";
return $select;
}
function select_time($name,$hr=-1,$min=-1,$ampm=-1) {
$out .= "<SELECT name=\"".$name."_hr\" style=\"background:#454545;color:#DDDDDD;border:solid #666666 1px;\">\n";
$out .= "<option value=\"-1\"></option>\n";
for ($l=1; $l <= 12; $l++) $out .= "<option value=\"".$l."\"".($l==$hr?" SELECTED":"").">".$l."</option>\n";
$out .= "</select>:";
$out .= "<SELECT name=\"".$name."_min\" style=\"background:#454545;color:#DDDDDD;border:solid #666666 1px;\">\n";
$out .= "<option value=\"-1\"></option>\n";
for ($m=0; $m < 60; $m+=15) $out .= "<option value=\"".($m==0?"00":$m)."\"".(($m==0?"00":$m)==$min?" SELECTED":"").">".($m==0?"00":$m)."</option>\n";
$out .= "</select>\n";
$out .= "<SELECT name=\"".$name."_ampm\" style=\"background:#454545;color:#DDDDDD;border:solid #666666 1px;\">\n";
$out .= "<option value=\"-1\"></option>\n";
$out .= "<option value=\"am\"".($ampm=="am"?" SELECTED":"").">am</option>\n";
$out .= "<option value=\"pm\"".($ampm=="pm"?" SELECTED":"").">pm</option>\n";
return $out;
}
function select_yes_no($name,$selected=1,$null_opt=FALSE) {
$select = "<select name=\"".$name."\">\n";
if ($null_opt) $select .= "<option value=\"0\"></option>\n";
$select .= '<option value="1"'.($selected==1?' selected="true"':'').'>Yes</option>'."\n";
$select .= '<option value="0"'.($selected==0?' selected="true"':'').'>No</option>'."\n";
$select .= "</select>\n";
return $select;
}
?>