Как исправить работу кнопки / скрипта "сообщить об ошибке"?

  • 7 Ответов
  • 455 Просмотров

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

*

Оффлайн Rand_Althor

Всем привет, прошу помочь с возникшей проблемой. Кое как мне удалось сделать кнопку для сайта, при нажатии на которую отправляется сообщение на почту об ошибке на странице, на которой кнопка была нажата. Но в последнее время на почту стало приходить каждые 3-5 дней около 30 писем с сообщением об ошибке, но с ссылкой на скрипт для кнопки. Подскажите как это исправить, и почему приходят такие сообщения, у меня создалось ощущение, что скрипт срабатывает при проверке роботами поисковиков.
P.S. Я новичёк во всём этом, пока что очень плохо разбираюсь во всех этих БД php и прочем.

Вот код кнопки:
<hr align="left" color="ff6600" size="3" />
<p style="font-size: 8pt; color: #33cccc; text-align: center;"><span style="color: #000000;"><strong><span style="font-size: 8pt;">Если Вы обнаружили ошибку на этой странице, сообщите нам об этом.</span> </strong> </span>
</p>
<p style="font-size: 8pt; color: #33cccc; text-align: center;"><a href="http://nko-fenix.org/report.php"><img onmouseover="this.src='images/sampledata/parks/error1.jpg';" onmouseout="this.src='images/sampledata/parks/error2.jpg';" onmousedown="this.src='images/sampledata/parks/error3.jpg';" onmouseup="this.src='images/sampledata/parks/error4.jpg';" src="images/sampledata/parks/error4.jpg" height="37" width="100" onclick="alert('Сообщение отправлено, Спасибо!')" /></a>
</p>

А вот код скрипта:
<?php
$email 
'nko_fenix@mail.ru';
$subject 'Ошибка на сайте';
$page $_SERVER['HTTP_REFERER'];
$body wordwrap('Error to page: ' $page70);
 
mail($email$subject$body);
 
header('Location:'.$page);
exit; 
?>

Надеюсь не ошибся с местом для создания темы. Заранее спасибо.
Хотите оставаться с людьми в хороших отношениях — не мешайте им врать.

*

Онлайн effrit

  • *****
  • 7438
  • [+]822 / [-]7
  • effrit.com
    • Просмотр профиля
    • effrit.com
здравствуйте.
ну, у вас так интересно организовано, что, действительно, любой робот, пойдя по ссылке, сгенерирует вам репорт )

вообще, есть готовый компонент для этих целей.
но если хотите свое, то имеет смысл попробовать
а) закрыть ссылку от поисковиков через nofollow
б) привязать переход по ссылке на js-событие, тот же onclick. если я правильно понимаю, поисковики не обрабатывают js

вот тема, ознакомьтесь:
http://joomlaforum.ru/index.php/topic,324351.0.html

*

Оффлайн Rand_Althor

Спасибо. Я пытался сначала сделать два события на onclick смену изображения и собственно запуск сценария скрипта. Но что-то не вышло :) не подскажите как это сделать? А nofollow я сделаю
Хотите оставаться с людьми в хороших отношениях — не мешайте им врать.

*

Онлайн effrit

  • *****
  • 7438
  • [+]822 / [-]7
  • effrit.com
    • Просмотр профиля
    • effrit.com
ну почитайте по ссылке, там есть варианты с переделкой почтового модуля на аяксе.
по идее тек правильнее будет, т.к. будет CAPTCHA встроена от роботов, которые игнорируют поисковые запреты

*

Оффлайн Rand_Althor

ну почитайте по ссылке, там есть варианты с переделкой почтового модуля на аяксе.
по идее тек правильнее будет, т.к. будет CAPTCHA встроена от роботов, которые игнорируют поисковые запреты
Спасибо, попробую.
Хотите оставаться с людьми в хороших отношениях — не мешайте им врать.

*

Оффлайн Rand_Althor


б) привязать переход по ссылке на js-событие, тот же onclick. если я правильно понимаю, поисковики не обрабатывают js


В общем попробовал сделать через js. Вот что сделал:
Добавил код в templates/название шаблона/js/main.js в конце
$('.page_errormail24').click(function() {
  var dta212 = window.location.href;
            $.ajax({
                type: "POST",
                url: "errormail24.php",
                dataType: "json",
                data: dta212,
                success: alert('Спасибо! Отчёт отправлен!')
            });
});

Переименовал php в errormail24.php и немного изменил код
<?php
$email 
'моя почта';
$subject 'Ошибка на сайте';
$page $_POST['dta212'];
$body wordwrap('Error to page: ' $page70);
 
mail($email$subject$body);
 
header('Location:'.$page);
exit; 
?>
Изменил $page = $_SERVER['HTTP_REFERER']; на $page = $_POST['dta212'];

Ну и сама кнопка:
</p>
<p><img style="display: block; margin-left: auto; margin-right: auto;" class="page_errormail24" onmouseover="this.src='images/sampledata/parks/error1.jpg';" onmouseout="this.src='images/sampledata/parks/error2.jpg';" onmousedown="this.src='images/sampledata/parks/error3.jpg';" onmouseup="this.src='images/sampledata/parks/error4.jpg';" src="images/sampledata/parks/error4.jpg" height="37" width="100" />
</p>
<p>&nbsp;</p>

Собственно теперь вот что происходит, при нажатии на кнопку на почту приходит от 7 до 30 писем с сообщением "Error to page: " то есть без ссылки на страницу где была нажата кнопка. Не могу понять что я упустил и почему приходит сразу несколько писем.
Хотите оставаться с людьми в хороших отношениях — не мешайте им врать.

*

Оффлайн Rand_Althor

Хотите оставаться с людьми в хороших отношениях — не мешайте им врать.