Помогни ни да направим Uroci.net по - богат! Добави урок

Книга за гости

PHP » PHP
Bakalov   трудност:    видян: 7001

 Книгата за гости не заема много ресурси на MySQL сървъра. Тя се нуждае само от една таблица. Отворете phpMyAdmi, изберете си работната база данни и изпълнете следната SQL заявка:

CREATE TABLE gb (
ID int not null auto_increment,
IP varchar(20),
username varchar(50),
msg text,
primary key(id)
);
 

 Формата, чрез която потребителят ще остави коментар в книгата за гости, не е никак сложна. Нейният HTML код е следният:

Създайте файл gb.html

<form method=post action=gb-add.php>
<h1>Добави коментар</h1>
<h2>Твоето име</h2>
<input type=text name=username>
<h2>Текст:</h2>
<textarea rows=10 cols=50 name=msg></textarea>
<h2>Антиспам: Текуща година:</h2>
<p><input type=text name=antispam>
<p><input type=submit name=go>
</form>

 

 Формата gb.html предава данните към сценария gb-add.php. Той определя IP адреса на потребителя, проверява отговора, въведен в специалното поле antispam (в случая правилният отговор е 2011) и ако потребителят е дал правилен отговор, добавя запис в таблицата gb. Кодът на сценария gb-add.php е следният:

Създайте файл gb-add.php

 <?php

//Получаване на отговор от потребителя
$answer = $_POST['antispam'];

if ($answer == 2011) {

//Получаваме IP адреса на потребителя
$ip = $_SERVER['REMOTE_ADDR'];

//Получаваме името на потребителя, коментарите и премахваме
//от тях HTML тагове:
$username = strip_tags($POST['username']);

$msg = strip_tags($_POST['msg']);

//Формираме SQL заявка
$q = "insert into gb values(0, "$ip", "$username", "$msg");  ";

//Свързваме се към сървъра
mysql_connect("localhost", "root", "pass");

//Избираме БД
mysql_select_db("root");

//Изпращаме заявката
mysql_query($q);

echo "<h1>Благодаря за твоят коментар за сайта :)</h1>";

}
else die('Мммм, грешен отговор от антиспама :(');
?>

 

Създайте файл gb.php

 <?php
//Свързваме се към сървъра и избираме БД
mysql_connect("localhost","root","pass");
mysql_select_db("root");

//Брой коментари на страницата
$N = 5;

echo "<h1>Welcome to my guestbook</h1>";

echo "<p><a href=gb.html>Пиши във книгата</a>";

//Изчисляваме максималния брой записи
$r1=mysql_query("select count(*) as records from gb");
$f = mysql_fetch_row($r1);

//Знаем колко записа има в таблицата
$rec_count = $f[0];

//Ако страницата не е указана, показваме първата
if (!isset($_GET['page'])) $page=0;
else $page = $_GET['page'];

//Определяме кои коментари да покажем
$records = $page * $N;

//Заявка, показваща записи от $records до $N
$q='select * from gb limit '.$records.",$N";

echo "<p>Общо коментари: $rec_count<br>";

$result = mysql_query($q);
$max = mysql_num_rows($result);

//Ако страницата не е първа, показваме Back
if ($page > 0) {
$p = $page - 1;
echo "<a href=gb.php?page=$p>Back</a> ";
}

$page++;

//Показваме връзка Next
if ($records+$N < $rec_count)
echo "<a href=gb.php?page=$page>Next</a>";

//Показваме коментарите
for ($i=0; $i<$max; $i++)
{
    $row=mysql_fetch_array($result);
    
//Показваме потребителя
echo "<p><table width=100%>
      <tr><td bgcolor=grey width=10%>
      <font color=white># $row[id] User: $row[username]</font></td>
      </tr></table>";
      
//Показваме текста на коментара
echo "<p>$row[msg]";
}

?>



Регистрирайте се, за да добавите коментар


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: Национален Бизнес | Bomba.bg | IT Новини | Диплома.бг | TRAVEL туризъм | Реферати | AmAm.bg | Иде.ли | Курсови работи | Фото Форум | Spodeli.net | Фото-Култ | Atol.bg | Elmaz.com | MobileBulgaria.com | Казанлък.Com