<form action="" method="post" name="scan">
<input name="url" type="text" value="http://example.ru" size="50" maxlength="70"><input name="ok" type="submit" value="Сканировать">
</form>
<?php
set_time_limit(0);
if (isset($_POST['ok']))
{
$url = $_POST['url'];
echo 'Идет сканирование '.$url.'...<br>';
}
$files = array("index.php","add.php","config.php");
foreach($url as $files)
{
$headers = get_headers("$url$files");
if (eregi('200', $header[0]))
echo "<a href='$url$files'>$url$admin</a> Найдено<br>";
}
?>
Попробовал работать с ссылками и сайтами. Начал писать сканер сайтов, сканирует или проверяет на наличие фалов в массиве $files. Почему то выдает ошибку:
Warning: Invalid argument supplied for foreach() in Q:\home\localhost\www\xak\scaner.php on line 15
Если в foreach() меняю местами переменными то выдает уже три ошибки в 17 строке:
Warning: get_headers() [function.get-headers]: This function may only be used against URLs. in Q:\home\localhost\www\xak\scaner.php on line 17
Warning: get_headers() [function.get-headers]: This function may only be used against URLs. in Q:\home\localhost\www\xak\scaner.php on line 17
Warning: get_headers() [function.get-headers]: This function may only be used against URLs. in Q:\home\localhost\www\xak\scaner.php on line 17
В PHP я не больше недели и вот стараюсь втянутся, буду очень рад если разьясните как правильно сделать ну или намекнуть =)
Спустя 44 минуты, 38 секунд (21.03.2010 - 21:05) Night User написал(а):
foreach требует массив, а Вы строку предлагаетт...
и $files там писать не надо - другую переменную надо...
вместо
попробуйте
пока что не успел проверить... отпишите
и $files там писать не надо - другую переменную надо...
вместо
foreach($url as $files)
{
$headers = get_headers("$url$files");
if (eregi('200', $header[0]))
echo "<a href='$url$files'>$url$admin</a> Найдено<br>";
}
попробуйте
for($i=0; $i<count($files); $i++) {
$headers = get_headers($url."/".$files[$i]);
if (eregi('200', $header[0]))
echo "<a href='".$url."/".$files."'>".$url."/".$files."</a> Найдено<br>";
}
пока что не успел проверить... отпишите
Спустя 4 минуты, 47 секунд (21.03.2010 - 21:10) koala написал(а):
Night User, попробовал ваш вариант но тоже выдает ошибки в 17 строке - цикл for.
Но мне интересно как все это организовать с foreach() .
Но мне интересно как все это организовать с foreach() .
Спустя 3 минуты, 34 секунды (21.03.2010 - 21:14) Night User написал(а):
Какую ошибку, если не секрет
foreach рассматривает каждый элемент массива как ключ => значение либо просто как значение
могу предложить
foreach рассматривает каждый элемент массива как ключ => значение либо просто как значение
могу предложить
foreach($files as $value) {
$headers = get_headers($url."/".$value);
if (eregi('200', $header[0]))
echo "<a href='".$url."/".$value."'>".$url."/".$value."</a> Найдено<br>";
}
Спустя 6 минут, 3 секунды (21.03.2010 - 21:20) koala написал(а):
Night User, вот нашел подобный скрипт:
Но я не могу понять откуда тут $admin ?
<form action="" method="post">
<input name="hash_lol" class="textbox" type="text" size="30" value="http://www.example.com/"/>
<input name="submit_lol" class="textbox" value="Submit Site" type="submit">
</form>
<?php
set_time_limit(0);
if (isset($_POST["submit_lol"])) {
$url = $_POST['hash_lol'];
echo "<br />Testing ".$url."<br /><br />";
$adminlocales = array("index.php");
foreach ($adminlocales as $admin){
$headers = get_headers("$url$admin");
if (eregi('200', $headers[0])) {
echo "<a href='$url$admin'>$url$admin</a> Found!<br />";
}
else {
echo "$url$admin NOT Found!<br />";
}
}
}
?>
Но я не могу понять откуда тут $admin ?
Спустя 4 минуты, 22 секунды (21.03.2010 - 21:24) Night User написал(а):
foreach($files as $value) {
$headers = get_headers($url."/".$value);
if (preg_match('|200|U', $headers[0]))
echo "<a href='".$url."/".$value."'>".$url."/".$value."</a> Найдено<br>";
}
вот только что протестировал - работает
$admin в том примере, а в моем случае $value - результат перебора всех значений массива по очереди, т.е. результат foreach (англ. "for each" - "для каждого" - т.е. для каждого значений массива сделать........)
пример выше работоспособен. только что протестировал
Спустя 15 минут, 36 секунд (21.03.2010 - 21:40) koala написал(а):
Night User, спасибо. Ошибки вылазили из за того что я не поставил цикл в конструкцию if else. Но это уже другая история. Но теперь я понял foreach(), еще раз спасибо. Жаль что на форуме нету системы репутации... =(
Спустя 51 минута, 45 секунд (21.03.2010 - 22:32) twin написал(а):
eregi deprecated
не надо её юзать. Лучше и быстрее preg_match()
не надо её юзать. Лучше и быстрее preg_match()
Спустя 56 минут, 48 секунд (21.03.2010 - 23:28) koala написал(а):
Загрузил скрипт на сервер и запустил, через пару секнд содержимоем страницы пропадает и страница стает пустой (белой). Что может быть?
Второй вопрос: Как сделать циклом, что бы выводилось по очереди, например:
index.php - Найдено
index.HTML - Не найдено
Второй вопрос: Как сделать циклом, что бы выводилось по очереди, например:
index.php - Найдено
index.HTML - Не найдено
_____________
Vi Veri Veniversum Vivus Vici