Пользовательская проверка в PHP Codeigniter – требуется одно из двух полей

У моей формы есть мобильный телефон и телефон. Я хочу, чтобы пользователь заполнил либо одно из полей, либо и то, и другое, но не одно.

Я видел способы сделать это на других языках, но могу ли я получить некоторые советы о том, как это сделать с помощью Codeigniter?

Просто выполните проверку JS на стороне клиента и проверку PHP на стороне сервера (или воспользуйтесь помощником формы CI) … В любом случае PHP должен выглядеть примерно так:

if ($_POST['cellphone'] == '' OR $_POST['phone' == '') { // do stuff like make an notification, alert, etc... and take users back to the form } 

Вы можете сделать это как:

 $ this-> form_validation-> set_rules ('phone', 'Ваше сообщение для проверки.', 'callback__phone_check');

И сделайте функцию:

 function _phone_check () {
    // проверяем телефон и поле сотового телефона.
   // убедитесь, что одно поле не пустое и соответственно
 }

надеюсь, это поможет

Просто хотел бросить некоторые быстрые фрагменты кода. Я хотел выполнить это, и этот вопрос был одним из первых записей в google, когда я выполнил поиск. Я получил вдохновение от других ответов, и вот что я сделал для меня (YMMV):

 $this->form_validation->set_message('contactVerify', 'Either Phone or Email is required'); ... $this->form_validation->set_rules('phone', 'Phone', 'trim|callback_contactVerify[email]|xss_clean'); $this->form_validation->set_rules('email', 'Email', 'trim|callback_contactVerify[phone]|valid_email|xss_clean'); ... public function contactVerify($contact, $otherField) { return ($contact != '' || $this->input->post($otherField) != ''); } 

Поскольку это очень простая функция проверки, я предварительно устанавливаю сообщение об ошибке, поэтому мне не нужно устанавливать его внутри функции проверки. Я перехожу в другое поле, которое я хочу проверить как второй аргумент через квадратные скобки.

Надеюсь, это полезно.