usergeyv
Знаток
- Регистрация
- 5 Июл 2013
- Сообщения
- 152
- Реакции
- 25
- Автор темы
- #1
Я использую ssl но иногда на страницах сайта встречаются внешнее изображения, добавлены пользователями, с протоколом http, как записать в log.txt адреса страниц с Mixed Content? Я смотрел в сторону скрипта с битыми изображениями:
error_picture.php
Как сделать на подобии для Mixed Content. нужна только запись в log.txt?
HTML:
// Кроссбраузерная установка перехватчика ошибок на все картинки
var obj = document.getElementsByTagName('img');
for(var i = 0;i<obj.length;i++) {
if (obj[i].addEventListener) {
obj[i].addEventListener('error', handle_error, false);
}
else {
obj[i].attachEvent('onerror', handle_error);
}
}
// Обработчик битых картинок
function handle_error(e) {
e = e ? e : window.event;
var imgElem = e.target ? e.target : e.srcElement;
imgElem.src='error_picture.php?
src='+imgElem.src+'&page='+document.location.href;
}
PHP:
<?
//--------------------------------------------------------------------
// Серверный обработчик битых ссылок
//--------------------------------------------------------------------
// Прочитать дефолтную картинку с диска
$f=@fopen('error.gif','r');
Header('Content-type: image/gif');
// Передать ее в браузер
echo fread($f,filesize('error.gif'));
fclose($f);
// Получить ссылку на страницу с битой ссылкой и саму битую ссылку
$f=fopen('error.log','a+');
$str = "Date: ".date("d.m.Y H:i:s")."\r\n";
$str .= "Picture: ".$_GET['src']."\r\n";
$str .= "URL: ".$_GET['page']."\r\n";
$str .= "------------------\r\n";
// Записать данные в лог-файл
fwrite($f,$str);
fclose($f);
?>