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

Как да си направим система за коментари

PHP » PHP
winstyler   трудност:    видян: 11288

Сега ще ви покажа как да си направите една елементарна системка за коментари!  

 

Ще ни трябват само 2 файла 

 

1.config.php - За връзка с базата данни

 

2.comments.php - И самия код на системката

 

Така нека първо да ви дам Базата данни 

 

 

CREATE TABLE `comments` (
`id` INT( 12 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`avtor` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
`komentar` TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
`data` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL ,
`ip` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci;

 


Сега ето и config.php 


 

<?php

$host = "localhost"; //
$user = "root"; // Данните за връзка с Базата данни!
$pass = ""; //
$bd = ""; //

$connect = mysql_connect($host, $user, $pass); // Свързваме се с Базата данни!
mysql_select_db($bd, $connect) or die (mysql_error()); //Изпълняваме заявката като селектираме цялата База Данни!
mysql_query("SET names UTF8"); // Правим си енкодинга на UTF8

?>

 

 

И остана comments.php 

 

 

 

<?php
session_start();
ob_start();
?>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<table align="center" width="400" id="main">
<form method="POST" action="comments.php">
<tr><td>Име:</td><td><input type="text" name="avtor" size="25"/></td></tr>
<tr><td valign="top">Коментар:</td><td><textarea name="komentar" rows="4" cols="27"></textarea></td></tr>
<tr><td></td><td><input type="submit" name="submit" value="Добави коментара" /></td></tr>
</form>
</table><hr /><br />

<?php
include "config.php"; //Инклудваме конфиг файла!
if (isset($_POST['submit'])) { //Проверяваме дали е натиснат бутона submit!
$avtor = htmlspecialchars(addslashes($_POST['avtor'])); //Взимаме написаното от полето за въвеждане на автор и добавяме малко защити!
$komentar = htmlspecialchars(addslashes($_POST['komentar'])); //Взимаме написаното от полето за въвеждане на коментар и добавяме малко защити!
$data = date("d.F.y / H:i"); //Взимаме датата и часът на вавеждането на коментара!
$ip = $_SERVER['REMOTE_ADDR']; //Взимаме ипто на потребителят който е въвел коментара!
if ($avtor == NULL || $komentar == NULL) { //Правим провекра дали полетата са празни!
echo "Моля попълни име и парола!"; //И ако са празни извеждаме грешка!
} else {
$sql = "INSERT INTO comments (avtor, komentar, data, ip) VALUES ('$avtor', '$komentar', '$data', '$ip')"; //Ако всичко е попълнено както трябва въвждаме данните в Базата данни!
mysql_query($sql) or die (mysql_error()); //Испълняваме заявката!
header("LOCATION: comments.php?id=$id"); //Този код прави така, че когато рефрешнете страницата след добавянето на коментар да не добавя коментара на ново!
}
}
?>

<?php // От тук на доло е кодът за извеждане на коментарите!
$our = mysql_query("SELECT * FROM comments ORDER BY id DESC"); // Селектираме Базата данни и извеждаме резултатите! Всеки най-от горе!
while ($row = mysql_fetch_assoc($our)) { // Правим си един цикъл в който ще извеждаме коментарите!
echo "<table width='300' align='center'>
<tr><td><b>Автор: <font color='red'>$row[avtor]</font></b></td></tr>
<tr><td align='center'><b>$row[komentar]</b></td></tr>
<tr><td align='right'><b>Дата: <font color='red'>$row[data]</font><hr/></b></td></tr>
</table>";
}
?>

 


Това беше урока надявам се да съм ви бил полезен

 



Коментари (12)

nikityYy на 07.04 2010 в 21:44ч.
Излиза ми с грешки и + това на някакъв странен език ;xx?!
winstyler на 10.04 2010 в 22:55ч.
какви грешки ти дава ? а относно езика си промени енкодинга :)
ivko0o на 27.04 2010 в 22:21ч.
Моля някой каже защо не се записват коментарите и за езика на скупе ivo_i_krisko
m92wicked на 29.04 2010 в 15:01ч.
Има случеи, в които възниква проблем със езика: ако е кирилица, в БД не се записва... в такъв случей променете колацията на БД на cp1251_bulgarian_ci, преди да взимате от БД поставете :
mysql_query('SET NAMES cp1251');
mysql_query('SET CHARACTER SET cp1251_general_ci');
Но това е само алтернативно решение... UTF-8 е за препоръчване навсякъде (БД, encoding на Уебстраниацта). А ако имате проблеми с показването на UTF-8 от browser-a то най-вероятно проблемите са Ви от регионалните настройки на ПС-то.
wowmanqk96 на 30.05 2010 в 19:14ч.
добре е :) бачка са ги модвам 10х :)
paranoiks на 14.06 2010 в 20:59ч.
Кажте компилатор за това нещо плс.
icoo на 19.07 2010 в 23:08ч.
някои може ли да ми даде система за коментари но без база данни а с txt файл или нещо от сорта
mitko96 на 11.04 2011 в 00:33ч.
@paranoiks не ти трябва компилатор. записваш текста като .php и си готов.
@icoo Няма такава система със txt. 99.999% от сайтовете ползват MySQL, другите 0.001% ползват SQLite
ivcho02 на 27.04 2011 в 21:40ч.
Ще пробвам сея ;)
danieldrebus на 16.05 2011 в 15:01ч.
Здравейте ще ви дам моя система :) ето ви линк : http://dox.bg/files/dw?a=1b046029e8 дано да сам ви помогнал .
danieldrebus на 16.05 2011 в 15:01ч.
Здравейте ще ви дам моя система :) ето ви линк : http://dox.bg/files/dw?a=1b046029e8 дано да сам ви помогнал .
lordnikon на 06.01 2012 в 17:41ч.
Здравейте,имам нужда от малко помощ.Успешно се справих с урока по горе:),ако обаче искам да има линк който да връща към дадена страница как да го направя?

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


Калдейта ЕООД - © 2003-2010. Всички права запазени.
Препоръчваме: IT Новини