Интернет каталог + админ панел
В този урок, ще ви покажа как да си направите каталог, с добавяне на линкове от потребителите, и тяхното администриране от вас.
Първо създаваме таблицата в която ще се записват линковете постнати от потребителите, те няма да се показват в каталога докато не ги одобрите.
CREATE TABLE `temp_katalog` (
`id` int(10) NOT NULL auto_increment,
`date` text NOT NULL,
`ip` text NOT NULL,
`title` text NOT NULL,
`url` text NOT NULL,
`descr` text NOT NULL,
`kategoria` text NOT NULL,
PRIMARY KEY (id)
);Създадохме колоните id, дата, ИП, заглавие, УРЛ, описание и категоря.
Сега да създадем и таблицата от която ще ‘чете’ каталога.
CREATE TABLE `katalog` (
`id` int(10) NOT NULL auto_increment,
`title` text NOT NULL,
`url` text NOT NULL,
`descr` text NOT NULL,
`kategoria` text NOT NULL,
PRIMARY KEY (id)
);Правим един conf.php
<?
$hostname = "localhost";
$username = "потребител";
$password = "парола";
$db = "база данни";
MYSQL_CONNECT($hostname,$username,$password) OR DIE("Не мога да създам връзка ");
@mysql_select_db("$db") or die("Не мога да избера базата данни ");
?>Сега трябва да създадем някакви линкове за категориите:
link.php
<ul>
<li><a href="?u=auto">Авто</a></li>
<li><a href="?u=banks">Банки</a></li>
<li><a href="?u=business">Бизнес</a></li>
<li><a href="?u=juwels">Бижута</a></li>
</ul>Слагаме следния код в index.php на мястото в което ще се показват линковете от дадена категория:
<?
if ($_GET['u']) {
$page = $_GET['u'];
include("ukazatel.php");
}
?>Сега идва ред на формата с която потребителите ще добавят линкове:
form.php
<fieldset style="width: 400px;">
<legend style="font-size:12px;"><b>Добави сайт в каталога</b></legend>
<form method="post" action="?action=submit_link"><!-- или submit_link.php -->
<table width="100%" border="0" cellspacing="0" cellpadding="3" style="border-collapse: collapse" bordercolor="#111111">
<tr><td class="form"> Категория:</td><td>
<SELECT name="kategoria" size="1" class="forma1">
<OPTION></OPTION>
<OPTION>Авто</OPTION>
<OPTION>Банки</OPTION>
<OPTION>Бизнес</OPTION>
<OPTION>Бижута</OPTION>
</SELECT></td></tr>
<tr>
<td>
Име на сайта:
</td>
<td>
<input type="text" name="title" size="27">
</td>
</tr>
<tr>
<td >
Url:
</td>
<td>
<input type="text" name="url" size="27" value="http://">
</td>
</tr>
<tr valign="top">
<td >
Описание:
</td>
<td>
<textarea name="descr" rows="7" cols="25"></textarea>
</td>
</tr>
<tr><td></td><td><input type="submit" value="Добави"></td></tr>
</table>
</form>
</fieldset>Сега трябва да направим submit_link.php, който приема данните от таз форма и ги записва във временната таблица temp_katalog:
<?
$ip = getenv("REMOTE_ADDR");
$date = date(' jS F, H:i');
include('conf.php');
$kategoria=$HTTP_POST_VARS['kategoria'];
$title=$HTTP_POST_VARS['title'];
$url=$HTTP_POST_VARS['url'];
$descr=$HTTP_POST_VARS['descr'];
//заменяме получените данни за категоря с англииски думи които ще се появят в адрес бара на браузъра
$kategoria=str_replace("Авто", 'auto', $kategoria);
$kategoria=str_replace("Банки", 'banks', $kategoria);
$kategoria=str_replace("Бизнес", 'business', $kategoria);
$kategoria=str_replace("Бижута", 'juwels', $kategoria);
$url=htmlspecialchars($url);
$title=htmlspecialchars( $title);
$descr=htmlspecialchars($descr);
if (!$title | !$url | !$descr | !$kategoria)
{
echo "
Трябва да попълните полетата <b>Име</b>, <b>Url</b>, и <b>Описание</b> и да изберете <b>Категория</b>!
";
}
else
{
$add_link = mysql_query("INSERT INTO `temp_katalog` (id, kategoria, title, url, descr, date, ip)". "VALUES ('NULL', '$kategoria', '$title','$url','$descr','$date','$ip')");
if (!$add_link)
{
echo "
За съжеление, сайта не беше добавен в каталога.
";
}
else
{
echo "
Сайтът беше добавен успешно, и чака одобрение от администратора!
";
}
}
?>Данните вече трябва да са във временната ни таблица, и за сега оставяме лицето на сайта.
Сега се прехвърляме в админ панела от който, ще удобряваме или изтриваме пратените ни линкове.
Админ Панел:
Правим си една страничка в която преглеждаме пратените ни от потребителите линкове.
<?
//слагаме този код в индекса на админ панела на мястото в което ще се показват линковете от
// временната таблица
if ($_GET['act']) {
$page = $_GET['act'];
include("temp_katalog.php");
}
?>temp_katalog.php
<?
include('conf.php');
$query="SELECT * FROM `temp_katalog`";
$result=mysql_query($query);
$num=mysql_numrows($result);
echo "<div style=\"float: left; margin-left: 30px;\">";
$i=0;
while ($i < $num) {
$id=mysql_result($result,$i,"id");
$kategoria=mysql_result($result,$i,"kategoria");
$url=mysql_result($result,$i,"url");
$title=mysql_result($result,$i,"title");
$descr=mysql_result($result,$i,"descr");
$ip=mysql_result($result,$i,"ip");
$date=mysql_result($result,$i,"date");
if ($do_delete)
{
mysql_connect($hostname,$username,$password);
$del = mysql_query("DELETE FROM `temp_katalog` WHERE id = $idd LIMIT 1;");
if(!$del)
{
echo mysql_error();
}
else {
print "Линкът е изтрит!<hr>\n";
}
mysql_close();
}
echo "
<div style=\"font-size: 12px; border: 1px solid #000000; padding: 5px; margin: 7px; width: 500px;\">
IP: $ip - | - date: $date
<form method=post action=?act=submit_link>
<table>
<tr><td>Категория:</td><td><input size=\"45\" type=text value=\"$kategoria\" name=\"kategoria1\"></td></tr>
<tr><td>Име:</td><td><input size=\"45\" type=text value=\"$title\" name=\"title1\"></td></tr>
<tr><td>Адрес:</td><td><input size=\"45\" type=text value=\"$url\" name=\"url1\"></td></tr>
<tr><td>Описание:</td><td><textarea name=\"descr1\" value=\"$descr\" rows=\"7\" cols=\"45\">$descr</textarea></td></tr>
<tr><td>
</td><td><input type=submit value=\"Добави в каталога\"></td></tr>
</table>
</form>
<form method=\"post\">
<input type=\"hidden\" name=idd value=$id></input>
<input name=do_delete type=\"submit\" value=\"Изтрий\"></input>
</form>
</div>
";
$i++;
}
echo "</div>";
function submit_link()
{
global $config,$SQL,$title1,$url1,$descr1,$kategoria1;
if (!$title1 | !$url1 | !$descr1 | !$kategoria1)
{
echo "
<tr><td><font class=\"error\">
Трябва да поълните полетата <b>Име</b>, <b>Url</b>, и <b>Описание</b>!
</font></td></tr>
";
die();
}
else
{
$add_link = mysql_query("INSERT INTO `katalog` (id, kategoria, title, url, descr)". "VALUES ('NULL', '$kategoria1', '$title1','$url1','$descr1')");
if (!$add_link)
{
echo "
<tr><td>
Линкът не беше добавен!
</tr></td>
";
die();
}
else
{
echo "
<tr><td>
Линкът беше добавен в каталога!
</td></tr>
";
}
}
}
echo"<table style=\"width: 300px;\">";
submit_link();
echo"</table>";
?>Тук видяхме добавените от потребителите линкове ги одобрихме или изтрихме (или и двете)
Сега е време да направим страницата в която потребителите ще разглеждат линковете от дадена категория:
ukazatel.php
<?
//с това вземаме стойноста на u от адрес бара т.е. вземаме категорията u=auto = $cat=auto
$cat = $_GET['u'];
//преглеждаме таблицата и изваждаме всички редове които са от търсената категоря
$query="SELECT * FROM katalog where kategoria LIKE '$cat' order by title asc";
$result=mysql_query($query);
$num=mysql_numrows($result);
echo "<div style=\"float: left; margin-left: 30px;\">";
$i=0;
while ($i < $num) {
$id=mysql_result($result,$i,"id");
$kategoria=mysql_result($result,$i,"kategoria");
$url=mysql_result($result,$i,"url");
$title=mysql_result($result,$i,"title");
$descr=mysql_result($result,$i,"descr");
//показваме линковете един под друг подредени по азбучен ред (оказали сме го в $query)
echo "
<fieldset style=\"font-size: 12px; margin-top: 7px; width: 400px;\"><legend>$title</legend>
<br /><a href=\"$url\" class=\"link3\" target=\"_blank\">$descr</a></fieldset>";
$i++;
}
?>Мисля, че това е всичко.


