Как сделать коментарии на сайте

Discussion in 'PHP' started by VladZombie, 7 Sep 2009.

  1. VladZombie

    VladZombie New Member

    Joined:
    18 Apr 2009
    Messages:
    47
    Likes Received:
    2
    Reputations:
    0
    Пишу сайт и не могу сделать так чтобы пользователи могли оставлять коменты. Подскажите как это можно сделать? пока сделал так: На странице поставил поле для ввода текста после того как напишет данные идут в оброботчик из оброботчика поступает текст в отдельный *.html файл. И на главной странице коментарии берутся с *.html файла с командой
    PHP:
    <?php include "*.html" ?>
    но это неудобно очень (
     
    #1 VladZombie, 7 Sep 2009
    Last edited: 7 Sep 2009
  2. Sharky

    Sharky Elder - Старейшина

    Joined:
    1 May 2006
    Messages:
    487
    Likes Received:
    312
    Reputations:
    46
    отформатируй код, а то тема будет удалена
     
  3. FeraS

    FeraS Elder - Старейшина

    Joined:
    19 Jan 2007
    Messages:
    555
    Likes Received:
    420
    Reputations:
    76
    Возьми какой-нибудь готовый простенький движок за основу и сделай подобное
     
  4. VladZombie

    VladZombie New Member

    Joined:
    18 Apr 2009
    Messages:
    47
    Likes Received:
    2
    Reputations:
    0
    Я брал уже мини чат, и поставил его и всё было отлично но он и весит и не мало если сделать к примеру 50 тем и на всех поставить коменты то весить будет примерно 20mb а это для бесплатного хоста слишком много! а сейчас с таким способом весит 2 mb. Ну делают же как то коменты но точно уж не с таким способом как я сделал, у меня всё замудрёно как то. И если кто небудь напишет комент к примеру
    HTML:
    <hr width="1000" color="red">
    то вся страница расширяется а если значение поставить 5000 то это ваще ужас
     
    #4 VladZombie, 7 Sep 2009
    Last edited: 7 Sep 2009
    1 person likes this.
  5. gluke

    gluke Banned

    Joined:
    6 Jun 2008
    Messages:
    33
    Likes Received:
    40
    Reputations:
    1
    По мойму оптимальное для тебя решение
    _ttp://freshcoder.ru/archives/60
     
    1 person likes this.
  6. games.daemon

    games.daemon Member

    Joined:
    20 Jul 2009
    Messages:
    24
    Likes Received:
    29
    Reputations:
    -25
    вот тебе дружек от меня .

    test1.php
    Code:
    </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 отредактировано

    Code:
    <?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 надеюсь догадаешься какие таблицы создавать
     
    #6 games.daemon, 7 Sep 2009
    Last edited: 10 Sep 2009
    1 person likes this.
  7. L I G A

    L I G A Banned

    Joined:
    27 Jul 2008
    Messages:
    482
    Likes Received:
    380
    Reputations:
    49
    зачем 2 одинаковых кода? и оба выводят значения из БД но не вставляют его туда.

    дописал вставку коментов в БД могут быть эроры поскольку писл а скорую руку.
    PHP:
    <?php
    if($_POST['sub_com'] ){
    if(
    $_POST['author']{
    if(
    $_POST['text']{
    $avtor=trim($_POST['author']);
    $texttrim($_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>
     
    #7 L I G A, 7 Sep 2009
    Last edited: 8 Sep 2009
    1 person likes this.
  8. games.daemon

    games.daemon Member

    Joined:
    20 Jul 2009
    Messages:
    24
    Likes Received:
    29
    Reputations:
    -25
    Ой извените ! Был не внимателен редактирую первый пост test2.php
     
  9. VladZombie

    VladZombie New Member

    Joined:
    18 Apr 2009
    Messages:
    47
    Likes Received:
    2
    Reputations:
    0
    Я уже доработал свой скрипт... Правда без каптчи ((( ну надеюсь не кто флудить не будет...