Что я могу сделать, чтобы найти неработающую ссылку?
Я работаю над сайтом, и владелец сайта нашел три неработающие ссылки (через программное обеспечение / инструмент 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) может по крайней мере здесь помочь.
Он может отображать все ссылки на веб-странице и выделить и показать все якоря. Это может помочь разработчику "сканировать" сайт на наличие неуместных ссылок.)
После установки выберите ИНФОРМАЦИЯ "и либо
- Якоря дисплея
- Показать информацию о странице
- Показать информацию о ссылке