PHP/MySQL: Как создать раздел комментария в Вашем [закрытом] веб-сайте

"Код Тела Записи: Методы Microsoft для Разработки Программ C без Ошибки (Microsoft Programming Series)" Steve MacGuire.

Интересный, что значительная доля книги, упомянутые здесь, является книгами C/C++.

5
задан 23 July 2009 в 14:04
поделиться

5 ответов

Создайте новую таблицу с именем comments

У них должен быть столбец, содержащий идентификатор сообщения, которому они назначены.

Создайте форму, которая добавляет новый комментарий в эту таблицу.

Пример (не тестировался) так что может содержать синтаксические ошибки lil): Я называю страницу с комментариями сообщением

Post.php

<!-- Post content here -->

<!-- Then cmments below -->
<h1>Comments</h1>
<?php
$result = mysql_query("SELECT * FROM comments WHERE postid=0");
//0 should be the current post's id
while($row = mysql_fetch_object($result))
{
?>
<div class="comment">
By: <?php echo $row->author; //Or similar in your table ?>
<p>
<?php echo;$row->body; ?>
</p>
</div>
<?php
}
?>
<h1>Leave a comment:</h1>
<form action="insertcomment.php" method="post">
<!-- Here the shit they must fill out -->
<input type="hidden" name="postid" value="<?php //your posts id ?>" />
<input type="submit" />
</form>

insertcomment.php

<?php
//First check if everything is filled in
if(/*some statements*/)
{
//Do a mysql_real_escape_string() to all fields

//Then insert comment
mysql_query("INSERT INTO comments VALUES ($author,$postid,$body,$etc)");
}
else
{
die("Fill out everything please. Mkay.");
}
?>

Вы должны немного изменить код, чтобы он заработал. Я не делаю уроки. Только его часть;)

5
ответ дан 13 December 2019 в 22:13
поделиться

На этот вопрос сложно ответить без дополнительной информации. Есть ряд вещей, которые вы должны учитывать при рассмотрении внедрения комментирования на существующем веб-сайте.

Как вы будете решать проблему спама? Неважно, насколько удален ваш сайт, спамеры найдут его и заполнят в кратчайшие сроки. Вы можете изучить что-то вроде reCAPTCHA ( http://recaptcha.net/ ).

Структура веб-сайта также может влиять на то, как вы реализуете свои комментарии. Комментарии к сайту в целом, к конкретному продукту или странице или даже к другому комментарию? Вам необходимо знать взаимосвязь между содержимым и комментарием, чтобы вы могли правильно определить взаимосвязь в базе данных. Другими словами, вы знаете, что вам нужен адрес электронной почты, комментарий, и одобрен он или нет, но теперь нам нужен способ определить, на что, если вообще есть, ссылается этот комментарий.

Если ваш сайт уже создан и построен на платформе PHP ( CakePHP например), вам нужно будет решить, как правильно интегрировать ваш код с тем, что уже есть.

Наконец, в Интернете есть ряд ресурсов и руководств по PHP. Если вы выполните быстрый поиск в Google по строке «Руководство по PHP-блогу», я уверен, что вы найдете сотни, и большинство из них покажет вам шаг за шагом, как реализовать комментарии.

Вам нужно будет решить, как правильно интегрировать ваш код с тем, что уже есть.

Наконец, в Интернете есть ряд ресурсов и руководств по PHP. Если вы выполните быстрый поиск в Google по строке «Руководство по PHP-блогу», я уверен, что вы найдете сотни, и большинство из них покажет вам шаг за шагом, как реализовать комментарии.

Вам нужно будет решить, как правильно интегрировать ваш код с тем, что уже есть.

Наконец, в Интернете есть ряд ресурсов и руководств по PHP. Если вы выполните быстрый поиск в Google по строке «Руководство по PHP-блогу», я уверен, что вы найдете сотни, и большинство из них покажет вам шаг за шагом, как реализовать комментарии.

6
ответ дан 13 December 2019 в 22:13
поделиться

Вы можете создать таблицу комментариев с идентификатором в качестве первичного ключа, затем вы добавите текстовое поле для захвата текста, вставленного пользователем, и вы нужно другое поле, чтобы связать таблицу комментариев с таблицей статей (внешний ключ). Кроме того, вам нужно поле для хранения пользователя, который ввел комментарий, это поле может быть адресом электронной почты пользователя. Затем вы захватываете с помощью GET или POST электронную почту пользователя и комментарий и вставляете все в базу данных:

"INSERT INTO comment (comment, email, approved) VALUES ('$comment', '$email', '$approved')"

Это первая подсказка. Конечно, добавление функции комментариев займет немного времени.

0
ответ дан 13 December 2019 в 22:13
поделиться

Нормализация - ваш лучший друг в системе комментариев / рангов / голосов. Узнать его. Многие сайты сейчас переходят на PDO ... узнайте и об этом.

нет правильных, правильных или неправильных (ну, есть) способов сделать это, вам нужно знать основные концепции и принять их оттуда. ЕСЛИ вам не хочется учиться, возможно, инвестируйте в фреймворк, такой как cakephp или zend framework, или готовую систему, такую ​​как wordpress или joomla.

Я также порекомендовал бы книгу wicked cool php scripts , так как в ней есть пример системы комментариев.

0
ответ дан 13 December 2019 в 22:13
поделиться

Я так делаю комментарии (думаю, что это безопасно):

<h1>Comment's:</h1>
<?php 
$i  = addslashes($_POST['a']);
$ip = addslashes($_POST['b']);
$a  = addslashes($_POST['c']);
$b  = addslashes($_POST['d']);
if(isset($i) & isset($ip) & isset($a) & isset($b))
{
    $r = mysql_query("SELECT COUNT(*) FROM $db.ban WHERE ip=$ip"); //Check if banned
    $r = mysql_fetch_array($r);
    if(!$r[0]) //Phew, not banned
    {
        if(mysql_query("INSERT INTO $db.com VALUES ($a, $b, $ip, $i)"))
        {
            ?>
            <script type="text/javascript">
                window.location="/index.php?id=".<?php echo $i; ?>;
            </script>
            <?php
        }
        else echo "Error, in mysql query";  
    }
    else echo "Error, You are banned.";
}
$x = mysql_query("SELECT * FROM $db.com WHERE i=$i");
while($r = mysql_fetch_object($x) echo '<div class="c">'.$r->a.'<p>'.$row->b.'</p> </div>';

?>  
<h1>Leave a comment, pl0x:</h1>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <input type="hidden" name="a" value="<?php $echo $_GET['id']; ?>" />
    <input type="hidden" name="b" value="<?php $echo $_SERVER['REMOTE_ADDR']; ?>" />
    <input type="text" name="c" value="Name"/></br>
    <textarea name="d">
    </textarea>
    <input type="submit" />
</form>

Это все на одной странице (это только раздел комментариев, требуется некоторая настройка)

0
ответ дан 13 December 2019 в 22:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: