-5

我正在一个网站上工作,该网站的所有者在给定页面中发现了三个断开的链接(通过 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>
4

3 回答 3

0

如果您有 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 加载的内部链接,并用紫色突出显示任何外部链接(此时它将尝试在新选项卡中打开外部链接以供您目视检查)。显然,如果您的页面有很多外部链接,这可能会有点疯狂......

实际获得一些链接检查软件——搜索谷歌——并运行它会好得多……因为它应该以一种被称为“爬取网站”的方式运行。基本上,它会逐步浏览您的每个页面并返回发现的所有损坏链接的报告(您必须确保软件支持 cookie,因为您提供的站点需要授权)

要注意的另一件事是,不仅仅是链接会导致软件触发“链接断开”错误。您可能会发现您的某些页面资源触发了 404... 即您应该检查所有图像、css 和 js 以确保它们加载。

于 2012-09-15T09:43:20.097 回答
0

这个建议并没有解决问题,但我相信值得一提的是 WebDev 工具栏(http://chrispederick.com/work/web-developer/(firefox 插件)至少可以在这里提供帮助

它可以显示网页中的所有链接,并突出显示所有锚点。这可以帮助开发人员“扫描”网站以查找不合适的链接。)

安装后,选择 INFORMATION » 并选择

  • 显示锚点
  • 显示页面信息
  • 显示链接信息
于 2013-07-03T09:29:09.813 回答
0

您可以为此使用 phantomjs 或量角器之类的工具。可以在https://github.com/ashittheone/broken-links-log上找到一种工作工具。此存储库可用于记录任何网站深度达 5 的所有断开链接。尽管在以后的版本中,深度预计将可定制

于 2015-07-09T11:40:05.163 回答