Назад | Перейти на главную страницу

Ошибка страницы комментариев php pdo

Извините за мой английский.

Мои знания о базе данных очень просты.

Я должен получить этот код с форума.

Моя проблема, когда кто-то пишет комментарий, он отображается на всем веб-сайте, когда я хочу, чтобы он отображался только в том файле, в котором он пишет.

Я попытаться решить эту проблему с ....

у меня есть Два файла, один с кодом Php, code.php затем другой, где отображается комментарий, comment.php.

На comment.php файл сверху вверху,

include '/var/www/html/code.php';

и внизу, где отображается комментарий

<?php $object = new ClassProveContakt3("1");?> 

На code.php вверху выше, объявите свойства $site,

 private $site;

В функция __construct ($ site) с параметром $ site, Я называть это,

public function __construct($site) {


     $this->site->$site;
     ...

При обновлении comment.php страница, чтобы прийти Два предупреждение,

1)

Попытка получить свойство '1' не-объекта в /var/www/html/code.php в строке 35

В строке 35 есть $this->site->$site;

2)

Неопределенная переменная: сайт в /var/www/html/code.php в строке 164

В строке 164 есть $sth -> execute( array(':site' => $site ));,

это функция для подключения к базе данных, эта функция,

function getMessages()
{
    if ( ! $this -> dbh ) {
        $this -> getConnection();
    }

    $sql = "SELECT * FROM commentar WHERE site = :site ORDER BY datetime DESC";
    $sth = $this->dbh->prepare( $sql, array( PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY ));
    $sth -> execute( array(':site' => $site ));

    $result = $sth->fetchAll(PDO::FETCH_ASSOC );
    if ( false === $result ) {
        $this->reportPDOError( "fetchAll(ASSOC) failed", $sql );
    }
    foreach ($result as $message) {

 ?>


 <p><strong>From: </strong> <?=htmlspecialchars( $message['name'] ) ?>            
 <strong>at: </strong> <?=htmlspecialchars( $message['datetime'] ); ?></p>
 <p><?=htmlspecialchars( $message['message'] ); ?></p><hr>


<?php
    }    
  }
}

Весь код из code.php является Вот

Может, кто-нибудь поможет мне с этой проблемой, спасибо!

Я «нашел» решение, люди дают мне решение, но я тоже ищу ...

На comment.php

В comment.php файл сверху вверху,

include '/var/www/html/code.php';

убери это.

и внизу, где отображается комментарий, измените с

<?php $object = new ClassProveContakt3("1");?> 

к

include_once '/var/www/html/code.php';

Из-за использованного include_once и нет включают Вот чтобы сказать почему.

На code.php

В линию 163 меняться от

 $sth -> execute( array(':site' => $site ));

к

$sth -> execute( array(':site' => $_SERVER['REQUEST_URI'] ) );

Почему $ _SERVER ['REQUEST_URI']? , как php в сказать около "REQUEST_URI", URI, который был предоставлен для доступа к этой странице. Я хочу, чтобы этот комментарий отображался только в том файле, в котором он записывается. Это сказать, когда сайт = место, где я ..... напишите сюда.

В линию 183 меняться от

$Newobject = new ClassProveContakt3();

к

$Newobject = new ClassProveContakt3($_SERVER['REQUEST_URI']);

Почему $ _SERVER ['REQUEST_URI'] ?, когда comment.php файл вызовите $ Newobject объект, это Параметр которые отправляют comment.php

Благодарю всех, кто помогает мне с этой проблемой!