Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Jak poprawić 4 błędy (Warning)
r3pilc3
post
Post #1





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 22.07.2012

Ostrzeżenie: (0%)
-----


Witam
Jak poprawić 4 błędy, które się pojawiają wraz z nową wersją XAMPP, który posiada nową wersję PHP 5.4.4

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

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

plik controller_base.php:
  1. <?php
  2. Abstract Class Controller_Base {
  3. protected $registry;
  4. function __construct($registry, $models, $addons, $layout, $controller) {
  5. $this->registry = $registry;
  6. $this->session = $registry->session;
  7. $this->error = $registry->error;
  8. $this->text = $registry->text;
  9. $this->router = $registry->router;
  10. $this->template = $registry->template;
  11. $this->db = $registry->db;
  12. foreach($models as $model){
  13. $this->model->$model = $registry->model->$model;
  14. }
  15. if($addons)
  16. foreach($addons as $addon){
  17. $this->addon->$addon = $registry->addon->$addon;
  18. }
  19. $this->template->layout = $layout;
  20. $this->here = $controller;
  21. }
  22. abstract function index($args=null,$post=null);
  23. function addon($addon){
  24. return 'http://'.server_addr.site_addr.'core/addons/'.$addon;
  25. }
  26. }
  27. ?>


plik router.php:
-linia 118:
  1. $this->registry->addon->$addon = $addon2;

oraz linia 131:
  1. $this->registry->model->$name = $model;



Proszę o pomoc.

Ten post edytował r3pilc3 4.08.2012, 22:30:21
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


Zapewne obiekt $registry->model->$model jest pusty lub nie istnieje
  1. foreach($models as $model){
  2.  
  3. var_dump($registry->model->$model);
  4. die();
  5. }


Ten post edytował CuteOne 4.08.2012, 22:36:39
Go to the top of the page
+Quote Post
CuteOne
post
Post #3





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

Ostrzeżenie: (0%)
-----


Odpowiedź jest dość prosta odwołujesz się do czegoś co nie istnieje. Wcześniej dany obiekt musi być zainicjowany
Go to the top of the page
+Quote Post
bpskiba
post
Post #4





Grupa: Zarejestrowani
Postów: 340
Pomógł: 49
Dołączył: 3.07.2009
Skąd: Rzeszów

Ostrzeżenie: (0%)
-----


Twój problem nie jest związany z wersją php lub xamppa, ale z konfiguracją.
Komunikat, który widzisz jest ostrzeżeniem, a nie błędem. Świadczy o niestaranności programisty, ale strona może działać prawidłowo.
Nowsze wersje php mają domyślnie ustawione wyświetlanie warning'ów w przeciwieństwie do starszych wersji
Aby "na szybko" rozwiązać sobie problem po prostu w php.cnf (lub ini) wyłącz wyświetlanie błędów i ostrzeżeń.
Oczywiście wyłączenie komunikatu nie leczy przyczyny.......
Go to the top of the page
+Quote Post
bpskiba
post
Post #5





Grupa: Zarejestrowani
Postów: 340
Pomógł: 49
Dołączył: 3.07.2009
Skąd: Rzeszów

Ostrzeżenie: (0%)
-----


Podrążę temat dalej (IMG:style_emoticons/default/smile.gif)
a może zapytam o parametry register_globals i save_mode ...........
Go to the top of the page
+Quote Post
greycoffey
post
Post #6





Grupa: Zarejestrowani
Postów: 320
Pomógł: 29
Dołączył: 3.04.2010

Ostrzeżenie: (20%)
X----


Odwołujesz się odrazu do $this->model->[etc..], nie mając jeszcze nic w $this->model. PHP próbuje pobrać $this->model, i w pobranym (zakładanym) obiekcie wyszukać ciąg dalszy. Jednak $this->model === null. Ja to tak widzę. Do tego zmienne klasowe nie są nigdzie zadekralowane, to też może być problem.

<OFFTOP>
Cytat
Jestę początkujacy

(IMG:http://i1.kwejk.pl/site_media/obrazki/2012/07/a4b0974a7032d6b8e997159d6e381667.jpg)
</OFFTOP>
Go to the top of the page
+Quote Post
klocu
post
Post #7





Grupa: Zarejestrowani
Postów: 291
Pomógł: 45
Dołączył: 21.08.2007

Ostrzeżenie: (0%)
-----


Nie no litości.

Masz warning tej samej treści co dopiero poprawiłeś. To nawet nie zastanawiając się za długo i mając dodatkowo wgląd w pełny kod wpadłbym na pomysł, że problem leży w tym samym. TYM SAMYM.

Czyli odwołujesz się do obiektu nie stworzonego wcześniej. (@greycoffey już wyjaśnił problem)
Za ubijanie ostrzeżeń i notyfikacji to ja nie wiem - zawsze w fazie produkcji włączam wyświetlane wszystkiego.

--
Cytat
Jestem początkujący

To nie zwalnia cię z logicznego myślenia i w miarę samodzielnego rozwiązywania problemów.
Przedstawiłeś problem, koledzy przedstawili ci rozwiązanie, ale za ciebie nie napiszą całego skryptu i nie poprawią każdej błahostki.
No to już - czas zakasać rękawy i zrobić to ANALOGICZNIE jak wcześniejsze błędy (plik wskazany, numery linii też)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 22:07