PDA

Просмотр полной версии : Как сделать коментарии на сайте


VladZombie
07.09.2009, 01:44
Пишу сайт и не могу сделать так чтобы пользователи могли оставлять коменты. Подскажите как это можно сделать? пока сделал так: На странице поставил поле для ввода текста после того как напишет данные идут в оброботчик из оброботчика поступает текст в отдельный *.html файл. И на главной странице коментарии берутся с *.html файла с командой <?php include "*.html" ?> но это неудобно очень (

Sharky
07.09.2009, 02:08
отформатируй код, а то тема будет удалена

FeraS
07.09.2009, 02:28
Возьми какой-нибудь готовый простенький движок за основу и сделай подобное

VladZombie
07.09.2009, 02:40
Я брал уже мини чат, и поставил его и всё было отлично но он и весит и не мало если сделать к примеру 50 тем и на всех поставить коменты то весить будет примерно 20mb а это для бесплатного хоста слишком много! а сейчас с таким способом весит 2 mb. Ну делают же как то коменты но точно уж не с таким способом как я сделал, у меня всё замудрёно как то. И если кто небудь напишет комент к примеру <hr width="1000" color="red"> то вся страница расширяется а если значение поставить 5000 то это ваще ужас

gluke
07.09.2009, 02:49
По мойму оптимальное для тебя решение
_ttp://freshcoder.ru/archives/60

games.daemon
07.09.2009, 21:00
вот тебе дружек от меня .

test1.php
</form>



<?
echo "<p class='post_comment'>Комментарии к этой заметке:</p>";

$result3 = mysql_query ("SELECT * FROM твоя таблица WHERE post='$id'",$db);
if (mysql_num_rows($result3) > 0)
{
$myrow3 = mysql_fetch_array($result3);

do
{
printf ("<div class='post_div'><p class='post_comment_add'>Комментарий добавил(а): <strong>%s</strong> <br> Дата: <strong>%s</strong></p>
<p>%s</p></div>",$myrow3["author"], $myrow3["date"], $myrow3["text"]);

}
while ($myrow3 = mysql_fetch_array($result3));


}

$result4 = mysql_query ("SELECT img FROM comments_setting",$db);
$myrow4 = mysql_fetch_array($result4);

?>

<p class='post_comment'>Добавить Ваш комментарий:</p>
<form action="comment.php" method="post" name="form_com">
<p><label>Ваше имя: </label><input name="author" type="text" size="30" maxlength="30"></p>
<p><label>Текст комментария: <br> <textarea name="text" cols="32" rows="4"></textarea></label></p><p>Введите сумму чисел с картинки<br><img style='margin-top:17px;' src="<? echo $myrow4["img"]; ?>" width="80" height="40">
<input style='margin-bottom:16px;' name="pr" type="text" size="5" maxlength="5"></p>
<input name="id" type="hidden" value="<? echo $id; ?>">
<p><input name="sub_com" type="submit" value="Комментировать"></p>


</form>

test2.php отредактировано

<?php подключение к бд

if (isset($_POST['author']))
{
$author = $_POST['author'];
}

if (isset($_POST['text']))
{
$text = $_POST['text'];
}

if (isset($_POST['pr']))
{
$pr = $_POST['pr'];
}

if (isset($_POST['sub_com']))
{
$sub_com = $_POST['sub_com'];
}

if (isset($_POST['id']))
{
$id = $_POST['id'];
}

if (isset($sub_com))
{
if (isset($author)) {trim($author); }
else {$author = "";}

if (isset($text)) {trim($text); }
else {$text = "";}

if (empty($author) or empty($text))
{
exit ("<p>Вы ввели не всю информацию, вернитесь назад и заполните все поля. <br> <input name='back' type='button' value='Вернуться назад' onclick='javascript:self.back();'>");
}

$author = stripslashes($author);
$text = stripslashes($text);
$author = htmlspecialchars($author);
$text = htmlspecialchars($text);

$result = mysql_query ("SELECT sum FROM таблица",$db);
$myrow = mysql_fetch_array($result);

if ($pr == $myrow["sum"])
{
$date = date("Y-m-d");
$result2 = mysql_query ("INSERT INTO comments (post,author,text,date) VALUES ('$id','$author','$text','$date')",$db);
$address = "твояпочта@сайт.ру";
$subject = "Новый комментарий на блоге";
$result3 = mysql_query ("SELECT title FROM таблица WHERE id='$id'",$db);
$myrow3 = mysql_fetch_array ($result3);
$post_title = $myrow3["title"];
$message = "Появился комментарий - ".$post_title."\nКомментарий добавил(а): ".$author."\nТекст комментария: ".$text."\nСсылка на заметку: http://твой-сайт=".$id."";
mail($address,$subject,$message,"Content-type:text/plain; Charset=windows-1251\r\n");

echo "<html><head>
<meta http-equiv='Refresh' content='0; URL=сылка.php?id=$id'>
</head></html>";
exit();



}
else
{
exit ("<p>Вы ввели неверную сумму цифр с картинки на предыдущей странице. <br> <input name='back' type='button' value='Вернуться назад' onclick='javascript:self.back();'>");
}










}

?>
ну а в mysql надеюсь догадаешься какие таблицы создавать

L I G A
07.09.2009, 22:50
вот тебе дружек от меня .

test1.php
</form>



<?
echo "<p class='post_comment'>Комментарии к этой заметке:</p>";

$result3 = mysql_query ("SELECT * FROM твоя таблица WHERE post='$id'",$db);
if (mysql_num_rows($result3) > 0)
{
$myrow3 = mysql_fetch_array($result3);

do
{
printf ("<div class='post_div'><p class='post_comment_add'>Комментарий добавил(а): <strong>%s</strong> <br> Дата: <strong>%s</strong></p>
<p>%s</p></div>",$myrow3["author"], $myrow3["date"], $myrow3["text"]);

}
while ($myrow3 = mysql_fetch_array($result3));


}

$result4 = mysql_query ("SELECT img FROM comments_setting",$db);
$myrow4 = mysql_fetch_array($result4);

?>

<p class='post_comment'>Добавить Ваш комментарий:</p>
<form action="comment.php" method="post" name="form_com">
<p><label>Ваше имя: </label><input name="author" type="text" size="30" maxlength="30"></p>
<p><label>Текст комментария: <br> <textarea name="text" cols="32" rows="4"></textarea></label></p><p>Введите сумму чисел с картинки<br><img style='margin-top:17px;' src="<? echo $myrow4["img"]; ?>" width="80" height="40">
<input style='margin-bottom:16px;' name="pr" type="text" size="5" maxlength="5"></p>
<input name="id" type="hidden" value="<? echo $id; ?>">
<p><input name="sub_com" type="submit" value="Комментировать"></p>


</form>

test2.php

</form>



<?
echo "<p class='post_comment'>Комментарии к этой заметке:</p>";

$result3 = mysql_query ("SELECT * FROM твоя таблица WHERE post='$id'",$db);
if (mysql_num_rows($result3) > 0)
{
$myrow3 = mysql_fetch_array($result3);

do
{
printf ("<div class='post_div'><p class='post_comment_add'>Комментарий добавил(а): <strong>%s</strong> <br> Дата: <strong>%s</strong></p>
<p>%s</p></div>",$myrow3["author"], $myrow3["date"], $myrow3["text"]);

}
while ($myrow3 = mysql_fetch_array($result3));


}

$result4 = mysql_query ("SELECT картинка FROM таблица",$db);
$myrow4 = mysql_fetch_array($result4);

?>

<p class='post_comment'>Добавить Ваш комментарий:</p>
<form action="comment.php" method="post" name="form_com">
<p><label>Ваше имя: </label><input name="author" type="text" size="30" maxlength="30"></p>
<p><label>Текст комментария: <br> <textarea name="text" cols="32" rows="4"></textarea></label></p><p>Введите сумму чисел с картинки<br><img style='margin-top:17px;' src="<? echo $myrow4["img"]; ?>" width="80" height="40">
<input style='margin-bottom:16px;' name="pr" type="text" size="5" maxlength="5"></p>
<input name="id" type="hidden" value="<? echo $id; ?>">
<p><input name="sub_com" type="submit" value="Комментировать"></p>


</form>



ну а в mysql надеюсь догадаешься какие таблицы создавать
зачем 2 одинаковых кода? и оба выводят значения из БД но не вставляют его туда.

дописал вставку коментов в БД могут быть эроры поскольку писл а скорую руку.
<?php
if($_POST['sub_com'] ){
if($_POST['author']{
if($_POST['text']{
$avtor=trim($_POST['author']);
$text= trim($_POST['text']);
$id=mysql_insert_id();
mysql_query("INSERT INTO `таблица` SET `author`='".$avtor."',`text`='".$text."',`date`='".date()."'")
or die(mysql_error());
echo'<script>alert(/тормоз! все ок :)/)</script>';
echo '<meta http-equiv="refresh" content="0;url="'.$_SERVER['PHP SELF'].'">';
}else{
echo'<script>alert(/тормоз! комент забыл запостить!/)</script>';
}
}else{
echo'<script>alert(/тормоз! где логин ?!/)</script>';
}

}else{
echo'<br>постим коменты';
}

echo "<p class='post_comment'>Комментарии к этой заметке:</p>";

$result3 = mysql_query ("SELECT * FROM твоя таблица WHERE post='$id'",$db);
if (mysql_num_rows($result3) > 0)
{
$myrow3 = mysql_fetch_array($result3);

do
{
printf ("<div class='post_div'><p class='post_comment_add'>Комментарий добавил(а): <strong>%s</strong> <br> Дата: <strong>%s</strong></p>
<p>%s</p></div>",htmlspecialchars($myrow3["author"]), $myrow3["date"], htmlspecialchars($myrow3["text"]));

}
while ($myrow3 = mysql_fetch_array($result3));


}

$result4 = mysql_query ("SELECT img FROM comments_setting",$db);
$myrow4 = mysql_fetch_array($result4);

?>

<p class='post_comment'>Добавить Ваш комментарий:</p>
<form action="comment.php" method="post" name="form_com">
<p><label>Ваше имя: </label><input name="author" type="text" size="30" maxlength="30"></p>
<p><label>Текст комментария: <br> <textarea name="text" cols="32" rows="4"></textarea></label></p>
<input style='margin-bottom:16px;' name="pr" type="text" size="5" maxlength="5"></p>
<input name="id" type="hidden" value="<? echo $id; ?>">
<p><input name="sub_com" type="submit" value="Комментировать"></p>


</form>

games.daemon
10.09.2009, 09:15
Ой извените ! Был не внимателен редактирую первый пост test2.php

VladZombie
10.09.2009, 20:02
Я уже доработал свой скрипт... Правда без каптчи ((( ну надеюсь не кто флудить не будет...