Автор Тема: нуно подправить код форума [php]  (Прочитано 3712 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн DoReMi

  • Админы
  • *****
  • Пол: Мужской
    • БЛОГОДОРЕМИЕ
нуно подправить код форума [php]
« : 22 Октября 2010, 23:37:46 »
сори пипл, прошу помочь, бо в PHP ковырялся последний раз очень давно, задача простейшая - я добавил при регистрации заполнение дополнительного поля, но боты все равно атакуют и удалять заявки на регистрацию мне надоело)

так вот, имеем поле, нужно сравнить его с различными вариантами написания слова Волгодонск, ВОЛГОДОНСК, Volgodonsk и так далее и прервать процедуру регистрации пользователя, если заполнено неверно, как должен выглядеть код? Лучше бы еще пропускать тех, кто хотя бы напишет "donsk" или "донск" как подстроки, не хотелось бы напрягать потенциальных правильных юзеров :)
Спасибо от мну и форума заранее.
Вы держитесь здесь,  вам всего доброго, хорошего настроения, здоровья. ©

Оффлайн itvdonsk

  • Волшебник
  • Пол: Мужской
    • itvdonsk
Re: нуно подправить код форума [php]
« Ответ #1 : 23 Октября 2010, 01:54:41 »
Код: (PHP) [Выделить]
$valid_values=array(
  strtolower("Volgodonsk"),
  strtolower("Волгодонск")
);
if (in_array($peremennaya,$valid_values)) {
  //тут код типа регаем
} else {
  //а тут типа не регаем
}

« Последнее редактирование: 26 Октября 2010, 16:24:05 от DoReMi »
Крутизна программера — не в синтаксисе исходников, а в толщине его кошелька
Telegram Group

Оффлайн point212

  • Модераторы
  • *****
  • Пол: Мужской
  • Мосс смотрит на вас...
Re: нуно подправить код форума [php]
« Ответ #2 : 23 Октября 2010, 09:25:14 »
Код: (PHP) [Выделить]
  $answer=addslashes($user_input);
  if (preg_match("донск|donsk",$answer) {
     # регаем
  } else {
     # не регаем
  }
« Последнее редактирование: 26 Октября 2010, 16:23:51 от DoReMi »

Оффлайн DoReMi

  • Админы
  • *****
  • Пол: Мужской
    • БЛОГОДОРЕМИЕ
Re: нуно подправить код форума [php]
« Ответ #3 : 23 Октября 2010, 17:43:58 »
А баяны типа stristr() не канают?
Вы держитесь здесь,  вам всего доброго, хорошего настроения, здоровья. ©

Оффлайн point212

  • Модераторы
  • *****
  • Пол: Мужской
  • Мосс смотрит на вас...
Re: нуно подправить код форума [php]
« Ответ #4 : 23 Октября 2010, 19:23:25 »
Хз ) Можно хоть экстншн с собственной функцией на Си написать, и вызывать из пхп... :)))
Выбирай любой способ

Оффлайн Master

  • Волшебник
  • Пол: Мужской
Re: нуно подправить код форума [php]
« Ответ #5 : 23 Октября 2010, 20:10:05 »
а шо капча?
Не волнуйся, если что-то работает не так. Если бы всё работало как надо, ты сидел бы без работы.

Оффлайн DoReMi

  • Админы
  • *****
  • Пол: Мужской
    • БЛОГОДОРЕМИЕ
Re: нуно подправить код форума [php]
« Ответ #6 : 23 Октября 2010, 22:59:16 »
а шо капча?

Могу попыхтеть и специально для тебя включить ввод капчи при отправке каждого псто.
Очень быстро отбивает охоту задавать лишние вопросы :)

Капча - не наш метод. Тем более, что ее боты распознают, им это как два байта переслать. А человека напрягать изучением черных полос на красных кружочках - считаю расизм.
Вы держитесь здесь,  вам всего доброго, хорошего настроения, здоровья. ©

Оффлайн magnum

  • Авторитет
  • Пол: Мужской
  • The rare visitor
    • Общественная палата г.Волгодонска
Re: нуно подправить код форума [php]
« Ответ #7 : 25 Октября 2010, 22:12:38 »
Инвайт вводите
Один терапевт - это 1024 гигапевта, или 1048576 мегапевтов!

Оффлайн DoReMi

  • Админы
  • *****
  • Пол: Мужской
    • БЛОГОДОРЕМИЕ
Re: нуно подправить код форума [php]
« Ответ #8 : 26 Октября 2010, 16:21:12 »
как все сцуко сложно в этом пехапе...
куда не вставляю - один фиг не работает.

Код: (PHP) [Выделить]
function CheckFieldInput()
{

global $modSettings, $txt;

$i = 1;

while (isset($modSettings['enable_CP' . $i . '']))

{
if ($modSettings['enable_CP' . $i . ''] && $modSettings['CP' . $i . '_reg']=='force' && empty($_POST['default_options'][$modSettings['CP' . $i . '_id']]))
{
loadLanguage('CustomProfile');
$txt['cp_regerror'] = preg_replace('/FIELDNAME/', $modSettings['CP' . $i . '_name'], $txt['cp_regerror']);
fatal_lang_error('cp_regerror', false);
}
$i++;
}
}
« Последнее редактирование: 26 Октября 2010, 16:22:51 от DoReMi »
Вы держитесь здесь,  вам всего доброго, хорошего настроения, здоровья. ©

Оффлайн DoReMi

  • Админы
  • *****
  • Пол: Мужской
    • БЛОГОДОРЕМИЕ
Re: нуно подправить код форума [php]
« Ответ #9 : 26 Октября 2010, 16:23:35 »
во фигня, энтот колорер дублирует empty(), в оригинале чисто.
Вы держитесь здесь,  вам всего доброго, хорошего настроения, здоровья. ©

Оффлайн point212

  • Модераторы
  • *****
  • Пол: Мужской
  • Мосс смотрит на вас...
Re: нуно подправить код форума [php]
« Ответ #10 : 26 Октября 2010, 17:14:54 »
Нифига не понятно о чем это все )
Типа проверят чтобы не было пустых полей?

Оффлайн DoReMi

  • Админы
  • *****
  • Пол: Мужской
    • БЛОГОДОРЕМИЕ
Re: нуно подправить код форума [php]
« Ответ #11 : 26 Октября 2010, 20:45:15 »
в том то и дело, ща только проверяет на незаполненность и выводит сообщение "Вы не заполнили поле ИМЯПОЛЯ" и не даёт регистрироваться, это переменная $modSettings['CP' . $i . '_reg']=='force'
где находится сам введенный текст - понять не могу, но теоретически, это то, что в скобках empty()

$_POST['default_options'][$modSettings['CP' . $i . '_id']]
Вы держитесь здесь,  вам всего доброго, хорошего настроения, здоровья. ©

Оффлайн S@rg

  • Постоянный читатель
  • Пол: Мужской
Re: нуно подправить код форума [php]
« Ответ #12 : 27 Октября 2010, 18:07:08 »
На rom.by прикольная капча

CAPTCHA
Перед отправкой сообщения ответьте на вопрос.
What is the fifth word in the phrase "etegoki ejisi ejuy utejey ijoc"?: *

Что-то наподобие стояло при регистрации на старом PhpBB форуме на volgodonsk.ru
и работало ;)