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

Тема в разделе "Как сделать...", создана пользователем kikorik, 21 июн 2012.

  1. kikorik

    kikorik Постоялец

    Регистр.:
    13 май 2012
    Сообщения:
    133
    Симпатии:
    10
    Всем добрый день. Подскажите как сделать кнопку сообщить о не рабочей ссылке, чтоб на почту уходило уведомление о адресе страницы с которой было отправлено сообщение.
     
  2. Mons

    Mons

    Регистр.:
    2 апр 2006
    Сообщения:
    1.590
    Симпатии:
    917
    В шапке между <head> и </head>

    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js"></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 нравится это.
  3. kikorik

    kikorik Постоялец

    Регистр.:
    13 май 2012
    Сообщения:
    133
    Симпатии:
    10
    Спасибо большое, сейчас буду пробывать. Этот вариант подходит для любого сайта?
     
  4. Mons

    Mons

    Регистр.:
    2 апр 2006
    Сообщения:
    1.590
    Симпатии:
    917
    Для любого с поддержкой PHP и не работающий на mootols
     
  5. kikorik

    kikorik Постоялец

    Регистр.:
    13 май 2012
    Сообщения:
    133
    Симпатии:
    10
    тут ссылка бла бла бла - <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" ?
     
  6. Mons

    Mons

    Регистр.:
    2 апр 2006
    Сообщения:
    1.590
    Симпатии:
    917
    Почему нет, только не номер ссылки будет выходить а название
    Впрочем этого если даже и не будет, письмо с адресом страницы будет уходить
     
  7. kikorik

    kikorik Постоялец

    Регистр.:
    13 май 2012
    Сообщения:
    133
    Симпатии:
    10
    Что-то не получается. Добавила между 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>, но при нажатии на ссылку перекидывает на пустую страницу.

    Что делаю не так? (
     
  8. kikorik

    kikorik Постоялец

    Регистр.:
    13 май 2012
    Сообщения:
    133
    Симпатии:
    10
    Поставила кнопку отправки так <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) ?> - это выводит адрес страницы, на которой находишься в данный момент. Теперь при нажатии на ссылку сообщить, просто происходит обновление страницы
     
  9. Mons

    Mons

    Регистр.:
    2 апр 2006
    Сообщения:
    1.590
    Симпатии:
    917
    Вот так надо

    Код:
    <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="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js"></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>

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

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

    И куда пропадают закрывающие точка запятая и зачем пробелы лишние. Это ошибка.
     
  10. kikorik

    kikorik Постоялец

    Регистр.:
    13 май 2012
    Сообщения:
    133
    Симпатии:
    10
    все равно не получается. Все поправила, теперь при нажатии на ссылку вообще ничего не происходит :(