@Speakermen

Как пересобрать массив с элементами?

Как можно уменьшить код например нужно обработать данные с форм email password.
Если каждый инпут проверять через if и выводить сессию об ошибке заполнения то получается куча одинакового кода.
Если сделать таким образом 'email' => 'required|max:255', то как потом можно собрать это всё вместе. Буду благодарен за компонент в packagist/ как основу для понимания реализации.

$_POST['email']
$_SESSION['email']
 'email' => 'required|max:255',


function validate()
  {
    $getForm = ['name', 'image', 'platforms', 'chipsets', 'manufacturers'];

    for ($i=0; $i < count($getForm); $i++)
    { 
      if (isset($_GET[$getForm[$i]]) && empty($_GET[$getForm[$i]])) return false; //$_SESSION['error']['required']
      else return true;
    }
  }

  if (validate())
  {
    if (setMotherboard($_GET['name'], $_GET['image'], $_GET['platforms'], $_GET['manufacturers'], $_GET['chipsets']))
    {
      header('Location: /get_motherboard.php');
      exit;
    }
  }

<code lang="php">
class FormValidate
	{
		public static function validate ($params)
		{
			foreach($params as $key => $value) 
			{
	            //echo  $key . ' ' . $value . '<br>';

	            //echo $params[$key] . '<br>';;

	            $params[$key] = explode('|', $params[$key]);
	        }



			echo '<pre>';
			var_dump($params);
			echo '</pre>';
		}
	}

	FormValidate::validate([
		'email' => 'required|max:255',
        'username' => 'required',
        'password' => 'required'
	]);
</code>
  • Вопрос задан
  • 53 просмотра
Решения вопроса 1
@alexalexes
Если вы видите, что пишите один и тот же код повторно, значит, пора общую часть кода выносить в функцию или метод. И эта ситуация может случиться не обязательно в модуле валидации.
Пишите базовые функции:
а) проверка обычной строки на минимум и максимум по длине;
б) проверка радиокнопки;
в) проверка чекбокса;
г) выпадающего списка.
Все остальные функции будут вызывать что-то из этого базиса и допроверять свойства поля, например, email вы проверяете функцией А на корректность длины, а потом валидность по регулярке. Если длина не та, то предупреждения выведете из функции А, а регулярку не станете проверять, а если косячит по регулярке, то уже будет предупреждение, что email некорректен.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Сбер Москва
До 240 000 ₽
ЭТП «ТОРГИ 223» Нижний Новгород
от 50 000 ₽
RecruitIT Москва
от 120 000 до 150 000 ₽
20 окт. 2020, в 22:57
5000 руб./за проект
20 окт. 2020, в 21:37
300000 руб./за проект
20 окт. 2020, в 21:18
500 руб./за проект