Русскоязычные документы веб-мастеру готовы к употреблению
Где вы зарабатываете больше всего?
Яндекс.Директ
Google Adsens
Sape
Begun
Setlinks
Mainlinks
Blogun

Мы рассмотри каталог ссылок на PHP который не использует MySQL. Данный каталог работает на моём сайте, т.е. я выкладываю исходники каталога + документацию к нему.

Функции

Наш каталог будет не простым. Он будет иметь администрирование, причём администрирование будет защищено логином и паролем.
Сначала разбёрём фнукции каталога:
1. Добавление ссылки
2. Вывод ссылок
3. Подсчёт количества ссылок в каждой категории(разделе).
Функции администрирования
1. Вывод ссылок непровернных
2. Вывод проверенных ссылок
3. Редактирование любых сcылок
4. Удаление ссылок
5. Оценка ссылок

Файлы
Мы будем использовать вот какие файлы:

1. addlink.php
В этом файле стоит форма для добавления ссылок. А именно: Название, Адрес, Категория, Описание. Эта форма ссылаеться на файл tomoder.php - action=tomoder.php.

2. tomoder.php В этом файле обрабатываеться ссылка, ей присваеться значение check=0, имееться ввиду то что она ещё непроверена, а значит не допущена к выводу.

3. файлы вывода ссылок
В этих файлох будет выводиться ссылки

4. admin.php
Файл администрирования защищенный паролем и логином. Использует edit.php

5. edit.php
Содержит в себе форму для редактирования ссылок в admin.php
6. id.txt
содержит id ссылки 6. links.txt
содержит ссылки

Код
addlink.php
<form method=post action=tomoder.php>
Название:<input type=text name=name><br>
Адрес:<input value="http://" type=text name=website><br>
<select name="kat" style="width:200">
<option value="1">Веб-мастеру</option>
<option value="2">Программирование на PHP</option>
<option value="3">Архив скриптов</option>
<option value="4">Графика, Photoshop и др.</option>
<option value="5">Раскрутка сайта</option>
<option value="6">Архив документаций</option>
<option value="7">Разное</option>
</select>
<br>
<textarea rows="5" name="op" cols="30"></textarea><br>
<input type=submit name=button value=Добавить>
</form>
Здесь сложного ничего нет - простая форма.

tomode.php
$idopen = fopen('id.txt','r'); // открываем файл с id прошлой ссылки
$idlink = fgets($idopen, 1000); // переменной idlink присвоем значение id прошлой ссылки
$idlink++; // увеличиваем id на 1
fclose($idopen); // закрываем файлик
$idopen = fopen('id.txt', 'w'); // открываем заново
fputs($idopen, $idlink); // добавляем новый id
fclose($idopen); // закрываем файлик

$file = fopen('links.txt', 'r'); // открываем файл со ссылками
$links = unserialize(fread($file, 100000)); // расшифровыаем данный массив со ссылками
fclose($file); // закрываем файлик

function replace ($string)
{

$string = str_replace("::","::",$string);
$string = str_replace("<","<",$string);
$string = str_replace(">",">",$string);
$string = str_replace('\'',""",$string);
$string = str_replace("\n","
",$string);
$string = str_replace('"',""",$string);
$string = str_replace("%20"," ",$string);
$string = str_replace("$","S;",$string);
return $string;

}
// это функция для заменения некоторых символов в данных ввёденых пользователем

$moder = "0"; // ссылка не проверена
$op = replace($op); // испльзуем функцию для заменения тэгов и т.д.
$name = replace($name); // испльзуем функцию для заменения тэгов и т.д.
$website = replace($website); // испльзуем функцию для заменения тэгов и т.д.
$links[] = array (
'url' => "$website", // адрес
'name' => "$name", // имя
'description' => "$op", // описание
'cat' => "$kat", // категория
'stars' => "$starz", // оценка модератора
'check' => "$moder", // проверена или нет
'id' => "$idlink", // id ссылки
);

// создаём массив ссылки

$file = fopen('links.txt', 'w'); // открываем файлик со ссылками
$text = serialize($links); // зашифровываем новую ссылку
fwrite ($file,"$text"); // записываем в файлик

fclose($file); // закрываем файлик

admin.php
<?
if (($PHP_AUTH_USER!='login')||($PHP_AUTH_PW!='pass')) { // login - ваш логин, pass - ваш пароль
header("WWW-Authenticate: Basic realm=\"Введите логин и пароль\"");
header("HTTP/1.0 401 Unauthorized");
exit();
}
?>

<?
$filename = "links.txt"; // файл со ссылками
function open_links($filename) {
$open = fopen($filename, "r");
$links = unserialize(fread($open,100000));
fclose($open);
return $links;
}
// функция для открывания ссылок

function save_links($filename, $links) {
$open = fopen($filename, "w");
fputs($open, serialize($links));
fclose($open);
return 1;
}
// функция для открывания ссылок
?>

<?
$links = open_links($filename); // открываем ссылки
echo "Непроверенные:
"; // говорим что щас будут непроверенные ссылки
foreach ($links as $link) { // раскрадываем массив массивов
if($link[check]==0) { // если не проеренно
echo "<a href=\"?id=$link[id]\">$link[name]</a><br>$link[url]<br>$link[description]<br>$link[cat]<br>$link[id]<br><br>\n"; // вывод ссылок
$idd = $id;
}
}

echo "Проверенные:
"; // говорим что щас будут проверенные ссылки
foreach ($links as $link) { // раскрадываем массив массивов
if($link[check]==1) { // если проверено
echo "<a href=\"?id=$link[id]\">$link[name]</a><br>$link[url]<br>$link[description]<br>$link[cat]<br>$link[id]<br><br>\n"; // вывод ссылок
$idd = $id;
}
}
?>

<?
foreach($links as $link) {
if ($id==$link[id]) { // если id в урле совпадает с id ссылки то..
. include "edit.php"; // ... то открываем файл edit.php для редактирования данной ссылки
break;
}
}
?>

<?
if(!empty($button)){ // если кнопка сохранения не пуста (в edit.php)
if (isset($editlink)) { // если есть новая подредактированая ссылка
foreach($links as $key=>$link) { // передаём ключ к массиву
if ($link[id]==$editlink[id]) { // если совпадают id
$links[$key] = $editlink; // вносим новые значения в эту ссылку
save_links($filename, $links); // и записываем эту ссылку в файл
break;
}
}
}

}

if(!empty($button1)){ // если кнопка удаления не пуста (в edit.php)
if (isset($editlink)) { если есть новая подредактированая ссылка
foreach($links as $key=>$link) { // передаём ключ к массиву
if ($link[id]==$editlink[id]) { // если совпадают id
$links[$key] = $editlink; // вносим новые значения в эту ссылку
unset($links[$key]); // удаляем ссылку
save_links($filename, $links); // сохраняем массив
break;
}
}
}

}
?>

edit.php
<form method=post action="<?=$PHP_SELF;?>">
Название:<input type=text value="<?=$link[name];?>" name=editlink[name]><br>
Адрес:<input value="<?=$link[url];?>" name=editlink[url] type=text ><br>
Оценка:<input value="<?=$link[stars];?>" name=editlink[stars] type=text ><br>
CHECK:<input value="<?=$link[check];?>" name=editlink[check] type=text ><br>
<select name="editlink[cat]" style="width:200">
<option value="1">Веб-мастеру</option>
<option value="2">Программирование на PHP</option>
<option value="3">Архив скриптов</option>
<option value="4">Графика, Photoshop и др.</option>
<option value="5">Раскрутка сайта</option>
<option value="6">Архив документаций</option>
<option value="7">Разное</option>
</select>
<input type="hidden" name="editlink[id]" value="<?echo $link[id];?>">
<br>
<?
echo "<textarea rows=5 name=editlink[description] cols=30>$link[description]</textarea><br>";
?>
<input type=submit name=button value=Сохранить>
<input type=submit name=button1 value=Удалить>
</form>


Автор статьи - Zealot www.rupixel.com

Комментарии

Имя 

 

Рейтинг@Mail.ru
Александр Акимов
ICQ:
Mail: odvd@ya.ru