Похоже, что проблема с переменной $ validForm в функции validateForm.
Я думаю, что ваши предполагаемые изменения в $ validForm внутри функции изменяют то же имя переменной вне функции. поскольку вы не установили ее как глобальную переменную, она не сделает это за вас.
Вам нужно взглянуть на область действия переменной в PHP.
http://php.net/manual/en/language.variables.scope.php
это объяснит, как вам следует обращаться с этой переменной. вы можете вернуть значение в функцию ..
например, для этой функции просто вернуть переменную:
function validateField($value,$type){
//magic goes here.
switch ($type){
case 'required':
if (!isset($value) || ($value== "")){
$valid = false;
}
else{
$valid = true;
}
break;
case 'email':
$regexp = "/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z-][0-9a-zA-Z-]+\.)+[a-zA-Z](2,6)$/";
if(isset($value) && preg_match($regexp,$variable)){
$valid = true;
}
else {
$valid = false;
}
break;
case 'number':
if(!isset($value) || ($value=="") || (!is_numeric($value))){
$valid = false;
}
else{
$valid = true;
}
break;
default:
die('Validacion desconocida.');
}
return $valid;
}
Это решит проблему в функции
чтобы получить переменную, выполните:
$formValid = true;
if (!validateField($_GET['name'],'required'))
{
$formValid = false;
}
if (!validateField($_GET['lastname'],'required'))
{
$formValid = false;
}
if ($ formValid) ....