Извините за мой английский.
Мои знания о базе данных очень просты.
Я должен получить этот код с форума.
Моя проблема, когда кто-то пишет комментарий, он отображается на всем веб-сайте, когда я хочу, чтобы он отображался только в том файле, в котором он пишет.
Я попытаться решить эту проблему с ....
у меня есть Два файла, один с кодом 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
Благодарю всех, кто помогает мне с этой проблемой!