Webmaster общности: Predpriemach.com | SearchEngines.bg

    Интернет каталог + админ панел

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

    Първо създаваме таблицата в която ще се записват линковете постнати от потребителите, те няма да се показват в каталога докато не ги одобрите.

    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++;
    }
    ?>

    Мисля, че това е всичко.