if (preg_match ("/^[a-zа-я0-9_]{3,15}$/", $_POST['reg_name'], $_POST['reg_pass'])) {
/*последующий код, где имя и захешированный пароль заносятся в бд*/
}
Проблема в том, что пароль не записывается в бд. Но если писать вот так:
if (strlen($_POST['reg_name']) >= 3 and strlen($_POST['reg_pass']) >= 3 {}
То всё работает. Но, конечно же, мне желательна проверка.
Помогите решить проблему, пожалуйста
Обратите внимание на сигнатуру preg_match
:
int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )
$subject
— это string
, а $_POST['reg_pass']
у вас передаётся как массив для сохранения найденного соответствия.
Нужно поправить регулярное выражение, добавить ё
и модификаторы iu
для работы со строками Юникода (u
) и регистронезависимого поиска (i
), а затем использовать конструкцию типа if (preg_match(...) && preg_match(...)) {...}
:
$regex = "/^[a-zа-яё0-9_]{3,15}$/iu";
if (preg_match($regex, $_POST['reg_name']) && preg_match($regex, $_POST['reg_pass']))
{
// Добавить в базу
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Написал API на Laravel, аутентификация через laravel/passportКак в тесте имитировать залогиненого пользователя? Не очень хочется вручную создавать в базе...
Такая задача у нас: периодически (например раз в 10 мин) они должны попадать на сайтТ
Веду логин и пароль делаю авторизацию и мне выдает неверный логин или пароль хотя указанно все правильноКак мне кажется проблема в том что...
Ребята помогите разобраться с проблемой: Суть в чем написал парсер, знаю как вызвать имитацию кнопки через JS теперь не могу это все собрать...