Как сделать кнопку о неработающей ссылке?

kikorik

Постоялец
Регистрация
13 Май 2012
Сообщения
156
Реакции
20
Всем добрый день. Подскажите как сделать кнопку сообщить о не рабочей ссылке, чтоб на почту уходило уведомление о адресе страницы с которой было отправлено сообщение.
 
В шапке между <head> и </head>

<script type="text/javascript" src="Для просмотра ссылки Войди или Зарегистрируйся"></script>
Код:
<script type="text/javascript">
$(document).ready(function () {
    $('.fix').click(function () {
        var clkname = this.id;
        $.ajax({
            type: "POST",
            url: "./alert.php",
            data: " fix=" + clkname,
            success: function (html) {
                $("#fix_answ").html(html);
                $("#fix_answ").fadeIn(1000);
            }
        });
        return false;
    });
});</script>
в файле alert.php

PHP:
<?php
    if (isset($_REQUEST['fix'])) {
    $fix_id=$_REQUEST[ 'fix' ];
    $date = date("y.m.d H:i");
    $ip = $_SERVER['REMOTE_ADDR'];
    $mailtext.="<br />Привет!<br />Кто-то, пожаловался на ссылку: №". $fix_id ."<br /><br />".$ip." | ".$date."";
    $headers="Content-Type: text/html; charset=utf-8\n";
    $headers.="From: твоя почта \nX-Mailer: SuperMailer"; mail("твоя почта","Жалоба на сломанную ссылку",$mailtext,$headers);
    echo "спасибо за внимательность";
}
?>

там где сами ссылки:
Код:
тут ссылка бла бла бла - <a href="." class="fix" id="сюда выводишь номер ссылки">не работает</a> <div id=" fix_answ"></div>

По нажатию на "не работает" идет запрос к alert.php которому передается ID ссылки и в ответе приходит сообщение с благодарностью. При этом отправляется письмо на указанный ящик. А чтобы приходил только адрес откуда отправлено все еще проще...

в alert.php
PHP:
<?php
    if (isset($_REQUEST['fix'])) {
    $fix_id=$_REQUEST[ 'fix' ];
    $date = date("y.m.d H:i");
    $url = $_SERVER['HTTP_REFERER'];
    $ip = real_ip($_SERVER['REMOTE_ADDR']);
    $mailtext.="<br />Привет!<br />Кто-то, пожаловался на ссылку: №". $fix_id ." со страницы  ".$url." <br /><br />".$ip." | ".$date."";
    $headers="Content-Type: text/html; charset=utf-8\n";
    $headers.="From: твоя почта \nX-Mailer: SuperMailer"; mail("твоя почта","Жалоба на сломанную ссылку",$mailtext,$headers);
    echo "спасибо за внимательность";
}
?>
 
  • Нравится
Реакции: UDAV
Спасибо большое, сейчас буду пробывать. Этот вариант подходит для любого сайта?
 
тут ссылка бла бла бла - <a href="." class="fix" id="сюда выводишь номер ссылки">не работает</a> <div id=" fix_answ"></div>
У меня на сайте за вывод заголовка отвечает такой код
<h2 class="title"><a href="<?= url_to_post($result->post_name) ?>" rel="bookmark"><?= htmlspecialchars($result->post_title) ?></a></h2>
Будет ли правильным поставить в id="$post_title" ?
 
тут ссылка бла бла бла - <a href="." class="fix" id="сюда выводишь номер ссылки">не работает</a> <div id=" fix_answ"></div>
У меня на сайте за вывод заголовка отвечает такой код
<h2 class="title"><a href="<?= url_to_post($result->post_name) ?>" rel="bookmark"><?= htmlspecialchars($result->post_title) ?></a></h2>
Будет ли правильным поставить в id="$post_title" ?
Почему нет, только не номер ссылки будет выходить а название
Впрочем этого если даже и не будет, письмо с адресом страницы будет уходить
 
Что-то не получается. Добавила между head и /head код, это <script type="text/javascript">
$(document).ready(function () {
$('.fix).click(function () {
var clkname = this.id;
$.ajax({
type: "POST",
url: "./alert.php",
data: " fix=" + clkname,
success: function (html) {
$("#fix_answ").html(html);
$("#fix_answ").fadeIn(1000);
}
});
return false;
});
});</script> вставила в index.php шаблона. Прописала в alert.php свою почту


Поставила в шаблон вывода полной новости <a href="." class="fix" id="$post_title">Сообщить о не рабочем плеере</a> <div id=" fix_answ"></div>, но при нажатии на ссылку перекидывает на пустую страницу.

Что делаю не так? (
 
Поставила кнопку отправки так <a href="<?= url_to_post($result->post_name) ?>" class="fix" id="$post_title">Сообщить о не рабочем плеере</a> <div id=" fix_answ"></div>
<?= url_to_post($result->post_name) ?> - это выводит адрес страницы, на которой находишься в данный момент. Теперь при нажатии на ссылку сообщить, просто происходит обновление страницы
 
Вот так надо

Код:
<script type="text/javascript">
$(document).ready(function () {
    $('.fix').click(function () {
        var clkname = this.id;
        $.ajax({
            type: "POST",
            url: "./alert.php",
            data: " fix=" + clkname,
            success: function (html) {
                $("#fix_answ").html(html);
                $("#fix_answ").fadeIn(1000);
            }
        });
        return false;
    });
});</script>

кавычка одна потерялась у тебя в $('.fix').click(function () {

И куда пропало <script type="text/javascript" src="Для просмотра ссылки Войди или Зарегистрируйся"></script> ? Его тоже нужно

а вот это зачем?
<a href="<?= url_to_post($result->post_name) ?>" class="fix" id="$post_title">Сообщить о не рабочем плеере</a> <div id=" fix_answ"></div>

когда было бы правильнее
<a href="." class="fix" id="<?=$post_title;?> ">Сообщить о не рабочем плеере</a><div id=" fix_answ"></div>

<?= url_to_post($result->post_name) ?> - это выводит адрес страницы, на которой находишься в данный момент. Теперь при нажатии на ссылку сообщить, просто происходит обновление страницы

Так и должно быть, ведь ты ссылку сделала не как у меня указано, а ссылкой на текущую страницу. При нажатии соответственно происходит переход на текущую страницу. Все логично. Определение адреса страницы надо делать в id к примеру так

<a href="." class="fix" id="<?=url_to_post($result->post_name);?> ">Сообщить о не рабочем плеере</a><div id=" fix_answ"></div>

И куда пропадают закрывающие точка запятая и зачем пробелы лишние. Это ошибка.
 
все равно не получается. Все поправила, теперь при нажатии на ссылку вообще ничего не происходит :(
 
Назад
Сверху