В чем проблема регистрации? на php
Нужно чтобы показывался текст что пользователь не ввел символы в строку. Написал, проверал, но почему-то ничего нету. Буду благодарен за помощь)
<?php
require "db.php";
$data = $_POST;
if ( isset($data['do_signup']) ) {
//проверка регистрации
$errors = array();
if (trim($data['naming']) == '') {
$errors[] = 'Введите ваше имя!';
}
if (trim($data['login']) == '') {
$errors[] = 'Введите логин!';
}
if ($data['psw'] == '') {
$errors[] = 'Введите пароль!';
}
if ($data['psw_repeat'] != $data['psw']) {
$errors[] = 'Повторите ещё раз пароль!';
}
if (trim($data['email']) == '') {
$errors[] = 'Введите Email!';
}
if ( empty($errors) ) {
// регистрация пройшла успешно
}else{
echo array_shift($errors);
}
};
?>
Ответы (2 шт):
Автор решения: DrMcSheen
→ Ссылка
if ( empty($errors) ) {
empty проверяет, считается ли переменная пустой. Переменная считается пустой, если она не существует или её значение равно false
Автор решения: phpBear
→ Ссылка
Позволю себе немного упростить Ваш код, исправить в нем ошибки и дать некоторые советы по мере написания
require "db.php";
$data = $_POST;
if ( isset($data['do_signup']) ) {
$errors = [];
//Типовая проверка всех полей - кстати я бы поле с паролем на пустоту предварительно `trim`-нув его не проверял т.к пользователь вполне может использовтаь пробел вначале или конце пароля
foreach(['naming' => 'Введите ваше имя!', 'login' => 'Введите логин!', 'psw' => 'Введите логин!',
'psw_repeat' => 'Подтвердите пароль!', 'email' => 'Введите Email!'] as $fieldName => $errorMessage ) {
if ( !isset( $data[ $fieldName ] ) || is_null( $data[ $fieldName ] ) && trim( $data[ $fieldName ] ) == '' ) {
$errors[] = $errorMessage;
}
}
//Отдельно проверяем что пароль и его подтверждение совпадают, Но только в том случае если они введены
if ( isset( $data[ 'psw' ] ) && isset( $data[ 'psw_repeat' ] ) && $data[ 'psw' ] != $data[ 'psw_repeat' ] ) {
$errors[] = 'Пароль и его подтверждение не совпадают!';
}
//Проверяем что ошибок валидации формы авторизации не было
if ( count( $errors ) > 0 ) {
//Есть ошибки
} else {
//Нет ошибок
//В случае ошибки я бы еще выводил сообщение об ошибке ПОД самим полем и ставил в него фокус
}
}