[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не выводятся статьи с базы данных
maruo
люди столкнулся с проблемой при написании движка,
Ситуация такая :
на главной странице выводятся все статьи которые есть в базе данных,
Так же есть меню с разделами, каждый раздел отвечает за определенную тематику,
Суть проблемы в том что с БД на главную страницу выводятся, а вот по разделам нет, и пришлось написать в конфиге:
ini_set('display_errors', 'on');
ini_set('error_reporting', E_ALL);


и мне выдало такие вот ошибки:

Notice: Undefined index: view in Z:\home\test.local\www\index.php on line 10
[Денвер: показать возможную причину ошибки]
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:\home\test.local\www\index.php:10) in Z:\home\test.local\www\lib\modules_class.php on line 22

Notice: Undefined variable: text in Z:\home\test.local\www\lib\modules_class.php on line 56

Notice: Undefined variable: text in Z:\home\test.local\www\lib\modules_class.php on line 70

Notice: Undefined variable: text in Z:\home\test.local\www\lib\modules_class.php on line 99

index.php

<?php
mb_internal_encoding("UTF-8");
require_once "lib/database_class.php";
require_once "lib/frontpagecontent_class.php";
require_once "lib/sectioncontent_class.php";
require_once "lib/articlecontent_class.php";
require_once "lib/regcontent_class.php";

$db = new DataBase();
$view = $_GET["view"];
switch ($view) {
case "":
$content = new FrontPageContent($db);
break;
case "section":
$content = new SectionContent($db);
break;
case "article":
$content = new ArticleContent($db);
break;
case "reg":
$content = new RegContent($db);
break;
default: exit;
}

echo $content->getContent();

?>


database_class.php

<?php
require_once "config_class.php";
require_once "checkvalid_class.php";

class DataBase {

private $config;
private $mysqli;
private $valid;

public function __construct() {
$this->config = new Config ();
$this->valid = new CheckValid();
$this->mysqli = new mysqli($this->config->host, $this->config->user, $this->config->password, $this->config->db);
$this->mysqli->query("SET NAMES 'utf8'");
}

private function query($query) {
return $this->mysqli->query($query);
}

private function select($table_name, $fields, $where = "", $order = "", $up = true, $limit = "") {
for ($i = 0; $i < count ($fields); $i++) {
if ((strpos($fields[$i], "(") === false) && ($fields[$i] != "*")) $fields[$i] = "`".$fields[$i]."`";
}
$fields = implode(",",$fields);
$table_name = $this->config->db_prefix.$table_name;
if (!$order) $order = "ORDER BY `id`";
else {
if ($order != "RAND()") {
$order = "ORDER BY `$order`";
if (!$up) $order .= " DESC";
}
else $order = "ORDER BY $order";
}
if ($limit) $limit = "LIMIT $limit";
if ($where) $query = "SELECT $fields FROM $table_name WHERE $where $order $limit";
else $query = "SELECT $fields FROM $table_name $order $limit";
$result_set = $this->query($query);
if (!$result_set) return false;
$i = 0;
while ($row = $result_set->fetch_assoc()) {
$data[$i] = $row;
$i++;
}
$result_set->close();
return $data;
}

public function insert ($table_name, $new_values) {
$table_name = $this->config->db_prefix.$table_name;
$query = "INSERT INTO $table_name (";
foreach ($new_values as $field => $value) $query .= "`".$field."`,";
$query = substr($query, 0, -1);
$query .= ") VALUES (";
foreach ($new_values as $value) $query .= "'".addslashes($value)."',";
$query = substr($query, 0, -1);
$query .= ")";
return $this->query($query);
}

private function update($table_name, $upd_fields, $where) {
$table_name = $this->config->db_prefix.$table_name;
$query = "UPDATE $table_name SET";
foreach ($upd_fields as $field => $value) $query .= "`$field` = '".addslashes($value)."',";
$query = substr($query, 0, -1);
if ($where) {
$query .= " WHERE $where";
return $this->query($query);
}
else return false;
}

public function delete($table_name, $where = "") {
$table_name = $this->config->db_prefix.$table_name;
if ($where) {
$query = "DELETE FROM $table_name WHERE $where";
return $this->query($query);
}
else return false;
}

public function deleteAll($table_name) {
$table_name = $this->config->db_prefix.$table_name;
$query = "TRUNCATE TABLE `$table_name`";
return $this->query($query);
}

public function getField($table_name, $field_out, $field_in, $value_in) {
$data = $this->select($table_name, array($field_out), "`$field_in`='".addslashes($value_in)."'");
if (count($data) != 1) return false;
return $data[0][$field_out];
}

public function getFieldOnID($table_name, $id, $field_out) {
if (!$this->exitsID($table_name, $id)) return false;
return $this->getField($table_name, $field_out, "id", $id);
}

public function getAll($table_name, $order, $up) {
return $this->select($table_name, array("*"), "", $order, $up);
}

public function getAllOnField($table_name, $field, $value, $order, $up) {
return $this->select($table_name, array("*"), "`$field`='".addslashes($value)."'", $order, $up);
}

public function getLastID($table_name) {
$data = $this->select($table_name, array("MAX (`id`)"));
return $data[0]["MAX(`id`)"];
}

public function deleteOnID($table_name, $id) {
if (!$this->exitsID($table_name, $id)) return false;
return $this->delete($table_name, "`id` = '$id'");

}

public function setField($table_name, $field, $value, $field_in, $value_in) {
return $this->update($table_name, array ($field => $value), "`$field_in` = '".addslashes($value_in)."'");
}

public function setFieldOnID($table_name, $id, $field, $value) {
if (!$this->existsID($table_name, $id)) return false;
return $this->setField($table_name, $field, $value, "id", $id);
}

public function getElementOnID($table_name, $id) {
if (!$this->existsID($table_name, $id)) return false;
$arr = $this->select($table_name, array("*"), "`id` = '$id'");
return $arr[0];
}

public function getRandomElements($table_name, $count) {
return $this->select($table_name, array("*"), "", "RAND()",true, $count);
}

public function getCount($table_name) {
$data = $this->select($table_name, array("COUNT(`id`)"));
return $data[0]["COUNT(`id`)"];
}

public function isExists($table_name, $field, $value) {
$data = $this->select($table_name, array("id"), "`$field` = '".addslashes($value)."'");
if (count($data) === 0) return false;
return true;
}

private function existsID($table_name, $id) {
if (!$this->valid->validID($id)) return false;
$data = $this->select($table_name, array("id"), "`$field` = '".addslashes($id)."'");
if (count($data) === 0) return false;
return true;
}

public function __destruct() {
if ($this->mysqli) $this->mysqli->close();
}
}


?>


modules_class.php

<?php
require_once "config_class.php";
require_once "article_class.php";
require_once "section_class.php";
require_once "user_class.php";
require_once "menu_class.php";
require_once "banner_class.php";
require_once "message_class.php";

abstract class Modules {

protected $config;
protected $article;
protected $section;
protected $user;
protected $menu;
protected $banner;
protected $message;
protected $data;

public function __construct($db) {
session_start();
$this->config = new Config();
$this->article = new Article($db);
$this->section = new Section($db);
$this->user = new User($db);
$this->menu = new Menu($db);
$this->banner = new Banner($db);
$this->message = new Message();
$this->data = $this->SecureData($_GET);
}

public function getContent() {
$sr["title"] = $this->getTitle();
$sr["meta_desc"] = $this->getDescription();
$sr["meta_key"] = $this->getKeyWords();
$sr["menu"] = $this->getMenu();
$sr["auth_user"] = $this->getAuthUser();
$sr["banners"] = $this->getBanners();
$sr["top"] = $this->getTop();
$sr["middle"] = $this->getMiddle();
$sr["bottom"] = $this->getBottom();
return $this->getReplaceTemplate($sr, "main");
}

abstract protected function getTitle();
abstract protected function getDescription();
abstract protected function getKeyWords();
abstract protected function getMiddle();

protected function getMenu() {
$menu = $this->menu->getAll();
for ($i = 0; $i < count($menu); $i++) {
$sr["title"] = $menu[$i]["title"];
$sr["link"] = $menu[$i]["link"];
$text .= $this->getReplaceTemplate($sr, "menu_item");
}
return $text;
}

protected function getAuthUser() {
$sr["message_auth"] = "";
return $this->getReplaceTemplate($sr, "form_auth");
}

protected function getBanners() {
$banners = $this->banner->getAll();
for ($i = 0; $i < count($banners); $i++) {
$sr["code"] = $banners[$i]["code"];
$text .= $this->getReplaceTemplate($sr, "banner");
}
return $text;
}

protected function getTop() {
return "";
}

protected function getBottom() {
return "";
}

private function secureData($data) {
foreach($data as $key => $value) {
if (is_array($value)) $this->secureData($value);
else $data[$key] = htmlspecialchars($value);
}
return $data;
}

protected function getBlogArticles($articles, $page) {
$start = ($page - 1) * $this->config->count_blog;
$end = (count($articles) > $start + $this->config->count_blog)? $start + $this->config->count_blog: count($articles);
for ($i = $start; $i < $end; $i++) {
$sr["title"] = $articles[$i]["title"];
$sr["intro_text"] = $articles[$i]["intro_text"];
$sr["date"] = $this->formatDate($articles[$i]["date"]);
$sr["link_article"] = $this->config->address."?view=article&apm;id=".$articles[$i]["id"];
$text .= $this->getReplaceTemplate($sr, "article_intro");
}
return $text;
}

protected function formatDate($time) {
return date("Y-m-d H:i:s", $time);
}

protected function getPagination($count, $count_on_page, $link){
$count_pages = ceil($count / $count_on_page);
$sr["number"] = 1;
$sr["link"] = $link;
$pages = $this->getReplaceTemplate($sr, "number_page");
$sym = (strpos($link, "?") !== false)? "&": "?";
for ($i = 2; $i <= $count_pages; $i++) {
$sr["number"] = $i;
$sr["link"] = $link.$sym."page=$i";
$pages .= $this->getReplaceTemplate($sr, "number_page");
}
$els["number_pages"] = $pages;
return $this->getReplaceTemplate($els, "pagination");
}

protected function getTemplate($name) {
$text = file_get_contents($this->config->dir_tmpl.$name.".tpl");
return str_replace("%address%", $this->config->address, $text);
}

protected function getReplaceTemplate($sr, $template) {
return $this->getReplaceContect($sr, $this->getTemplate($template));
}

private function getReplaceContect($sr, $content) {
$search = array();
$replace = array();
$i = 0;
foreach ($sr as $key => $value) {
$search[$i] = "%$key%";
$replace[$i] = $value;
$i++;
}
return str_replace($search, $replace, $content);
}

}

?>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.