Помошь новичку в php
120 сообщений
#16 лет назад
SolNikolay, )tigr1945, не пойму или вы действительно гений php © отзыв у вас или... сей ваш код немного абсолютно бредовый
if(isset($_POST) && !empty($_POST) && is_numeric($_POST))) // есть переменнва и не пустая
{
$_POST=is_numeric($_POST);
}
else
{
$error_val="Имя должно содержать тока цифры 0-9";
}
вообще ситуейшн какой-то забавный.. "фрилансеры исправляют работающий код из 2х строчек. попытка номер однатыщастопятнаццать)"
120 сообщений
#16 лет назад
Isset($_POST) && !empty($_POST)$_POST=is_numeric($_POST);
!empty($_POST)
надеюсь не прийдется объяснять почему?
124 сообщения
#16 лет назад
Andreika, ой да и правда тупанул $_POST=htmlspecialchars(stripcslashes(($_POST));
120 сообщений
#16 лет назад
Остальное нормально?а stripcslashes эт что и зачем? а htmlspecialchars?
124 сообщения
120 сообщений
#16 лет назад
tigr1945, не хорошо... перед я запятую б..)
объясни плиз зааачем тут isset или зачем тут !empty... в данном конкретном случае.. ну не пойму никак (
Isset($_POST) && !empty($_POST)
120 сообщений
#16 лет назад
А одновременно isset с empty там зачем? чтобы точно небыло нитисов?
124 сообщения
#16 лет назад
Хорошо напишите правильный код, Дано поле ввода. ограничение: должны быть только цифры.
на выходе или то что ввел пользователь или текст ошибки которую совершил пользователь.
Это конечно при желании
120 сообщений
#16 лет назад
if (!isset($_POST)) {
die('забыли ввести');
} elseif (ctype_digit($_POST)==false) {
die('не цифра');
} else {
echo $_POST;
}
1410 сообщений
#16 лет назад
Andreika, я не показывал рабочий вариант, я показал, что нужно убрать @ и сделать обработку ошибки. Все. Я не декларировал, что эти 2 куска кода взаимозаменимы.
1410 сообщений
#16 лет назад
Кстати я тоже рекомендую использовать ctype_digit вместо is_numeric. Причина в документации:Цитата:
bool is_numeric ( mixed var )
Finds whether the given variable is numeric. Numeric strings consist of optional sign, any number of digits, optional decimal part and optional exponential part. Thus +0123.45e6 is a valid numeric value. Hexadecimal notation (0xFF) is allowed too but only without sign, decimal and exponential part.
120 сообщений
#16 лет назад
ArtLab, зачем нужна ваша декларация человеку неразбирающемуся? он скопирует и будет щаслив .. (как мы уже выяснили отвечая на код tvv вы не ему про @ рассказывали) .. зачем давать заведомо более нерабочий пример?
1410 сообщений
#16 лет назад
Цитата ("Andreika"):Так.. теперь я вообще ничего не понял) ты тока что доказал ArtLab у что его код неправильный был))) тут я с тобой согласен)))
Правильно. Только в моем случае в блок проверки даже не зайдет, а в том, что с @ зайдет и отработает. И потратит процессорное время и ресурсы сервера, если там довольно существенная обработка. Вот сразу один большой минус использования @, когда отрабатывают куски кода, которые в принципе не должны обрабатываться.
120 сообщений
#16 лет назад
Цитата:Правильно. Только в моем случае в блок проверки даже не зайдет
ага, оно пойдет сразу на отправку.. нафик чета проверять, лучше процессорное время сэкономим)) а если еще ereg заменить, то скрипт будет удачно завершаться раньше, чем запустицца, такой быстрый будет)
1410 сообщений
#16 лет назад
Цитата ("Andreika"):ArtLab, зачем нужна ваша декларация человеку неразбирающемуся? он скопирует и будет щаслив .. (как мы уже выяснили отвечая на код tvv вы не ему про @ рассказывали) .. зачем давать заведомо более нерабочий пример?
Я не знаю, что Вы выясняли и с кем. Я еще раз объясняю, я писал свой кусок кода, чтобы показать, что нужно обходиться без заглушек. Если Вы увидели другой смысл в куске кода, то Вам наверное виднее - Вы же не читаете то, что я пишу, Вы самоуверены и знаете, что я имел ввиду.
Цитата ("Andreika"):
ArtLab\зачем давать заведомо более нерабочий пример?
Пример рабочий. Он работает правильно. В нем нужно добавить только обработку на то, что переменная пустая. Поэтому он не есть заведомо более не рабочим примером. Если человек возьмет и просто скопирует и будет рад - грош цена такому программисту. "99% ошибок случается в результате бездумного копирования кусков кода" (с).
120 сообщений
#16 лет назад
что нужно обходиться без заглушек.в русском языке это фраза должна звучать так - что можно обходиться без заглушек.
то, почему без них нужно обходиться вы не сказали, ограничившись словом "отладка"
1410 сообщений
#16 лет назад
Цитата ("Andreika"):Цитата:Правильно. Только в моем случае в блок проверки даже не зайдет
ага, оно пойдет сразу на отправку.. нафик чета проверять, лучше процессорное время сэкономим)) а если еще ereg заменить, то скрипт будет удачно завершаться раньше, чем запустицца, такой быстрый будет)
Ваш стеб не уместен. В моем куске кода нигде не было указано, что что-то куда-то отправляется - это уже Ваша фантазия чистой воды. А экономить ресурсы сервера нужно обязательно. Если Вы не экономите - значит Вы еще очень плохой специалист и не имеете опыта разработки больших систем. Ничего, жизнь Вас научит экономить в ресурсах (надеюсь).