Собственный поисковик: Веб интерфейс (продолжение)

Собственный поисковик: Веб интерфейс (продолжение) – вторая часть урока о том как написать собственный поисковик на PHP, который будет искать в базе данных MySQL.

Веб-интерфейс поисковика

Далее код “когда кнопка не нажата”

проверяется есть ли переменная addurl, т.е. проверяем ссылку “Добавить URL”
if (isset($_GET['addurl'])) { ... }

внутри фигурных скобок вставляем вот этот код
print "

Добавить URL




Например: http://webypoku.ru/index.php
";
if (isset($_POST['add'])) {if (isset($_POST['url'])){$url=$_POST['url'];}
if ($url!=''){
$url=trim($url);
$url=stripslashes($url);
$url=htmlspecialchars($url);
$url=strtolower($url);
if (!preg_match("(wwwmaster\.zx6\.ru|webypoku\.ru)", $url)){echo "Веб-страница не принадлежит WEBypoku.ru";} else {
if (substr($url,0,7)!='http://'){$url='http://'.$url;}
$fineurl=mysql_query("SELECT url FROM urls WHERE url='$url'",$db);
if (mysql_num_rows($fineurl)==0){
$addurl=mysql_query("INSERT INTO urls (url) VALUES ('$url')",$db);
if (!$addurl){echo "URL-адрес не добавлен. Пожалуйста попробуйте позже.";}
else {echo "URL-адрес добавлен.";} }
else {echo "URL уже зарегистрирован в системе.";} } }
else {echo "Пустое поле для URL.";} }

этот код выведет на основную страницу форму для добавления урла в поисковик. Далее он заносит введенный пользователем URL в базу данных MySQL.

Файл конфигурации config.php

Этот файл содержит всего лишь две строки, но очень важные.

$db = mysql_connect("localhost","root","");
mysql_select_db("poisk", $db); ?>

mysql_connect(); – подключение к базе данных MySQL.
lohalhost – хост сервера, root – пользователь, третий атрибут – пароль.
Здесь указываются данные которые вы ввели при создании базы.
mysql_select_db(); – выбор базы.
poisk – имя базы с таблицами base, urls.

Файл экспорта не проиндексированных поисковиком URL-ов export.php
Экспорт
include ("lock.php");
include ("config.php");
$result = mysql_query("SELECT url FROM urls WHERE indexed='0'",$db);
$file = fopen ("urls.txt","w");
if (mysql_num_rows($result)>0){ $i=0;
$myrow = mysql_fetch_array($result);
do
{ $str = $myrow['url'];
fputs ($file, $str."\n");
mysql_query("UPDATE urls SET indexed='1' WHERE url='$str'");
$i++;}
while ($myrow = mysql_fetch_array($result));
echo "Экспортировано '$i' URL адресов.";
} else {echo "Новых URL адресов нет.";}
fclose ($file); ?>

Скрипт обращается к базе, ищет строки где indexed=0 , т.е. не проиндексирован.
Создает текстовый файл urls.txt, где хранятся URL не проиндексированных страниц, для импорта в поисковый робот, но об этом позже.

Файл авторизации lock.php

Файл авторизации lock.php нужен для того чтобы ограничивать доступ к файлу export.php. Это нужно для того чтобы только администратор мог экспортировать не индексированные адреса.
Код файла lock.php:

$user = 'admin';
$pass = 'pass';
if (!isset($_SERVER['PHP_AUTH_USER']))
{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");
exit();
}
else {
if (!get_magic_quotes_gpc()) {
$_SERVER['PHP_AUTH_USER'] = mysql_escape_string($_SERVER['PHP_AUTH_USER']);
$_SERVER['PHP_AUTH_PW'] = mysql_escape_string($_SERVER['PHP_AUTH_PW']);
}
if ($_SERVER['PHP_AUTH_USER']!=$user)
{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");
exit();
}
if ($_SERVER['PHP_AUTH_PW']!= $pass)
{
Header ("WWW-Authenticate: Basic realm=\"Admin Page\"");
Header ("HTTP/1.0 401 Unauthorized");
exit();
}
}
?>

Означает что к файлу экспорта имеет доступ пользователь admin с паролем pass.

Каскадные стили поисковика style.css
body {font-family:tahoma; font-size:12px;};
a {font-size:14px; color:#3399FF; text-decoration:none;}
.url {font-size:10px; color:#009900;}
p {margin:1px;}
h3 {margin-bottom:10px;}
.button {border:1px solid #CCCCCC;}
#nav {background-color:#CCFFCC; text-align:center; margin:10px; padding:10px;}

В итоге у нас получается 5 файлов:

index.php – главная страница нашего поисковика

config.php – конфигурационный файл нашего “убийцы Гугла” =)

export.php – файл для экспорта не индексированных веб-страниц

lock.php – файл блокирующий доступ к файлу экспорта

style.css – для красоты нашего с вами поисковика

Скачать скрипт поисковика

]]>

Добавить в закладки

]]>

Теги: , , ,

1 комментарий по “Собственный поисковик: Веб интерфейс (продолжение)”

  1. ]]> Сергей ]]> сказал:
    марта 2, 2010 в 01:36

    Спасибо за пост=) тольке не совсем понятно зачем нужен Добавить URL?

Оставьте комментарий: