-5

私は Web サイトに取り組んでおり、Web サイトの所有者が (IBM のソフトウェア/ツールを介して) 指定されたページで 3 つの壊れたリンクを見つけました。壊れたリンクを 2 つ削除しましたが、壊れたリンクが 1 つ残っています。Web ページ全体を検索しましたが、見つかりません。

そのリンクを見つけるにはどうすればよいですか?

ページのコードは次のとおりです。

<?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 経由での読み込みに失敗した内部リンクは赤い枠で強調表示され、外部リンクは紫で強調表示されます(この時点で、視覚的に確認できるように、新しいタブで外部リンクを開こうとします)。ページに多くの外部リンクがある場合、明らかにこれは少しおかしくなるかもしれません...

実際にリンク チェック ソフトウェアを入手して (Google で検索して)、それを実行する方がはるかに優れています。基本的に、各ページをステップ実行し、見つかったすべての壊れたリンクのレポートを返します(指定したサイトが承認を必要とするため、ソフトウェアが Cookie をサポートしていることを確認する必要があります)

もう 1 つ知っておくべきことは、ソフトウェアが「リンク切れ」エラーを発生させるのはリンクだけではないということです。ページ リソースの一部が 404 をトリガーする場合があります。つまり、すべての画像、css、および js をチェックして、それらが確実に読み込まれるようにする必要があります。

于 2012-09-15T09:43:20.097 に答える
0

この提案は問題を解決しませんが、WebDev ツールバー ( http://chrispederick.com/work/web-developer/ (firefox アドオン) が少なくともここで役立つことに言及する価値があると思います。

Web ページ内のすべてのリンクを表示し、すべてのアンカーを強調表示して表示できます。これは、開発者が Web サイトを「スキャン」して場違いなリンクを見つけるのに役立ちます。)

インストールしたら、[情報] » を選択し、次のいずれかを選択します。

  • アンカーを表示
  • ページ情報を表示する
  • リンク情報を表示する
于 2013-07-03T09:29:09.813 に答える