Хотите знать, будет ли это работать как один оператор if ()?

Я работаю над формой регистрации и работаю над оператором if, где проверяется, совпадает ли пароль с паролем подтверждения.

Что меня интересует, так это то, что я могу объединить проверку двух паролей друг с другом с проверкой длины пароля и вернуть ошибку или продолжить вставку пользователя в базу данных, если оба пройдут.

Это логично или возможно объединить сравнение пароля с StrLen () функция в том же если() заявление отделено || или это должно быть && между?

        if ($password != $password_confirm || strlen($password) < 8) {
$error_register = 'Passwords do not match or is under less that 8 characters';
} else {
//finish inserting user into database statement
}

Или я должен просто сделать 2 разных заявления?

0

Решение

Вы должны сделать два разных утверждения, если хотите показать два разных сообщения об ошибках, например:

if ($password != $password_confirm) {
$error_register = 'Passwords do not match';
} elseif (strlen($password) < 8) {
$error_register = 'Password is under less than 8 characters';
} else {
//finish inserting user into database statement
}

В противном случае, код, который вы предоставляете, в порядке.

4

Другие решения

То, что у вас там, должно работать отлично.

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

Если вы не чувствуете необходимости проводить различие между этими двумя случаями, одно утверждение немного более компактно.

3

Это хорошо с точки зрения программирования, но не с точки зрения пользовательского интерфейса. Гораздо приятнее возвращать конкретное сообщение об ошибке как для ошибки «пароли не совпадают», так и для ошибки «пароль слишком короткий».

3

Это, вероятно, хорошо, как одно утверждение. Логика здесь не занимает много времени, чтобы понять. Стилистически может быть лучше сначала проверить нормальный поток (то есть, чтобы пароли совпадали и имели правильную длину). Это лишь тонкий способ помочь любым будущим читателям кода легче понять, что ожидается здесь:

if ($password == $password_confirm && strlen($password) >= 8) {
//finish inserting user into database statement
} else {
$error_register = 'Passwords do not match or is under less that 8 characters';
}
2
По вопросам рекламы [email protected]