За последние 24 часа нас посетили 16823 программиста и 1645 роботов. Сейчас ищут 968 программистов ...

вывод комментария по id!!!

Тема в разделе "PHP и базы данных", создана пользователем kolya7774, 21 апр 2011.

  1. kolya7774

    kolya7774 Активный пользователь

    С нами с:
    3 мар 2011
    Сообщения:
    98
    Симпатии:
    0
    Не могу ни как сделать чтобы комментарий выводился к определенной статьи.

    Есть страница, которая выводи статью (view_post.php) с кодом:
    ...
    if (isset ($_GET ['id'])) {$id = $_GET ['id'];}
    ...(то есть вытаскивается все по id)


    Есть форма отправки коммента:
    <div id="container_guestbook">
    <div id="center" class="center">
    <div align="left">
    <?
    $query = "SELECT COUNT(*) FROM guestbook";
    $numentries = mysql_query($query) or die("Select Failed!");
    $numentry = mysql_fetch_array($numentries);
    ?>
    <b>There are <span id="noEntries"><? echo $numentry[0]; ?></span> entries already</b> &raquo;
    <a href="#" id="addEntryLink"><span id="addEntryLinkText">Добавить комментарий</span></a>
    <img src="guestbook/images/click.gif" alt="" title="" />
    <p></p>
    <div id="addEntry">
    <form action="#" method="post" style="margin: 0;padding: 0;">
    <table border="0" cellpadding="2" cellspacing="3">
    <tr>
    <td valign="top" align="right">
    <font face="Verdana" size=2>Ваше имя: <input type="text" name="name" id="name" size="20" maxlength="100" /><br><br>
    Страна: <input type="text" name="country" id="country" size="20" maxlength="85" /><br><br>
    Е-mail: <input type="text" name="email7" id="email7" size="20" maxlength="85" /><br><br>
    Ваш сайт: <input type="text" value="http://" name="website" id="website" size="20" maxlength="85" /><br><br>
    Введите <b><? echo "$verificationnr"; ?></b>
    <input type="hidden" name="verificationnr" value="<? echo "$verificationnr";?>" />
    <input type="text" name="verification" id="verification" size="10" maxlength="6" />
    </td>
    <td valign="top" align="left">
    <textarea name="message" rows="10" cols="64" id="message"></textarea>

    <input name="id" type="hidden" value="<?php echo "$id"; ?>"/> - надо чтобы этот идентификатор попал в базу в поле 'post'!!!

    <br /><br /></td></tr><tr>
    <td align="center" colspan="2">
    <input class="button" type="button" id="submit" value="Прокомментировать" />&nbsp;&nbsp;
    <input class="button" type="reset" name="reset" value="Стереть поля" />&nbsp;&nbsp;
    <input class="button" type="button" name="cancel" value="Запомнить" />
    </td></tr></table></form></div>
    <?
    $sql = "SELECT * FROM guestbook WHERE post='$id' order by id DESC ";
    $result = mysql_query($sql);
    while ($record = mysql_fetch_object($result)) {
    $message = nl2br($record->message);
    $email7 = ereg_replace('@', ' [ AT ] ', $record->email7);
    ?> :!: :!: :!: :!: :!: :!: :!: :?: :idea: :roll: :twisted:
    .....



    Есть 2 файла которые обрабатывают данные и я не знаю как сделать чтобы идентификатор (id) попал в базу, я вообще не понимаю какой из файлов делает обработку первый (куча переменных, не могу понять)!!!:



    1.Guestbook.class.php
    <?php
    class guestBook {

    public $totalEntries = null;

    public function guestBook() {
    $this->totalEntries = $this->totalEntries();
    }

    public function listEntries () {
    $sql = "SELECT * FROM `guestbook` ORDER BY `id` DESC";
    $result = mysql_query($sql);
    while ($record = mysql_fetch_object($result)) {
    $message = nl2br($record->message);
    $email7 = ereg_replace('@', ' [ AT ] ', $record->email7);
    echo '
    <div class="gb" align="left">
    <div class="gbtop">
    <p><b>'.$record->name.' </b>';
    if($record->country == "") {
    echo "";
    }
    else {
    echo "from ".$record->country;
    }
    echo '<br/><font class="small">Добавлено '.$record->postdate.' - '.$record->time.'
    </div>
    <div class="gbbottom">
    <p>'.$message.'</p>
    <div class="small" align="right">';
    if($record->website == "") {
    echo "";
    }
    else {
    echo "<a href=\"http://".$record->website."\" target=\"_blank\"><img src='guestbook/images/website.gif' border=0></a>&nbsp;";
    }
    echo '&nbsp';
    if($email7== "") {
    echo "";
    }
    else {
    echo "<a href=\"mailto:$email7\" target=\"_blank\"><img src='guestbook/images/email.gif' border=0></a>&nbsp;";
    }
    echo ' </div>
    </div>
    </div>';
    }
    mysql_close();
    }

    public function addEntry ($userName, $userCountry, $useremail7, $userURL, $userMessage) {
    $website = ereg_replace("http://", "", $userURL);
    $message = ereg_replace("<", "", $userMessage);
    $message = ereg_replace(">", "", $userMessage);
    $message = addslashes($userMessage);
    $name = ereg_replace("<", "", $userName);
    $name = ereg_replace(">", "", $userName);
    $name = addslashes($userName);
    $email7 = ereg_replace("<", "", $useremail7);
    $email7 = ereg_replace(">", "", $useremail7);
    $email7 = addslashes($useremail7);
    $website = ereg_replace("<", "", $userURL);
    $website = ereg_replace(">", "", $userURL);
    $website = addslashes($userURL);


    $useragent = ($_SERVER['HTTP_USER_AGENT']);
    $referer = $_SERVER['HTTP_REFERER'];
    $ip = $_SERVER['REMOTE_ADDR'];
    $host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
    $time = date( "H:i");
    $postdate = date( "Y.m.d" );


    mysql_query ("INSERT INTO `guestbook` (`postdate`, `time`, `name`, `email7`, `website`, `country`, `message`) VALUES ('$postdate', '$time', '$name','$email7', '$website', '$country', '$message')");
    mysql_close();

    if($notify == "yes"){
    mail("$mailto", "you have a new message on your website", "\n\nname: $name\nemail7: $email7 - web: $website\nmessage: $message\n\nIP adres: $ip = $host", "FROM:$mailto<$mailto>\r\n");
    }

    return true;
    }

    public function checkemail7 ($email7) {
    if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email7)) {
    return false;
    }
    $email7_array = explode("@", $email7);
    $local_array = explode(".", $email7_array[0]);
    for ($i = 0; $i < sizeof($local_array); $i++) {
    if (!ereg("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$", $local_array[$i])) {
    return false;
    }
    }
    if (!ereg("^\[?[0-9\.]+\]?$", $email7_array[1])) {
    $domain_array = explode(".", $email7_array[1]);
    if (sizeof($domain_array) < 2) {
    return false;
    }
    for ($i = 0; $i < sizeof($domain_array); $i++) {
    if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i])) {
    return false;
    }
    }
    }
    return true;
    }

    public function checkUrl ($url) {
    if (!preg_match("(http|ftp|https)|\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&amp;:/~\+#]*[\w\-\@?^=%&amp;/~\+#])?",$url)) {
    return false;
    }
    return true;
    }

    private function totalEntries () {
    $query = mysql_query("SELECT COUNT(*) AS `totalEntries` FROM guestbook");
    $entryArray = mysql_fetch_array($query);
    $this->totalEntries = $entryArray['totalEntries'];
    return false;
    }
    }
    ?>






    2. Validaeform.php
    <?php
    include ('../config.php');
    include ('classes/guestBook.class.php');
    $guestBook = new guestBook();
    $check = $_POST['check'];
    if ($check == 'email7') {
    $useremail7 = $_POST['email7Address'];
    if(!$guestBook->checkemail7($useremail7)) {
    echo 'no';
    }
    else {
    echo 'yes';
    }
    }
    if ($check == 'url') {
    if(!$guestBook->checkUrl($_POST['website'])) {
    echo 'no';
    }
    else {
    echo 'yes';
    }
    }
    if($check == 'newCode') {
    function GenVerif () {
    srand(time());
    $i=($QUERY_STRING)?($QUERY_STRING):"6";
    while($i--) {
    while(!ereg("[2-9]",$chr=sprintf("%c",rand(48,127))));
    $passw .= $chr;
    }
    return $passw;
    }
    $verificationnr = GenVerif();
    echo $verificationnr;
    }

    if ($check == 'newEntry') {
    $userName = $_POST['userName'];
    $userCountry = $_POST['userCountry'];
    $useremail7 = $_POST['useremail7'];
    $userURL = $_POST['userURL'];
    $userMessage = $_POST['userMessage'];

    $time = date( "H:i");
    $postdate = date( "Y.m.d" );
    if($guestBook->addEntry($userName, $userCountry, $useremail7, $userURL, $userMessage)) {
    echo ' <div class="gb" align="left">
    <div class="gbtop">
    <p><b>'.$userName.'</b> from '.$userCountry;
    echo '<br/><font class="small">Добавлено '.$postdate.' - '.$time.'
    </div>
    <div class="gbbottom">
    <p>'.$userMessage.'</p>
    <div class="small" align="right">';
    if($userURL == "") {
    echo "";
    }
    else {
    echo "<a href=\"http://$userURL\" target=\"_blank\"><img src='guestbook/images/website.gif' border=0></a>&nbsp;";
    }
    ?>
    &nbsp;
    <?
    if($useremail7== "") {
    echo "";
    }
    else {
    echo "<a href=\"mailto:$useremail7\" target=\"_blank\"><img src='guestbook/images/email.gif' border=0></a>&nbsp;";
    }
    echo ' </div>
    </div>
    </div>';
    }
    }
    ?>

    Добавил я в базу поле 'Post' в которое будет попадать id, что делать дальше, чтобы оно попало туда. Я все что знал перепробовал и не выходит.
    [/php]
     
  2. Invision

    Invision Активный пользователь

    С нами с:
    26 фев 2009
    Сообщения:
    1.437
    Симпатии:
    1
    Адрес:
    Томск
    говнокод атакед
     
  3. kolya7774

    kolya7774 Активный пользователь

    С нами с:
    3 мар 2011
    Сообщения:
    98
    Симпатии:
    0
    почему плохой?

    ты знаешь как сделать чтобы 'id' попадало в 'post'?