Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > защитить e-Mails


Автор: Wolf1994 20.4.2005, 09:34
Как правильно шифровать e-Mail адрес, оставленный на сайте, например в гостевой? Посылать через sendmail - как-то черезчур сложно, передать e-Mail через URL php скрипту, который запустит почтовый клиент? Какие ещё технологии существуют и откуда может исходить опасность (какими технологиями пользуются спамеры)?

Автор: Mal Hack 20.4.2005, 10:27
Либо делаешь линк на post.php?id= пишешь ID поста, а по этому ID берешь мыло из базы и отправляешь его.
Либо через JavaScript.

Автор: Wolf1994 20.4.2005, 14:01
достаточно ли просто сделать e-Mail несканируемым, чтобы защитить его от спамера? Если говорить о JavaScript, то вида
Код

email="<a href='mailto:"+"email@mail.ru'>Name</a>";
document.write (email);

smile
Можно более подробно раскрыть как может быть заимствован адрес?

Автор: Axxent 20.4.2005, 14:29
Я бы просто написал
Код

str_replace("@", " AT ", $str);
str_replace(".", " DOT ", $str);

smile
Везде использую и никто не жаловался на нежелательную корреспонденцию, ибо спамерам, видимо, влом переделать это обратно в нормальный адрес..

Автор: Gold Dragon 20.4.2005, 15:18
А может просто кодировку поменять

Автор: Mal Hack 20.4.2005, 15:24
Цитата(Red @ 20.4.2005, 16:18)
А может просто кодировку поменять

Для латиницы разницы никакой smile

Цитата(Wolf1994 @ 20.4.2005, 15:01)
достаточно ли просто сделать e-Mail несканируемым, чтобы защитить его от спамера? Если говорить о JavaScript, то вида

Зависит от твоей изобретательности.

Цитата(Wolf1994 @ 20.4.2005, 15:01)
Можно более подробно раскрыть как может быть заимствован адрес?

Берут, сканят страницы на совпадения ....@.....

Автор: Aliance 20.4.2005, 18:20
Цитата(Mal @ 20.4.2005, 16:24)
Берут, сканят страницы на совпадения ....@.....

По сорцу или по внешнему виду (т.е. что получается)?
Просто я написал так:
Цитата

mail& --- #64;mail.ru
(без ---)

& --- #64; (без ---) заменяется на собыку - и простым юзерам все нормально. Защитит ли это от спама?

Цитата(Wolf1994 @ 20.4.2005, 10:34)
Посылать через sendmail - как-то черезчур сложно,

Почему?

Автор: Wolf1994 21.4.2005, 12:41
Цитата

Цитата
Посылать через sendmail - как-то черезчур сложно,

Почему?

Можно и так. Но для этого придётся отыскивать e-Mail по id'у, что не всегда удобно и приглашать посетителя на отдельнуб страницу с формой отправки. Как мне кажется, гораздо проще всё-таки через JavaScript.

Автор: Wolf1994 21.4.2005, 13:25
Написал на PHP код который представляет email в следующем виде, на JS:
Код

<script language=JavaScript>
email='wolf1994';
email=email+'@';
email=email+'pochta.ru';
document.write ('<a href="mailto:'+email+'?subject=Лексикон">Wolf</a>');
</script>

Как мне кажется, такой код безопасен.

Автор: PARROT 21.4.2005, 15:38
Посьба объяснить:
1) сделала ссылку на отправку письма пользователю
Код

<a href=?page=post&id=$mas[0]>Послать письмо</a>


2) Ссылка выходит на страницу post.php с номером объявления
там пишу запрос:

Код

$send=mysql_query("select mail FROM notice WHERE id_notice=".$id);
for($i=0;$i<mysql_num_rows($send);$i++)
{
        $mas=mysql_fetch_row($send);
        $mas[0]=stripslashes($mas[0]);
        echo "<p>$mas[0]</p>";
        }


Запрос печатает мыло пользователя добавившего объявление.

А теперь сам вопрос:

Как заставить печатать не мыло, а открывать по запросу Оутлук?


Автор: Irokez 21.4.2005, 15:49
Код

header("Location: mailto:email@domain.com");

Автор: PARROT 21.4.2005, 15:57
Да, хорошо, только вот он в поле кому печатает mas[0]

Код

$mas=mysql_fetch_row($send);
        $mas[0]=stripslashes($mas[0]);
        header("Location: mailto:mas[0]");
        exit;

Автор: Irokez 21.4.2005, 16:03
Код

header("Location: mailto:{$mas[0]}");

Автор: PARROT 21.4.2005, 16:10
Спасибо!

Автор: Aliance 21.4.2005, 21:23
Цитата(Wolf1994 @ 21.4.2005, 14:25)
email='wolf1994';
email=email+'@';
email=email+'pochta.ru';

Можно проще -
Код

email = 'wolf1994';
email += '@';
email += 'pochta.ru';

Добавлено @ 21:24
Irokez
Можно полный код, плиз )

Автор: Irokez 21.4.2005, 21:45
Цитата(Aliance @ 21.4.2005, 21:23)
Можно полный код, плиз )

его надо у PARROT спрашивать, я только помогал .. smile
ну примерно было бы так:
два скрипта:
show.php - выводятся email адреса
send.php - делает редирект в почтовый клиент (неправильная формулирока ..)
Код

/** show.php
* берем из базы пользователей данные
* структура теблицы:
* id - номер пользователя
* email - Ж)
* name - имя пользователя
*/
$link = mysql_connect($host, $login, $pass) or die(mysql_error());
mysql_select_db($db, $link) or die(mysql_error());
$query = "select * from `users`";
$result = mysql_query($query, $link) or die(mysql_error());
while ($data = mysql_fetch_assoc($result)) {
    echo
<<<HTML
<a href="send.php?id={$data['id']}">{$data['name']}</a><br>
HTML
}

Код

/** send.php
* получаем номер пользователя и перенаправляем в почтовый клиент (ну не совсем правда)
*/
$id = $_GET['id'];
$link = mysql_connect($host, $login, $pass) or die(mysql_error());
mysql_select_db($db, $link) or die(mysql_error());
$query = "select * from `users` where `id`='$id'";
$result = mysql_query($query, $link) or die(mysql_error());
$data = mysql_fetch_assoc($result))
header('Location: "mailto:'.$data['email'].'"?subject=тема_письма');

скрипты не проверял. простите если что smile
TODO: добавить надо еще проверки на существование пользователя и проверку передаваемого ID

Автор: Aliance 21.4.2005, 22:11
Зачем базу - если только 1 мыо - мое? =))))

Автор: Irokez 21.4.2005, 22:17
Цитата(Aliance @ 21.4.2005, 22:11)
Зачем базу - если только 1 мыо - мое? =))))

smile мог бы и предупредить ... ладно, тогда вышеуказанные скрипты значительно сокращаются:
Код

/** show.php
*/
echo
<<<HTML
<a href="send.php">Послать</a><br>
HTML
}

Код

/** send.php
*/
header('Location: "mailto:email@domain.com?subject=тема_письма');

Автор: Aliance 21.4.2005, 22:54
Это защитит от спама? ДА? Спасибо :-)

Автор: PARROT 22.4.2005, 10:39
Да, все замечательно, все работает и по номеру и свое личное мыло, все спрятано!
Вопрос такой:
А если у пользователя не стоит ни одной почтовой программы, то что будет?
А ведь есть такие!
Что откроется в таком случае?

Тогда придется делать форму отправки письма с сайта?

Какой еще есть выход?

Автор: Aliance 22.4.2005, 11:43
Цитата(PARROT @ 22.4.2005, 11:39)
Тогда придется делать форму отправки письма с сайта?

Это довольно легко. Даже я, плохо знающий PHP написал такую прогу, и не одну %))

Автор: PARROT 22.4.2005, 12:40
Цитата(Aliance @ 22.4.2005, 11:43)
Цитата(PARROT @ 22.4.2005, )
Тогда придется делать форму отправки письма с сайта?

Это довольно легко. Даже я, плохо знающий PHP написал такую прогу, и не одну %))

Дело не в том, что легко! Дело как раз в выборе связи для посетителей сайта.
Он может незнать стоит у него почтовик или нет, кликает на ссылку и ничего не происходит, и думает что у нас ничего не работает. Например крестьянин какой-нибудь...
Это мы знаем.

Есть такие!

Так вот что делать в этом случае?

Есть мысль!

Щелкает посетитель на ссылку Написать письмо
Открывается страница post.php и там уже ему дается выбор или с сайта или сразу, или с участием почтовой программы.

Автор: IZ@TOP 22.4.2005, 13:13
PARROT, тогда проще просто форму отправк сообщения сделать. А email умные люди всегда в контактах найдут.

Автор: Aliance 22.4.2005, 14:25
PARROT
Перечитай мой пост. Я так понял что ты меня не поняла smile
Я предлагал отправить письмо через сервер, и думать ненадо - есть...нету... все смогут.

Автор: IZ@TOP 22.4.2005, 15:27
Aliance, да, вы друг друга не немного недопоняли smile Все выбирают удобное средство для связи, кто-то форму для отправки сообщения напрямую, кто-то мейл, а кто-то будет до упора номер аськи искать. Для всех свое.

Я так считаю: на сайте должно быть две странички для связи:
контактная информация - там email адрес и номер ICQ (по желанию) и т.п..
форма обратно связи - как раз для тех крестьян которые каким-то макаром добрались до инета и до вашего сайта.
Юзабилити.

Автор: PARROT 22.4.2005, 17:02
Ща крестьяне больно продвинутые пошли.

На счет не поняла:
В этом посте, много нашла для себя.
Понять хотела: как защитить мыло, а то спама с сайта стало больше, чем заявок, по 10 писем в минуту с 10 повторами содержимого.

Я сделала и по id отправку писем (в доске объявлений, добавлении ссылок) и просто защитила свое мыло в контактах.

Люди больше звонят, чем пишут.
Но выбор с отправкой писем должен быть обязательно, или через сервер, или почтовой прогой (у кого она есть.)!

Автор: Vaulter 28.1.2007, 06:45
не понял
если шлется 
Header: mailto: mail@mail.ru
то что мешает спамеру прочетать адрес?

Автор: mishaSL 28.1.2007, 16:19
Цитата(Vaulter @  28.1.2007,  06:45 Найти цитируемый пост)
о что мешает спамеру прочетать адрес? 

Ничего, если спамер хочет прочитат все адреса именно с этого сайта. Но как правило, от различных программ по сбору e-mail адресов это спасает.

Автор: Nickname 29.1.2007, 12:18
http://www.tigir.com/hide_email.htm

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)