АРМАДА
Софт для проверки сайтов онлайн.
Новая тема Написать ответ Advanced Hosters - профессиональный хостинг

IseeDeadPeople
Объединенная Электрическая
Зарегистрирован: 06.12.2005
Сообщений: 21727
Обратиться по нику
# Добавлено:Сб Мар 09, 2013 1:45 pmДобавить в избранноеОтветить с цитатой
Софт для мониторинга сайтов онлайн, проверки их работоспособности, проверка на наличие нужного текста, вхождения на странице.


Имя файла "checklinks2.php".


Код:


<?

$access = "testpass"; // password generator: http://www.armadaboard.com/viewtopic.php?t=46747&start=0

error_reporting(0);
set_time_limit(5*60);

srand ((double) microtime() * 1000000);
mt_srand ((double) microtime() * 1000000);

function NoDoubleSpaces ($t) { $t = ereg_replace("([ \r\t\n])+", "\\1", $t); return $t; }

function simplegetpage ($url) {
$ch = curl_init($url);
if (!$ch) { return "ERROR: ".curl_error($ch); }
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_USERAGENT, "Pony link checker, v-2");
$r = curl_exec($ch);
curl_close($ch);
return "$r";
}





if (isset($HTTP_POST_VARS["links"]) && strlen($HTTP_POST_VARS["links"]) > 7) { $links = $HTTP_POST_VARS["links"]; }
if (empty($links) && isset($_POST["links"]) && strlen($_POST["links"]) > 7) { $links = $_POST["links"]; }

if (isset($HTTP_POST_VARS["access_form"]) && strlen($HTTP_POST_VARS["access_form"]) > 7) { $access_form = $HTTP_POST_VARS["access_form"]; }
if (empty($access_form) && isset($_POST["access_form"]) && strlen($_POST["access_form"]) > 7) { $access_form = $_POST["access_form"]; }


?>


<h1>CHECK LINKS (!<40) :</h1> <br>
<form method="post">
access: <input type="text" name="access_form" value="<? echo $access_form; ?>">
<br><br>
<b>links to check</b> <br>
<textarea cols="100" rows="10" name="links"><? echo $links; ?></textarea>

<br> <br> example: <br>
http://domain1.com,checkstring1 <br>
http://domain2.com,checkstring2 <br>
http://domain3.com,checkstring3 <br>

<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name="submit" value="submit" type="submit">
<br>
</form>

<?
if ($access != $access_form) { echo "password incorrect"; exit(); }
if (empty($links)) { echo "links not set"; exit(); }

$links_a = explode("\n", $links);
foreach ($links_a as $tmp) {
$tmp = NoDoubleSpaces($tmp);
list ($link, $checkstring) = explode(",", $tmp);
$link = trim($link); $checkstring = trim($checkstring);

if (strlen($link) > 7 && ereg("^http://", $link)) {
$link_content = simplegetpage($link);
$sizekb = strlen($link_content) / 1024;
list ($sizekb) = explode(".", $sizekb);

if (eregi($checkstring, $link_content)) { $status = "<font color='#00FF00'>OK</font>"; } else { $status = "<font color='#FF0000'>not OK</font>"; }
echo "$link ($checkstring), $status, KB-size: $sizekb <br>\n";

}
}


?> <br><br><br><br><br>







Инструкция использования.

Данный файл разместить на вашем хостинге.


[offtop]Для исключения ошибок при размещение-копирование содержимого тегов "Код", текст с них забирать с цитирования поста. Напротив поста, нажать "Ответить с цитатой". [/offtop]


Он достаточно безопасен, без пароля его использовать не получиться.

[offtop]
Генератор паролей: http://www.armadaboard.com/viewtopic.php?t=46747&start=0
[/offtop]

Пароль установить в самом файле, переменная
Код:
$access = "пароль";

, далее этот пароль нужно будет указывать в поле "access:"

Использовать его, заходя на этот линк браузером.

Вносить в поле (links to check) список ссылок. Одна строка, одна ссылка. Напротив каждой ссылке, через запятую, ставить "ключевое слово", наличие которого будет проверено на наличие на странице.

Не рекомендую использовать за раз более чем 15-30 ссылок. Особенно если используете шаред (shared hosting). На ВПС/ВДС тарифах, можете попробовать использовать и большее количество линков, увеличив значение
Код:
set_time_limit(5*60);

, 5*60 (лимит работы 5 минут). И вроде как, не на всех станциях (операционные системы и версии php) учитываются эти лимиты.

Если после правильного заполнения всех полей, выдает ошибку "links not set". Сообщите в этом посте.

Проверено на станции: Linux / Apache/2.0.64 (Unix) / PHP/5.2.9
LESBIANS69

IseeDeadPeople
Объединенная Электрическая
Зарегистрирован: 06.12.2005
Сообщений: 21727
Обратиться по нику
# Добавлено:Сб Мар 09, 2013 8:38 pmОтветить с цитатой
Исправления.

Чтобы браузер запоминал введенный пароль, можете исправить строчку

Код:
access: <input type="text" name="access_form" value="<? echo $access_form; ?>">



(примерно 48 строка)

на

Код:
access: <input type="password" name="access_form" value="<? echo $access_form; ?>">




Также, для предотвращения индексации этой странице, и не желательного внимания к этому инструменты со стороны иных, можете добавить в самый верх:

Код:

<html>
<head>
<meta name="robots" content="noindex, nofollow">
</head>
<body>


LESBIANS69

Tomas-R + +
V.I.P.
Зарегистрирован: 07.01.2008
Сообщений: 5567
Обратиться по нику
# Добавлено:Вс Мар 10, 2013 4:44 pmОтветить с цитатой
т.е. тут в скрипте нужно постоянно вводить линки
или раз ввсед и жди проблем?
рекламная подпись (в PM)

IseeDeadPeople
Объединенная Электрическая
Зарегистрирован: 06.12.2005
Сообщений: 21727
Обратиться по нику
# Добавлено:Вс Мар 10, 2013 10:00 pmОтветить с цитатой
Мне не совсем понятен смысл второй строки "или раз ввсед и жди проблем?", чтобы полностью понять выдвинутое требование или вопрос.

Вводить нужно единожды, зайдя на линк. Эти линки, можно сохранить в блокноте где то локально, и вставлять каждый раз, как делаете проверка ресурсов.

Конечно, я могу сделать сохранение последних проверенных линков в файл там же, удаленно. И в следующий раз при заходе на линк, будут в поле ссылки стоять прежние. Но эти строки будут видны и иному, возможно, случайно, зашедшему, или тому человек, которому вы разрешите использовать свой хост и данный скрипт, что по сути будет только мешать. Поэтому такую функцию лучше выполните простым сохранением тех линков, которые собираетесь постоянно проверять, в локальном файле на том же рабочем столе или в нужной папке.

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

IseeDeadPeople
Объединенная Электрическая
Зарегистрирован: 06.12.2005
Сообщений: 21727
Обратиться по нику
# Добавлено:Пн Мар 11, 2013 12:40 pmОтветить с цитатой
Tomas-R, по твоему запросу.

Добавлена функция сохранения предыдущих введенных строк в локальный файл удаленно на хостинге.

[offtop]Вопросы не исправности, просьба публиковать в этом топике.[/offtop]


Имя файла "checklinks3.php"

Код:
<html>
<head>
<meta name="robots" content="noindex, nofollow">
</head>
<body>

<?

$access = "testpass"; // password generator: http://www.armadaboard.com/viewtopic.php?t=46747&start=0
$filesave = "checklinks3.txt"; // Rename this file to a different value. Make the file in the same directory in which the file itself. Set the permissions on it as 666.

error_reporting(0);
set_time_limit(5*60);

srand ((double) microtime() * 1000000);
mt_srand ((double) microtime() * 1000000);

function NoDoubleSpaces ($t) { $t = ereg_replace("([ \r\t\n])+", "\\1", $t); return $t; }

function simplegetpage ($url) {
$ch = curl_init($url);
if (!$ch) { return "ERROR: ".curl_error($ch); }
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_USERAGENT, "Pony link checker, v-2");
$r = curl_exec($ch);
curl_close($ch);
return "$r";
}

function lock ($fp, $lock_level=LOCK_EX) {@flock($fp, $lock_level);return 0;}
function unlock ($fp, $lock_level=LOCK_UN) {@flock($fp, $lock_level);return 0;}
function phpfput ($file, $text) {if (strlen($file) > 0) {$fp = fopen( $file, "w"); lock($fp); fputs($fp, $text); unlock($fp); fclose($fp);}return 0;}     
function phpfget ($file) {$return = "";if (strlen($file) > 0 && file_exists($file)) {$fp = fopen( $file, "r"); lock($fp); while (!feof ($fp)) {$buffer = fgets($fp, 1024);$return .= $buffer;} unlock($fp); fclose($fp);}return $return;}
function phpfadd ($file, $text) {return phpfput($file, phpfget($file) . $text);}
function phpfsize ($file) {if (!file_exists($file)) return 0;return filesize($file);}






if (isset($HTTP_POST_VARS["links"]) && strlen($HTTP_POST_VARS["links"]) > 7) { $links = $HTTP_POST_VARS["links"]; }
if (empty($links) && isset($_POST["links"]) && strlen($_POST["links"]) > 7) { $links = $_POST["links"]; }

if (isset($HTTP_POST_VARS["access_form"]) && strlen($HTTP_POST_VARS["access_form"]) > 7) { $access_form = $HTTP_POST_VARS["access_form"]; }
if (empty($access_form) && isset($_POST["access_form"]) && strlen($_POST["access_form"]) > 7) { $access_form = $_POST["access_form"]; }

if (empty($links) && file_exists($filesave) && phpfsize($filesave)>7) { $links = phpfget($filesave); }

if (isset($HTTP_POST_VARS["make"])) { $make = $HTTP_POST_VARS["make"]; }
if (empty($make) && isset($_POST["make"])) { $make = $_POST["make"]; }


?>


<h1>CHECK LINKS (!<40) :</h1> <br>
<form method="post">
access: <input type="password" name="access_form" value="<? echo $access_form; ?>">

<? if ($access != $access_form) { echo "password incorrect"; echo '<br><br>&nbsp;&nbsp;&nbsp;<input name="submit" value="submit" type="submit"><br></form>'; exit(); } ?>

<br><br>
<b>links to check</b> <br>
<textarea cols="100" rows="10" name="links"><? echo $links; ?></textarea>

<br> <br> example: <br>
http://domain1.com,checkstring1 <br>
http://domain2.com,checkstring2 <br>
http://domain3.com,checkstring3 <br>

<input type="hidden" name="make" value="1">

<br><br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input name="submit" value="submit" type="submit">
<br>
</form>

<?

if (empty($links)) { echo "links not set"; exit(); }

if (empty($make)) { exit(); }

if (isset($links) && file_exists($filesave)) { phpfput($filesave, $links); }

$links_a = explode("\n", $links);
foreach ($links_a as $tmp) {
$tmp = NoDoubleSpaces($tmp);
list ($link, $checkstring) = explode(",", $tmp);
$link = trim($link); $checkstring = trim($checkstring);

if (strlen($link) > 7 && ereg("^http://", $link)) {
$link_content = simplegetpage($link);
$sizekb = strlen($link_content) / 1024;
list ($sizekb) = explode(".", $sizekb);

if (eregi($checkstring, $link_content)) { $status = "<font color='#00FF00'>OK</font>"; } else { $status = "<font color='#FF0000'>not OK</font>"; }
echo "$link ($checkstring), $status, KB-size: $sizekb <br>\n";

}
}

// prostitute himself ( http://tinyurl.com/prostitute-himself ) / prostituierte selbst / se prostituer

?> <br><br><br><br><br>




[offtop]Для исключения ошибок при размещение-копирование содержимого тегов "Код", текст с них забирать с цитирования поста. Напротив поста, нажать "Ответить с цитатой".[/offtop]

Первичные настройки:

$access = "testpass"; // password generator: http://www.armadaboard.com/viewtopic.php?t=46747&start=0
$filesave = "checklinks3.txt"; // Переименуйте этот файл в иное значение. Составьте данный файл в той же директории, в которой и сам файл "checklinks3.php". Установите права доступа на него как 666.

В этой версии, чтобы скрыть ваши линки от иных посетителей, пароль нужно вводить предварительно для доступа к самой форме. При таком варианте, не стоит давать линк, иным лицам, в порядочности которых не уверены.


Цитата:
Иные технические инструменты:
http://www.armadaboard.com/viewtopic.php?t=46768&start=0 Софт для сбора линк-спам баз на perl
http://www.armadaboard.com/viewtopic.php?t=46749 Парсер выдачи Гугла
http://www.armadaboard.com/viewtopic.php?t=46747&start=0 Удобный инструмент для генерации паролей



Поддержка сотрудников Джоли, осуществляется по контактам, указанным в сообщение: http://www.armadaboard.com/viewtopic.php?p=4863938#4863938
LESBIANS69
Новая тема Написать ответ    ГЛАВНАЯ ~ ТЕХНИЧЕСКИЕ ВОПРОСЫ

Перейти:  





Генеральный спонсор



Партнеры