В коде выдаёт ошибку:
Warning: mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in C:\OpenServer\domains\sitedota\module\news\material.php on line 6
Warning: Cannot modify header information - headers already sent by (output started at C:\OpenServer\domains\sitedota\module\news\material.php:6) in C:\OpenServer\domains\sitedota\index.php on line 91
https://gist.github.com/Orange-Men/d0dab7e34116def6febe
скрин таблицы https://i.stack.imgur.com/r4TGL.jpg
Вот код: index.php
<?php
include_once 'setting.php';
session_start();
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$CONNECT = mysqli_connect(HOST, USER, PASS, DB);
if ($_SESSION['USER_LOGIN_IN'] != 1 and $_COOKIE['user']) {
$Row = mysqli_fetch_assoc(mysqli_query($CONNECT, "SELECT id, name, regdate, email, country, avatar, login FROM users WHERE password = '$_COOKIE[user]'"));
$_SESSION['USER_LOGIN'] = $Row['login'];
$_SESSION['USER_ID'] = $Row['id'];
$_SESSION['USER_NAME'] = $Row['name'];
$_SESSION['USER_REGDATE'] = $Row['regdate'];
$_SESSION['USER_EMAIL'] = $Row['email'];
$_SESSION['USER_COUNTRY'] = UserCountry($Row['country']);
$_SESSION['USER_AVATAR'] = $Row['avatar'];
$_SESSION['USER_LOGIN_IN'] = 1;
}
// Единая точка входа
if ($_SERVER['REQUEST_URI'] == '/'){
$Page = 'index';
$Module = 'index';
}else{
$URL_Path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$URL_Parts = explode('/', trim($URL_Path, ' /'));
$Page = array_shift($URL_Parts);
$Module = array_shift($URL_Parts);
if (!empty($Module)){
$Param = array();
for ($i = 0; $i < count($URL_Parts); $i++){
$Param[$URL_Parts[$i]] = $URL_Parts[++$i];
}
}
}
//Наши страницы
if ($Page == 'index' and $Module == 'index') include('page/index.php');
else if ($Page == 'login') include('page/login.php');
else if ($Page == 'register') include('page/register.php');
else if ($Page == 'account') include('form/account.php');
else if ($Page == 'profile') include('page/profile.php');
else if ($Page == 'restore') include('page/restore.php');
else if ($Page == 'guestbook') include('page/guestbook.php');
else if ($Page == 'news'){
if (!$Module or $Page == 'news' and $Module == 'category' or $Page == 'news' and $Module == 'main')
include('module/news/main.php');
else if ($Module == 'material')
include('module/news/material.php');
}
//Проверка на авторизацию
function ULogin($p1) {
if ($p1 <= 0 and $_SESSION[USER_LOGIN_IN] != $p1)
MessageSend(1, 'Данная страница доступна только для гостей.', '/');
else if ($_SESSION[USER_LOGIN_IN] != $p1)
MessageSend(1, 'Данная страница доступна только для пользователей сайта.', '/');
}
//Страны
function UserCountry($p1) {
if ($p1 == 1)
return 'Украина';
if ($p1 == 2)
return 'Россия';
if ($p1 == 3)
return 'Беларусь';
if ($p1 == 4)
return 'Казахстан';
}
//Рандомная строка
function RandomString($p1) {
$Char = '0123456789abcdefghijklmnopqrstuvwxyz';
$String = '';
for ($i = 0; $i < $p1; $i ++)
$String .= $Char[rand(0, strlen($Char) - 1)];
return $String;
}
//Скрыте символов в email после @
function HideEmail($p1) {
$Explode = explode('@', $p1);
return $Explode[0].'@*****';
}
//Выплывающее сообщение об ошибке, подсказке или информации.
function MessageSend($p1, $p2, $p3 = '') {
if ($p1 == 1)
$p1 = 'Ошибка';
else if ($p1 == 2)
$p1 = 'Подсказка';
else if ($p1 == 3)
$p1 = 'Информация';
$_SESSION['message'] = '<div class = MessageBlock><b>'.$p1.'</b>: '.$p2.'</div>';
if ($p3)
$_SERVER['HTTP_REFERER'] = $p3;
exit(header('Location: '.$_SERVER['HTTP_REFERER']));
}
//Вывод этой ошибки, подсказки или информации.
function MessageShow(){
if ($_SESSION['message'])
$Message = $_SESSION['message'];
echo $Message;
$_SESSION['message'] = array();
}
//Проверка
//nl2br — Вставляет HTML-код разрыва строки перед каждым переводом строки
//htmlspecialchars — Преобразует специальные символы в HTML-сущности
//trim — Удаляет пробелы (или другие символы) из начала и конца строки
function FormChars ($p1) {
return nl2br(htmlspecialchars(trim($p1), ENT_QUOTES), false);
}
//Шифровка md5
function GenPass ($p1, $p2){
return md5('Orange_Men'.md5('123'.$p1.'321').md5('456'.$p2.'654'));
}
//<head>
function Head($p1) {
echo "
<head>
<meta charset='utf-8'/>
<title>$p1</title>
<meta name='keywords' content='' />
<meta name='description' content='' />
<link href='/resource/style.css' rel='stylesheet'>
</head>";
}
//Функция переключателя страниц
//$p1 - URL (Example: /news/main/page)
//$p2 - Текущая страница ($Param['page'])
//$p3 - Кол-во новостей
//$p4 - Кол-во новостей на странице
function PageSelector($p1, $p2, $p3, $p4 = 5) {
$Page = $p3[0] / $p4; // делим кол-во новостей на кол-во записей на странице
if ($Page > 1) { //А нужен ли переключатель ?
echo '<div class = "PageSelector">';
for ($i = ($p2 - 3); $i < ($Page + 1); $i++) {
if ($i > 0 and $i <= ($p2 + 3)) {
if ($p2 == $i)
$Swch = 'SwchItemCur';
else $Swch = 'SwchItem';
echo '<a class = "page_selector_a '.$Swch.'" href = "'.$p1.$i.'">'.$i.'</a>';
}
}
echo '</div>';
}
}
//MenuHead
function Menu() {
if ($_SESSION['USER_LOGIN_IN'] != 1)
$Menu = "<a href = '/register'><div class = 'Menu'>Регистрация</div></a>
<a href = '/login'><div class = 'Menu'>Вход</div></a>";
else $Menu = "<a href = '/profile'><div class = 'Menu'>Профиль</div></a>
<a href = '/guestbook'><div class = 'Menu'>Гостевая книга</div></a>";
echo "<div class = 'MenuHead'>
<a href = '/'><div class = 'Menu'>Главная</div></a>
<a href = '/news'><div class = 'Menu'>Новости</div></a>
$Menu
</div>";
}
//<footer>
function Footer() {
echo "<footer class='footer'>
Orange_Men<br> Все права защищены
</footer>";
}
?>
<head>
<meta charset = "utf-8">
</head>
material.php
$Row = mysqli_fetch_assoc(mysqli_query($CONNECT, 'SELECT name, cat, readed, added, text, date FROM news WHERE id = '.$Param['id']));
if (!$Row['name'])
MessageSend(1, 'Произошла ошибка, обратитесь к администратору.', '/news');
mysqli_query($CONNECT, 'UPDATE news SET readed = readed + 1 WHERE id = '.$Param['id']);
?>
<!DOCTYPE html>
<html>
<?php Head($Row['name']);?>
<body>
<div class="wrapper">
<div class="header"></div>
<div class="content">
<?php Menu();
MessageShow();
?>
</div>
<?php Footer() ?>
</div>
</body>
</html>
update3:
в таблице (БД) изменил столбец 'read' на 'readed'. Всё, ошибок нет. Кто подскажет почему SQL так реагирует ?
$_COOKIEдоверять нельзя. – Visman Oct 15 '15 at 06:44