|
|
|
| Здравствуйте,
Подскажите, что в этом коде не правильно.
<?php
$filenname = "spamlist.php";
$bu = file_get_contents($filenname);
if (preg_match($contacts, $bu)) {
$action = "";
$error = $error."<LI>ошибка</LI>\n";
}
?>
|
В данном случае я пытаюсь сделать следующее. В файле spamlist.php находится список mail адресов, с которых постоянно спамят формы. Я пробую сделать защиту от этого путём записи mail адресов и url. У меня каталог статей, поэтому мне проще всего блокировать спамеров, которые добавляют статьи с определёнными адресами в переменной contact. | |
|
|
|
|
|
|
|
для: relikt
(28.02.2008 в 15:03)
| | А что именно не работает? | |
|
|
|
|
|
|
|
для: Freddie_X
(28.02.2008 в 16:36)
| | 1 какова структура файла spamlist
2 имхо лучше использовать file вместо file_get_contents т.к 1й возвращает массив строк, а 2й строку | |
|
|
|
|
|
|
|
для: MIchail1982
(28.02.2008 в 17:15)
| | структура файла spamlist.php
Каждый новый mail на новой строчке. Не работает следующее: когда, например пользователь пишет один из спамных адресов, должна выводиться ошибка. | |
|
|
|
|
|
|
|
для: Freddie_X
(28.02.2008 в 16:36)
| | В случае совпадения введённого адреса с адресом из спам листа должна выводиться ошибка, но этого нет. | |
|
|
|
|
|
|
|
для: relikt
(28.02.2008 в 18:32)
| | если не слишком много адресов, попробуйте так
<?php
$action = 'some2do';
$contacts = "1@1.ru";
$filenname = "spamlist.php";
$bu = file($filenname);
if (in_array($contacts, $bu)) {
$action = "";
$error = $error."<LI>ошибка</LI>\n";
}
echo "$action<br>$error";
?>
|
| |
|
|
|
|
|
|
|
для: MIchail1982
(28.02.2008 в 18:45)
| | Адресов не много 15, пока.
Но, не работает. Ошибка так и не появилась. | |
|
|
|
|
|
|
|
для: relikt
(28.02.2008 в 18:57)
| | А как можно по другому сравнить строку и масив? | |
|
|
|
|
|
|
|
для: relikt
(28.02.2008 в 23:25)
| | Как заметил mihdan, строки в массиве перед этим делом надо trim'нуть :).
Что у вас в $contacts содержится? Наверняка, нет "ограничителей", необходимых для preg_match().
Может быть, проще воспользоваться какой-нибудь strpos().
А может, построчно читать файл fgets() и сравнивать... | |
|
|
|
|
|
|
|
для: kasmanaft
(29.02.2008 в 07:18)
| | в $contacts приходит только email. Предварительно
$contacts = isset($_POST["contacts"]) ? trim($_POST["contacts"]) : "";
$contacts = substr($contacts, 0, 60);
$contacts = htmlspecialchars(stripslashes($contacts));
|
| |
|
|
|
|
|
|
|
для: relikt
(28.02.2008 в 15:03)
| | trim(); | |
|
|
|
|
|
|
|
для: relikt
(28.02.2008 в 15:03)
| | > Я пробую сделать защиту от этого путём записи mail адресов и url.
Файл у Вас разрастется бог занет до каких размеров, тем более вместе с url, проще сразу все помещать в таблицу в БД... | |
|
|
|