Что я могу сделать, чтобы найти неработающую ссылку?

Я работаю над сайтом, и владелец сайта нашел три неработающие ссылки (через программное обеспечение / инструмент IBM) на данной странице. Я удалил две неработающие ссылки, но осталась одна неработающая ссылка. Я искал всю веб-страницу, но не могу ее найти.

Что я могу сделать, чтобы найти эту ссылку?

Вот код страницы:

<?php
session_start();
ob_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Legal Aid Service Monitoring System</title>

<link href="css.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="js/jquery3.js"></script>
<script type="text/javascript" src="js/jquery4.js"></script>
<script type="text/javascript" src="js/jquery5.js"></script>
<script type="text/javascript">
$(document).ready(function(){
    $("#login-form").validate({
        debug: false,
            rules: {

                email: {
                        required: true,
                        email: true
                    }
                },
            messages: {             
                email: "Please enter a valid email.",
                },
        });
});
  </script>
    <style type="text/css">
        label.error { width: 250px; color: red;}
    </style>
</head>
<body>
<?php
if($_POST['login'])
{
require_once("config.php");
if($_POST['user_type']=='admin')
{
    $user=mysql_real_escape_string($_POST['uname']);
    $password=md5($_POST['pwd']);
    $sql=mysql_query("select id from admin where username='$user' and password='$password'");
    $count=mysql_num_rows($sql);
    if($count>0)
    {
        $row=mysql_fetch_array($sql);
        $_SESSION['admin']=$row['id'];
        $date=date('d-m-y');
        $time_now=mktime(date('h')+0,date('i')+00,date('s'));
        $time=date('h:i:s',$time_now);
        $login=mysql_query("insert into user_login (user_id, login_date, login_time) values ('$_SESSION[admin]', '$date', '$time')");
        header('location: administrator');
    }
    else
    {
        ?>
        <script type="text/javascript"> alert('Incorrect Username and Password.');</script>
        <?php
    }
}
else if($_POST['user_type']=='advo')
{
    $user=mysql_real_escape_string($_POST['uname']);
    $password=md5($_POST['pwd']);
    $sql=mysql_query("select id, status from advocates where email='$user' and password='$password'");
    $count=mysql_num_rows($sql);
    $row=mysql_fetch_array($sql);
    if($count>0 and $row['status']=='1')
    {
        $_SESSION['advocate']=$row['id'];
        $date=date('d-m-y');
        $time_now=mktime(date('h')+0,date('i')+00,date('s'));
        $time=date('h:i:s',$time_now);
        $login=mysql_query("insert into advo_login (advo_id, login_date, login_time) values ('$_SESSION[advocate]', '$date', '$time')");
        header('location: advocate');
    }
    else
    {
        if($row['status']=='0')
        {
            ?>
            <script type="text/javascript">alert('Your account has been blocked by admin.');</script>
            <?php
        }
        else
        {
            ?>
            <script type="text/javascript">alert('Incorrect Username and Password.');</script>
            <?php
        }
    }
}
}
?>
<div class="main" id="main">
  <div id="headerbg">
    <div id="header"></div>
    </div>
    <div id="center">
        <div class="style1" id="centerright">
            <div id="centerup">
            <table width="514" border="0" align="center">
                <tr>
                    <td><h3>Welcome to Legal Aid Service Monitoring System</h3></td>
                </tr>
            </table>
            </div>
            <div id="centerdown">
                <div id="loginbg">
                <form id="login-form" name="login-form" method="post" action="">
                <table width="500" border="0" >
                <tr><td></td>
                <td height="30">
                <input type="radio" name="user_type" value="advo" checked="checked" />Advocate
                <input type="radio" name="user_type" value="admin" />Administrator
                </td>
                </tr>
                <tr>
                <td width="50"><span class="style5">Username:</span></td>
                <td width="236"><label>
                <input type="text" name="uname" class="required input" size="30" />
                </label></td>
                </tr>
                <tr>
                <td><span class="style5">Password:</span></td>
                <td><label>
                <input type="password" name="pwd" id="pwd" class="required input" size="30"/>
                </label></td>
                </tr>
                <tr>
                <td></td>
                <td><label>
                <input type="submit" class="style1loginbg" name="login" id="button" value="Login" />
                </label></td>
              </tr>
            </table>
          </form>
          </div>
        </div>       
      </div>
    </div>
  </div>
</body>
</html>

3 ответа

Решение

Если у вас есть Firebug или что-то подобное с консольного доступа, вы можете запускать этот фрагмент кода постранично:

jQuery(function(){
  var getHost = function(url){
    url = String(url);
    if ( (url.substr(0,5) == 'http:') || (url.substr(0,6) == 'https:') ) {
      return url.split('/').slice(0,3).join('/');
    }
    else {
      return null;
    }
  }
  var host = getHost(window.location);
  jQuery('a').each(function(){
    var link = $(this), href = link.attr('href'), hst = getHost(href);
    if ( hst === host || hst === null ){
      jQuery.ajax({
        url: href,
        error: function(){
         link.css('border', '5px solid red');
        }
      });
    }
    else {
      link.css('border', '5px solid purple');
      window.open( link,'_blank');
    }
  });
});

Он должен выделять красной рамкой все внутренние ссылки, которые не могут быть загружены через ajax, и выделять любые внешние ссылки фиолетовым цветом (в этот момент он попытается открыть внешнюю ссылку в новой вкладке, чтобы вы могли визуально проверить). Очевидно, что это может немного сойти с ума, если ваша страница имеет много внешних ссылок...

Было бы гораздо лучше получить какое-то программное обеспечение для проверки ссылок - выполнить поиск в Google - и запустить его... так как это должно действовать так, как это называется "Spidering a site". По сути, он будет проходить по каждой из ваших страниц и возвращать отчет обо всех найденных неработающих ссылках (вам нужно убедиться, что программное обеспечение поддерживает файлы cookie, поскольку сайт, который вы указали, требует авторизации).

Еще одна вещь, о которой нужно знать, это то, что не только ссылки могут привести к тому, что программное обеспечение выдает ошибку "неработающей ссылки". Вы можете обнаружить, что некоторые ресурсы вашей страницы вызывают 404... то есть вы должны проверить все ваши изображения, css и js, чтобы убедиться, что они загружаются.

Вы можете использовать такой инструмент, как фантомы или транспортир для этого. Один рабочий инструмент можно найти по https://github.com/ashittheone/broken-links-log. этот репозиторий может быть использован для регистрации всех неработающих ссылок на глубину до 5 на любом сайте. Хотя в более поздней версии ожидается, что глубина будет настраиваемой

Это предложение не решает вопрос, но я считаю, что стоит упомянуть, что панель инструментов WebDev ( http://chrispederick.com/work/web-developer/ (дополнение Firefox) может по крайней мере здесь помочь.

Он может отображать все ссылки на веб-странице и выделить и показать все якоря. Это может помочь разработчику "сканировать" сайт на наличие неуместных ссылок.)

После установки выберите ИНФОРМАЦИЯ "и либо

  • Якоря дисплея
  • Показать информацию о странице
  • Показать информацию о ссылке
Другие вопросы по тегам