[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Добавление коментариев
Гость_lnter
Добрый вечер, уважаемые программисты.
Мне надо сделать модуль добавления комментариев к статьям. Все найденные скрипты предлагают форму: имя и мыло, что и добавляется в базу данных MySQL.
А как сделать так, чтобы в бд добавлялся ИД статьи, имя зарегестрированного пользователя. И еще, как сделать, чтобы только зарегынные пользователи могли постить комменты.
Возможно, кто-то может поделиться готовым скриптом.
Или может кто знает другое решение?
Заранее, спасибо!



Спустя 6 часов, 12 минут, 11 секунд (11.12.2009 - 08:47) Romms написал(а):
Это уже не скрипт а часть сайта... я на твоем месте подумал... ти скажи что у тя есть? Статьи? Регистрация?
Или ты хочь чтобы за тебя написали? ну тогда стучи в асю...

Спустя 3 часа, 13 минут, 46 секунд (11.12.2009 - 12:00) Soldier Ghost написал(а):
Найди знакомого или чела который сделает за пару баксов и не парься

Спустя 3 часа, 54 минуты, 25 секунд (11.12.2009 - 15:55) Гость_lnter написал(а):
Пока вот, что есть:

<html>
<head>
<title>
add_comment</title>
</head>
<body>
<?php
include("read.php"); ?>
<br/>
<form
name="" action="add.php" method="post">
Add comment:
<textarea name="data[0]" rows=5 cols=20 wrap="off"></textarea>
<br/>
<input
type="submit" name="add" value="add"> <br/>
</form>
</body>
</html>

<?php
$text = strip_tags(stripslashes(substr($_POST['data']['0'],0,20)));
if($_POST['add'] != '') {
if($text != '') {
//Подключаемся к БД.
$db=@mysql_connect("localhost", "root", "") or die("Connection error");
@mysql_select_db("test", $db) or die("Cannot chose DB");
//@mysql_query("SET NAMES UTF-8");
$query = "INSERT INTO comment VALUES (NULL,'".$text."')";
if(mysql_query($query)) { echo "Comment <br/><a href=\"index.php\">added</a>";}
else {echo "Post error";};
}
else {echo "Enter your comment";}
}

else {echo "<a href=\"index.php\">назад</a>"; };
?>

<?php
//Подключаемся к БД.
$db=mysql_connect("localhost", "root", "") or die("Ошибка подключения");
mysql_select_db("test", $db) or die("Не могу выбрать БД");
//@mysql_query("SET NAMES UTF-8");
$q = mysql_query("SELECT * FROM comment");

while($r = mysql_fetch_array($q)) {

echo "$r[text]<br/>";
}
?>


 CREATE TABLE comment
(
comment_id int AUTO_INCREMENT NOT NULL PRIMARY KEY,
text varchar (65536) NOT NULL,
publication_date datetime NOT NULL,
user_id int NOT NULL, INDEX(user_id), FOREIGN KEY (user_id) REFERENCES user_,
review_id int NOT NULL, INDEX(review_id), FOREIGN KEY(review_id) REFERENCES review,
film_id int NOT NULL, INDEX(film_id), FOREIGN KEY (film_id) REFERENCES film
);

Спустя 2 часа, 37 минут, 14 секунд (11.12.2009 - 18:32) Гость_lnter написал(а):
Поменял инсерт:
$sql_query = "INSERT INTO comment (comment_id, text,publication_date) VALUES (NULL,'".$text."', now())";

Спустя 39 минут, 20 секунд (11.12.2009 - 19:11) Chudik написал(а):
Проверяй пользователя во первых, и тогда выводи форму комментов.
Если коментов будет 100 их надо делить на несколько стриниц, но это уже совсе иная задача, но тем не менее это нодо тоже искать тебе ибо без постраничного вывода тут не обойтись.

Спустя 13 минут, 53 секунды (11.12.2009 - 19:25) Гость_lnter написал(а):
А как сделать, чтобы ИД статьи записывался в БД?

Спустя 8 минут, 33 секунды (11.12.2009 - 19:34) VolCh написал(а):
При выводе статьи сделай в форме скрытое поле с id статьи

Спустя 20 часов, 42 минуты, 41 секунда (12.12.2009 - 16:17) Гость_lnter написал(а):
Цитата (VolCh @ 11.12.2009 - 16:34)
При выводе статьи сделай в форме скрытое поле с id статьи

Извини, не совсем понял, как это реализовать?

Спустя 1 час, 20 минут, 17 секунд (12.12.2009 - 17:37) Chudik написал(а):
Цитата
Извини, не совсем понял, как это реализовать?


<input type="hidden" name="id_post" value="<?php $id_post; ?>">

Спустя 2 минуты, 18 секунд (12.12.2009 - 17:39) Romms написал(а):
Цитата
Извини, не совсем понял, как это реализовать?

это ж элементарно, Ватсон! выводыш статью как? например "SELECT * FROM `articles` WHERE id=`".$id."`"
тогда между тегами <form></form> вставь:
echo '<input type="hidden" name="id_article" value="'.$id.'" />';

а получаешь значения этово hidden'а как и с обыкновенного поля:
echo $_POST['id_article'];


Спустя 20 часов, 2 минуты, 50 секунд (13.12.2009 - 13:42) _Joker_ написал(а):
дык, а что тут сложного то?

пару проверок и запись в БД и всё готово.

передаёшь ИД статьи когда тыцяеш на добавить коментарий, при этом проверяешь создана ли сессия на пользователя, если нет то сообщение выпадает "Извеняйте только для зарегестрированых пользователей, регистрация тыцнуть сюда, залогиниться тыцнуть сюда". Если пользователь есть то пускаем на страничку "оставить комент". Чувак вводит сообщение, больше ничего нам не надо, так как сесия на него создана и он залогиненый (типа данные на него есть). нажимает добавить комент, проверка на заполненое поле и вперёд, передал постом какую то скрытую переменную типа action=create и скриптик снача ищит тебя как пользователя в БД, выковыривает нужные даные, достаточно только ИД пользователя для связи и записывает в базу коментов сам комент, ид статьи и ид пользователя который добавил. Вот и всё...

Логика есть, осталось только руцями код набрать, это минут 10-15 и готово. Ну а если с программированием не дружеш то это другой вопрос...
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.