Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: SQL, XSS, помогите защититься [2]
Покинул форум
Сообщений всего: 65
Дата рег-ции: Июль 2013
Помог: 0 раз(а)
[+]
ну я ведь только разбираюсь, все работает если вписывать только с плюсом и без условий, а я хочу, чтобы программа случайно решала, складывать числа или отнимать, вот... но как записать в imagettftext правильно эту переменную, не знаю. (Добавление)
ааа кажется понял, точечки нехватает, а я ее пихал куда только можно)) (Добавление)
Благодарю!!!!!
что будет с переменной $a, если $aa == 5, учитывая, что до вышеприведённого кода она не инициализируется...
nomak_suntown
Отправлено: 29 Сентября, 2014 - 12:44:28
Гость
Покинул форум
Сообщений всего: 65
Дата рег-ции: Июль 2013
Помог: 0 раз(а)
[+]
$number_1.' + '.$number_2;
вот какой такой (Добавление)
$aa = rand (1,10);
if ($aa > 5) { $a = $number_1.' + '.$number_2;} else
if ($aa < 5) { $a = $number_3.' - '.$number_4;}
if ($aa = 5) { $a = $number_1.' + '.$number_2;}
Такая проблема:
в сессию передается 3+5, именно 3+5 а не результат = 8. Т.е. на другой странице при проверки в форме ввести результат - 8, будет не верно, надо вводить 3+5.. а все из-за того что в imagettftext записана переменная $a а не результат... че делать то)))
Sail
Отправлено: 29 Сентября, 2014 - 13:33:49
Участник
Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014
в сессию передается 3+5, именно 3+5 а не результат = 8. Т.
А что на картинке хотите видеть? Выражение, или число?
Если выражение и так, чтобы пользователь вводил результат, то сохраняйте в сессию результат.
Например, попутно с формированием выражения (строки), которая записывается в $a, вычисляйте, например $b = $number1+$number2 для случая $aa < 5 и в сессию пишите $b, а не $a.
Как-то так
nomak_suntown
Отправлено: 29 Сентября, 2014 - 13:43:57
Гость
Покинул форум
Сообщений всего: 65
Дата рег-ции: Июль 2013
Мне мое больше нравится, но нравится-не всегда значит правильно. Объясните пожалуйста, почему по-Вашему будет лучше?(правильней?) (Добавление)
Всё работает как надо. Работает следующий код:
? По-моему муть какая-то.. мне кажется нужно до конца разобраться с точками и не писать одно и тоже по 10 раз, а можно сделать все намного проще.
И правильно ли я очищаю кеш вконце?
p.s. вначале этого скрипта стартует сессия, нужно ли вначале скрипта очищать сессию унсетом? гдето прочитал, что сначала она очищается, потом создается (в каптчах)
А так все работает, но мне кажется код кривой.
Мелкий
Отправлено: 29 Сентября, 2014 - 14:02:20
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
nomak_suntown пишет:
if ($aa = 5)
Хочу обратить внимание на то, что это условие будет истинно всегда, при абсолютно любом $aa.
Смысла делать две идентичные ветки с > 5 и =5 тем более нету. Оператор сравнения >= вполне себе существует.
Оформление кода - смотрите стандарты кодирования. Но с вашим уровнем туда ещё преждевременно соваться, позже сами дойдёте.
У вас при беглом просмотре теряется else, его не видно. И кажется, будто это 3 равноправных условия, а не взаимосвязанных.
----- PostgreSQL DBA
nomak_suntown
Отправлено: 29 Сентября, 2014 - 14:18:03
Гость
Покинул форум
Сообщений всего: 65
Дата рег-ции: Июль 2013
Помог: 0 раз(а)
[+]
понял. А что касательно записи в сессию? и записи в картинку? так пойдет?
или такую простую каптчу, как случайно определить знак + или - и показать пользователю картинку 1+2 или 1-2 и чтобы он решил эту задачку, полбюбому можно проще написать..?
А в остальном большое спасибо, во многом разобрался и вообще пока все работает.
nomak_suntown
Отправлено: 20 Октября, 2014 - 16:16:03
Гость
Покинул форум
Сообщений всего: 65
Дата рег-ции: Июль 2013
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.