[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Посмотрите пожалуйста скрипт
dmitriy2294

if (isset($_POST['user_name'])) {
if (preg_match ("#[^a-zа-яё\d_-]#iu", $_POST['user_name'])) {
exit ('<span class="error">Недопустимые символы в имени пользователя.</span>');
}
elseif (empty($_POST['user_name'])) {
unset($user_name);
exit('<span class="error">Вы не ввели имя пользователя.</span>');
}
else {
$user_name = $_POST['user_name'];
echo $user_name;
}
}


Вот код с проверками введенного имени пользователя при регистрации. Хотелось бы узнать, не индусский ли он? Может как-то можно его ещё короче сделать? (хочу научиться писать более менее хороший код) =)

Мне кажется что самая первая проверка (isset()) не нужна так как сушествует проверка с empty(), я не вижу разницы например между !isset и empty, и наоборот) Какие будут замечания



Спустя 31 минута, 12 секунд (12.10.2012 - 17:37) dmitriy2294 написал(а):
И кстати, if ($text =="") и if(empty($text)) разные вещи?? Сори за мультипост

Спустя 3 минуты, 8 секунд (12.10.2012 - 17:40) twin написал(а):
Хочешь научиться писать - научись сначала читать.
Давай по прядку, каждую строчку опиши по-русски своими словами.

Спустя 3 минуты, 7 секунд (12.10.2012 - 17:43) kristall написал(а):

Спустя 6 минут, 2 секунды (12.10.2012 - 17:49) dmitriy2294 написал(а):

if (isset($_POST['user_name'])) { /*проверяем, установленна ли переменная (я понимаю это как "присвоенно ли её значение")*/
if (preg_match ("#[^a-zа-яё\d_-]#iu", $_POST['user_name'])) { /*выполняем проверку на недопустимые символы */
exit ('<span class="error">Недопустимые символы в имени пользователя.</span>'); /*если есть, останавливаем работу скрипта*/
}
elseif (empty($_POST['user_name'])) { /* вот тут я незнаю, нужно ли это условие, оно ведь обратно первому, но тем не менее проверяем*/
unset($user_name);
exit('<span class="error">Вы не ввели имя пользователя.</span>'); /*если переменная пустая, обнуляем (незнаю зачем, она ведь пустая)*/
}
else {
$user_name = $_POST['user_name'];/* если всё ок присваиваем и выводим*/
echo $user_name;
}
}



Я читал мануал, но толком не понял ничего, что значит переменная не установлена? Это значит что тип данных не указан, или что она не имеет значения (пустая?)
Вобщем непонятно точное назначение функций:


isset(); // и меняет ли её значение на обратное "!" ?
empty(); // и меняет ли её значение на обратное "!" ?
unset();
//так же:
session_unset(); //отличие от:
session_destroy();

Спустя 9 минут, 4 секунды (12.10.2012 - 17:59) m4a1fox написал(а):
dmitriy2294
isset - существует ли переменная.
empty - пуста ли существующая переменная.
uset - переменная, давай досвидания.

Что конкретно ты хотел бы услышать про свой скрипт?!

Спустя 3 минуты, 48 секунд (12.10.2012 - 18:02) dmitriy2294 написал(а):
Цитата (m4a1fox @ 12.10.2012 - 17:59)
dmitriy2294
isset - существует ли переменная.
empty - пуста ли существующая переменная.
uset - переменная, давай досвидания.

Что конкретно ты хотел бы услышать про свой скрипт?!

хотел бы услышать нет ли там лишних условий? Можно ли обойтись без elseif? Может как-то можно короче сделать?

Спустя 7 минут, 32 секунды (12.10.2012 - 18:10) dron4ik написал(а):
if ($_POST) { /*проверяем, установленна ли переменная (я понимаю это как "присвоенно ли её значение")*/
if (empty($_POST['user_name'])) {
exit('<span class="error">Вы не ввели имя пользователя.</span>');
}
elseif (preg_match ("#[^a-zа-яё\d_-]#iu", $_POST['user_name'])) { /*выполняем проверку на недопустимые символы */
exit ('<span class="error">Недопустимые символы в имени пользователя.</span>'); /*если есть, останавливаем работу скрипта*/
}
else {
echo $_POST['user_name'];
}
}





По сути если форма ушла то нет смысла проверять на пустоту... Если нет других полей...

ну и уничтожать не созданную переменную тоже бессмысленно)

Спустя 2 часа, 35 минут, 51 секунда (12.10.2012 - 20:46) Invis1ble написал(а):
Цитата
if (preg_match ("#[^a-zа-яё\d_-]#iu", $_POST['user_name'])) { /*выполняем проверку на недопустимые символы */

а если я на немецком свое имя написал (с умляутами, или как они там называются) ? Дискриминация по алфавитному признаку? )
Цитата
unset($user_name);

ансетим то, чего и в помине не было? )
Цитата
elseif (empty($_POST['user_name'])) {

эту проверку лучше объеденить с первой, а empty() нужно убрать. ($test = '0'; var_dump(empty($test)); ) wink.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.