konto usunięte
Temat: Strona napisana w php. Wyświetla się: Warning. Pomoc w...
Witam.Mam stronę na zasadzie frameworka wiele plików.php połączonych ze sobą oraz baza danych.
Projekt składa się tylko ze strony głównej oraz podstrony przeznaczonej wyłącznie dla administratora.
Pragnę swój projekt mieć w XAMPP 1.8.0, który posiada php 5.4.4.
Jednak wraz z nowszą wersją php napotykam następujące problemy.
-Na stronie głównej wyświetlają mi się 2 błędy.
-Na stronie logowania do panelu administracyjnego mam te same 2 błędy oraz 2 dodatkowe.:
______________________________________________________________
Plik controller_base.php wyświetlał 2 Warningi.
Więc w tym pliku controller_base.php są błędy w linii: 13 i 17.
-Warning: Creating default object from empty value in C:\xampp\htdocs\Sklep_jubilerski\core\classes\controller_base.php on line 13
-Warning: Creating default object from empty value in C:\xampp\htdocs\Sklep_jubilerski\core\classes\controller_base.php on line 17
Oto kod pliku controller_base.php:
<?php
Abstract Class Controller_Base {
protected $registry;
function __construct($registry, $models, $addons, $layout, $controller) {
$this->registry = $registry;
$this->session = $registry->session;
$this->error = $registry->error;
$this->text = $registry->text;
$this->router = $registry->router;
$this->template = $registry->template;
$this->db = $registry->db;
foreach($models as $model){
$this->model->$model = $registry->model->$model; //linia 13
}
if($addons)
foreach($addons as $addon){
$this->addon->$addon = $registry->addon->$addon; //linia17
}
$this->template->layout = $layout;
$this->here = $controller;
}
abstract function index($args=null,$post=null);
function addon($addon){
return 'http://'.server_addr.site_addr.'core/addons/'.$addon;
}
}
?>
Proszę o pomoc w poprawie tego pliku. Porady, sugestie czy rozwiązanie problemu mile widziane - piszcie na jakikolwiek pomysł wpadniecie.
_____________________________________________________
Natomiast plik router.php wyświetlał 2 Warningi w linii: 118 i 131.
-Warning: Creating default object from empty value in C:\xampp\htdocs\Sklep_jubilerski\core\classes\router.php on line 118
-Warning: Creating default object from empty value in C:\xampp\htdocs\Sklep_jubilerski\core\classes\router.php on line 131
Oto kod pliku router.php:
<?php
Class Router {
private $registry;
private $path;
private $args = array();
function __construct($registry) {
$this->registry = $registry;
}
function setPath($path) {
$path .= DIRSEP;
if (is_dir($path) == false) {
throw new Exception ('Invalid controller path: `' . $path . '`');
}
$this->path = $path;
}
private function getController(&$file, &$controller, &$action, &$args) {
$route = (empty($_GET['route'])) ? '' : $_GET['route'];
if (empty($route)) { $route = 'home'; }
// Get separate parts
$route = trim($route, '/\\');
$parts = explode('/', $route);
// Find right controller
$cmd_path = $this->path;
foreach ($parts as $part) {
$fullpath = $cmd_path . $part;
// Is there a dir with this path?
if (is_dir($fullpath)) {
$cmd_path .= $part . DIRSEP;
array_shift($parts);
continue;
}
// Find the file
if (is_file($fullpath . iext)) {
$controller = $part;
array_shift($parts);
break;
}
}
if (empty($controller)) { $controller = 'home'; };
// Get action
$action = array_shift($parts);
if (empty($action)) { $action = 'index'; }
$file = $cmd_path . $controller . iext;
$args = $parts;
}
function delegate() {
// Analyze route
$this->getController($file, $controller, $action, $args);
// File available?
$controller_name=$controller;
if (is_readable($file) == false) {
die ('404 - Controller File Not Found');
}
// Include the file
include ($file);
// Initiate the class
$class = 'Controller_' . $controller;
/// LANGUAGE
if($controller=="admin")
$name='pl';
else
$name=$_SESSION['language'];
end; //linia 88
if($name=="") $name="eng";
$mfile=site_path . 'views' . DIRSEP . 'texts' . DIRSEP . $name . iext;
if (is_readable($mfile) == false) {
die ('404 - Texts File Not Found: '.$mfile);
}
include($mfile);
$text_name='Text_'.$name;
$text = new $text_name($this->registry);
$this->registry->text = $text;
////////////
if($addons)
foreach($addons as $addon){ //linia 107
$mfile=core_path . 'addons' . DIRSEP .$addon . iext;
if (is_readable($mfile) == false) {
die ('404 - Addon File Not Found');
}
include($mfile);
$addon_name='Addon_' . $addon;
$addon2 = new $addon_name($this->registry);
$this->registry->addon->$addon = $addon2; //linia 118
}
foreach($models as $name){
$mfile=site_path . 'models' . DIRSEP . $name . iext;
if (is_readable($mfile) == false) {
die ('404 - Model File Not Found');
}
include($mfile);
$model_name='Model_' . $name;
$model = new $model_name($this->registry);
$this->registry->model->$name = $model; //linia 131
}
$controller = new $class($this->registry, $models, $addons, $layout, $controller); //linia 135
// Action available?
if (is_callable(array($controller, $action)) == false) {
$this->redirect('home/deadend/'.$controller_name.'/'.$action);
die ('404 - Controller Action Not Found');
}
// Run action
if(is_callable(array($controller, 'BeforeFilter')) == true)
$controller->BeforeFilter($action,$controller_name,$args,$_POST);
$controller->$action($args,$_POST);
}
function redirect($route){
header("Location: ".site_addr.$route);
}
}
?>Adam Dolcan edytował(a) ten post dnia 09.08.12 o godzinie 20:16