ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

20.10.2007, 18:03
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
XIII, ты коряво сделал... Нужно так:
$result = mysql_query ("SELECT * FROM admin WHERE email = '".$email."'");
$num_rows = mysql_num_rows($result);
echo "Совпадений $num_rows \n<br>";
if ($num_rows >= 1){
print "Такой логин или email уже зарегистрирован в базе!<br>Регистрация невозможна";
}
else {
$query ="insert into admin (username, passwd, email) values('$login','$pass','$email')";
$result = mysql_query($query);
printf ("Пользователь успешно зарегистрирован", mysql_insert_id());
}
mysql_close($link);
|
|
|

20.10.2007, 19:59
|
|
Познающий
Регистрация: 03.10.2007
Сообщений: 83
Провел на форуме: 213499
Репутация:
9
|
|
Обратите внимание! :)
Помогите пожалуйста!
Вот хочу сделать так, чтобы на моем сайте не флудили, не спамили не нужной фигней 
А именно:
Вот когда пользователь добавляет комментарий, то ту переменную, допустим строка комментария - $text, обыскивали. Я это реализовал через strstr() .
PHP код:
$www=strstr($text, "http://");
if ($www=='http://'){
echo "
Реклама запрещена!";
exit;}
Но проблема заключается в том, что будут же вводить не "http://", а там "http://mysite.ru" и это уже обходит скрипт, как мне это подредактировать под все случаи?Как можно сделать так что, если в строке $text php-сценарий находит фрагмент "http://", то независимо от того что идет дальше или шло раньше делает то-то?
P.S. если есть более рациональный способ анти-спама, то сообщите пожалуйста.
Заранее спасибо!
Последний раз редактировалось Impuls*; 20.10.2007 в 20:01..
Причина: ошибка была)
|
|
|

20.10.2007, 20:03
|
|
Постоянный
Регистрация: 14.01.2007
Сообщений: 459
Провел на форуме: 1469995
Репутация:
589
|
|
PHP код:
if (preg_match('/http:\/\//', $text))
{
//... что-то делаем
}
|
|
|

20.10.2007, 21:08
|
|
Познавший АНТИЧАТ
Регистрация: 09.06.2006
Сообщений: 1,359
Провел на форуме: 5301021
Репутация:
1879
|
|
стр реплэйс
|
|
|

20.10.2007, 22:10
|
|
Участник форума
Регистрация: 05.08.2007
Сообщений: 236
Провел на форуме: 4625160
Репутация:
457
|
|
Сообщение от Impuls*
Помогите пожалуйста!
Вот хочу сделать так, чтобы на моем сайте не флудили, не спамили не нужной фигней 
А именно:
Вот когда пользователь добавляет комментарий, то ту переменную, допустим строка комментария - $text, обыскивали. Я это реализовал через strstr() .
PHP код:
$www=strstr($text, "http://"); if ($www=='http://'){ echo " Реклама запрещена!"; exit;}
Но проблема заключается в том, что будут же вводить не "http://", а там "http://mysite.ru" и это уже обходит скрипт, как мне это подредактировать под все случаи?Как можно сделать так что, если в строке $text php-сценарий находит фрагмент "http://", то независимо от того что идет дальше или шло раньше делает то-то?
P.S. если есть более рациональный способ анти-спама, то сообщите пожалуйста.
Заранее спасибо!
как уже сказал Dr.Check юзай
$www=str_replace("http://","",$text);
например
переменные сам поменяешь, ну и на что заменять тоже
|
|
|

21.10.2007, 11:27
|
|
Познающий
Регистрация: 03.10.2007
Сообщений: 83
Провел на форуме: 213499
Репутация:
9
|
|
Спасибо всем за помощь, но я решил сделать через preg_match()
ИМХО так удобнее на мой взгляд. 
Еще вопрос в связи с этим...
Вот я решил все слова забить в массив, но сценарий почему-то неправильно обрабатывается, пишет ошибку - preg_match() expects parameter 1 to be string
Пробывал я сам решить проблему, но не понял... :-D
PHP код:
$_words=array('http://', '.ru', '.com', '.mobi', '.info', '.org');
if (preg_match($_words, $text)){
// делаем то-то :)
exit;}
Подскажите, что тут не правильно) надо значения из массива как-то по-другому выводить что ли?Заранее спасибо.
|
|
|

21.10.2007, 11:31
|
|
Участник форума
Регистрация: 12.01.2007
Сообщений: 262
Провел на форуме: 4608122
Репутация:
874
|
|
preg_match($_words[n], $text) где n номер елемента массива. Возможно тебе нужен цикл.
Как то так
for ($n=1, $n>count($_words), $n++) if preg_match($_words[n], $text)......
Нужно все это только по одной причине у preg_match первым параметром идет строка, а ты ставишь массив.
Последний раз редактировалось Red_Red1; 21.10.2007 в 11:38..
|
|
|

21.10.2007, 11:36
|
|
Познающий
Регистрация: 03.10.2007
Сообщений: 83
Провел на форуме: 213499
Репутация:
9
|
|
Сообщение от Red_Red1
preg_match($_words[n], $text) где n номер елемента массива. Возможно тебе нужен цикл.
Оо. А без цикла что ли никак??
|
|
|

21.10.2007, 11:55
|
|
Участник форума
Регистрация: 12.01.2007
Сообщений: 262
Провел на форуме: 4608122
Репутация:
874
|
|
Можно и без цикла, почитай про оператор альтернативы в регулярных выражениях.
Должно быть примерно так
$_words='^http://|\.ru$|\.com$|\.mobi$|\.info$|\.org$'
if (preg_match($_words, $text))....
|
|
|

21.10.2007, 12:01
|
|
Познающий
Регистрация: 03.10.2007
Сообщений: 83
Провел на форуме: 213499
Репутация:
9
|
|
Нет, что-то не так... не работает.
А как же массив? 
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|