Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> Poprawa zawiadonień 'Notice', framework5.0 w XAMPP z php 5.4.4
r3pilc3
post 31.07.2012, 15:07:48
Post #1





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

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


Witam.
Mam frameworka 5.0
Otwierając go w XAMPP 1.8.0, który posiada php 5.4.4 nie wyświetlają się błędy (Warning).
Jak w głównym pliku index.php dodam pełne raportowanie błędów:
  1. error_reporting(E_ALL | E_STRICT);

To wyświetlają mi się zawiaomienia.
Prosze o pomoc w ich rozwiazaniu.

1) W pliku template.php wyświetla mi się 1 zawiadomienie:
-Notice: Use of undefined constant end - assumed 'end' in C:\xampp\htdocs\Sklep_jubilerski\core\classes\router.php on line 88
Oto linia 88:

i to jak dobrze rozumiem, muszę zamienić na:
  1. 'end'

Błąd się nie wyświetla więc myślę, że dobrze poprawiłem. "Jeśli się omylę to mnie poprawcie" -JPII.

Teraz reszta co nie umię poprawić:

2) W pliku sesion.php wyświetla mi się 1 zaiwadomienie:
-Notice: Undefined index: flash in C:\xampp\htdocs\Sklep_jubilerski\core\classes\session.php on line 15
Oto linia 15:
  1. $_SESSION[$key]=$GLOBALS[$key];


ps. Najpierw miałem w tej linii (jako framework5.0):

Wraz z nowszą wersją php 5.4.4 zgonie z wymogami zastapiłem właśnie na:
  1. $_SESSION[$key]=$GLOBALS[$key];

Czyli jak poprawiłem to już mi się Warning nie wyświetla -ale jest jakieś zawiadomienie, które nierozumie.

3)plik kolejny ma 1 zawiadomienie:
Notice: Undefined variable: args in C:\xampp\htdocs\Sklep_jubilerski\app\models\admin.php on line 27
Oto linia 27:
  1. return $args;



4) Plik catalog.php - 1 zawiadomienie się wyświetla:
-Notice: Undefined property: Registry::$addon in C:\xampp\htdocs\Sklep_jubilerski\app\models\catalog.php on line 10
Oto linia 10:
  1. $this->addon=$registry->addon;

co tu muszę poprawić?


4)plik kolejny ma 1 zawiadomienie:
Notice: Undefined variable: args in C:\xampp\htdocs\Sklep_jubilerski\app\models\admin.php on line 27
Oto linia 27:
  1. return $args;



5)W pliku admin.php wyświetlaja się reszta zawiadomień:

-Notice: Undefined index: sid in C:\xampp\htdocs\Sklep_jubilerski\app\controllers\admin.php on line 179
  1. if($_GET['sid']!='')

-Notice: Undefined index: Admin_login_details in C:\xampp\htdocs\Sklep_jubilerski\app\controllers\admin.php on line 187
  1. $this->template->set('login_details', $_SESSION['Admin_login_details']);

-Notice: Undefined index: Admin_login_details in C:\xampp\htdocs\Sklep_jubilerski\app\controllers\admin.php on line 188
  1. $this->template->set('availableLanguages', $this->model->admin->getAdminLanguages($_SESSION['Admin_login_details']['id']));

-Notice: Undefined variable: message in C:\xampp\htdocs\Sklep_jubilerski\app\controllers\admin.php on line 203
  1. $this->__checklogin($action,$controller,$args,$post,$message);

-Notice: Undefined index: activeon in C:\xampp\htdocs\Sklep_jubilerski\app\controllers\admin.php on line 240
  1. if($option['activeon'])

-Notice: Undefined index: submenu in C:\xampp\htdocs\Sklep_jubilerski\app\controllers\admin.php on line 247
  1. if($option['submenu'])

-Notice: Undefined index: active in C:\xampp\htdocs\Sklep_jubilerski\app\controllers\admin.php on line 259
-Notice: Undefined index: submenu in C:\xampp\htdocs\Sklep_jubilerski\app\controllers\admin.php on line 259
  1. array_push($menu,array('name'=>$option['name'],'url'=>$option['url'],'active'=>$option['active'], 'submenu'=>$option['submenu']));

-Notice: Undefined index: Admin in C:\xampp\htdocs\Sklep_jubilerski\app\controllers\admin.php on line 267
  1. if($_COOKIE['Admin']

-Notice: Undefined index: Admin in C:\xampp\htdocs\Sklep_jubilerski\app\controllers\admin.php on line 305
  1. $doLogin = $this->model->admin->check_cookie($_COOKIE['Admin']);


Bradzo proszę o pomoc.

Ten post edytował r3pilc3 31.07.2012, 15:45:56
Go to the top of the page
+Quote Post
rzymek01
post 31.07.2012, 17:01:45
Post #2





Grupa: Zarejestrowani
Postów: 592
Pomógł: 62
Dołączył: 3.08.2006

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


A po angielsku umiesz czytać?
jeśli nie to pozostaje słownik i/lub translator.

Sorry, ale przy błędach typu "Undefined variable: args" nie ma czego tłumaczyć ...


--------------------
:]
Go to the top of the page
+Quote Post
rzymek01
post 31.07.2012, 18:30:43
Post #3





Grupa: Zarejestrowani
Postów: 592
Pomógł: 62
Dołączył: 3.08.2006

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


pozwól, że zapytam czy kiedykolwiek pisałeś coś w php?


--------------------
:]
Go to the top of the page
+Quote Post
r3pilc3
post 31.07.2012, 18:45:27
Post #4





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

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


Jestem początkujący.
Dokładniej tłumacząc to 1sza klasa 1sza lekcja.

Natomiast co mam zrobić z zawiadomieniem:?
Notice: Undefined index: NAZWA in C\...
Go to the top of the page
+Quote Post
rzymek01
post 31.07.2012, 18:49:29
Post #5





Grupa: Zarejestrowani
Postów: 592
Pomógł: 62
Dołączył: 3.08.2006

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


'Undefined index "
to znaczy niezdefiniowany indeks ...
... czyli nie ma takiego indeksu ...

co możesz z tym zrobić?
- zobaczyć czy tworzysz kiedykolwiek taki indeks, czy nie jest to błąd logiczny, może literówka ...


--------------------
:]
Go to the top of the page
+Quote Post
r3pilc3
post 31.07.2012, 18:54:28
Post #6





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

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


Czyli w ['...'] jest index?
  1. ['index']

W jakim sęsie mam sprawdzić czy był tworzony?



Ten post edytował r3pilc3 31.07.2012, 19:10:05
Go to the top of the page
+Quote Post
rzymek01
post 31.07.2012, 19:00:58
Post #7





Grupa: Zarejestrowani
Postów: 592
Pomógł: 62
Dołączył: 3.08.2006

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


wybacz, nie mam ochoty o tym pisać,
weź do ręki kurs/książkę o php i przeczytaj ze zrozumieniem ...

PS. dobra, napiszę

- tak, w każdym języku programowania jak masz tablicę, to w nawiasach kwadratowych jest indeks
- jeśli wcześniej nie było przypisania $tablica['index'] = 'jakaś wartość'; to chyba logiczne, że nie ma takiego indeksu, bo niby skąd miałby się wziąć?


--------------------
:]
Go to the top of the page
+Quote Post
r3pilc3
post 31.07.2012, 19:05:00
Post #8





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

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


Czyli jak mam index: Admin bez wartości to musze wpisać:
  1. $doLogin = $this->model->admin->check_cookie($_COOKIE['Admin']=1);

czy nie w tej linii ale 1linie wyżej:
  1. $_COOKIE['Admin']=1


Ja się ucze php ale nie chcę od podstaw samych. Patrzę filmiku na YT czytam coś tam w Gugl .. ale początki dopiero.
I se zdobylem frameworka, ktorego chce badać

---
---------------
Jeszcze ostatnie zostało:
A jeśli chodzi o:
-Notice: Undefined property: Registry::$addon in C:\xampp\htdocs\Sklep_jubilerski\app\models\catalog.php on line 10
  1. this->addon=$registry->addon;

To znaczy niezindentyfikowana właściwość? co mam tu wymęczyć?

Ten post edytował r3pilc3 31.07.2012, 19:10:39
Go to the top of the page
+Quote Post
rzymek01
post 31.07.2012, 19:15:41
Post #9





Grupa: Zarejestrowani
Postów: 592
Pomógł: 62
Dołączył: 3.08.2006

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


nie ma takiej składowej klasy,
nie ucz się z filmików z YT, masakra smile.gif

naprawdę weź do ręki porządną lekturę,
może zacznij od innego języka niż php, życie będzie bardziej kolorowe tongue.gif


--------------------
:]
Go to the top of the page
+Quote Post
r3pilc3
post 31.07.2012, 19:21:23
Post #10





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

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


Tylko PHP. Nie odpuszczam. Naumie sie kiedys.

Z około 6 zawiadomieniami sobie poradziłem.
Jest taka funkcja isset

  1. if(file_exists($path))

Poprawić na:
  1. if(file_exists(isset($path)))


Ale połowa zawiadomień jeszcze mi została ;] Proszę o pomoc.

Ten post edytował r3pilc3 1.08.2012, 15:56:02
Go to the top of the page
+Quote Post
sazian
post 1.08.2012, 22:09:36
Post #11





Grupa: Zarejestrowani
Postów: 1 045
Pomógł: 141
Dołączył: 19.09.2006
Skąd: B-tów

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


szczerze ? wyłącz raportowanie "na poziomie notatek" bo oszalejesz
Go to the top of the page
+Quote Post
Mephistofeles
post 1.08.2012, 22:28:38
Post #12





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


Bzdura. Dobry kod nie powinien generować błędów.
Go to the top of the page
+Quote Post
r3pilc3
post 2.08.2012, 12:34:04
Post #13





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

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


Sprawa tak się ma, ze nabyłem frameworka wersję 5.0 i uczę się PHP - jestem początkującym.
Sprawa się tak ma, że skończyłem inż grafika i nie uczyłem się PHP. Teraz chodzę na mgr sieci. I chce mieć prace mgr związaną z grafiką.
Mam pół roku aby zrobić/przerobić frameworka (nazwy folderów czy zmienny itd) i zrozumieć o co w nim chodzi. Ten framework jest połączony z plikiem Flash w których są np przyciski logi itp. Flash umiem.

Chciałbym mieć w swoim kodzie pełne raportowanie błędów w swojej pracy.
Pracę zrobię w XAMPP 1.8.0, który posiada PHP 5.4.4 czyli jak za 2miesiące wyjdzie nowszy XAMPP z nowsza wersją PHP to nie będę już zamieniał i na nowo poprawiał nowe błędy, które się pojawią wraz z nowszą wersją PHP.

______________________________________

Zacznę temat od nowa. Oto zawiadomienie, które chyba jest najtrudniejsze do poprawy:
Najpierw wytłumaczę pewną kwestię. W framweorku php 5.0 miałem:
session_unregister($key);
W nowszej wersji php był Warning. Więc poprawiłem zgonie z wymogami na:
$_SESSION[$key]=$GLOBALS[$key];
  1. http://php.net/manual/pl/function.session-register.php

Już Warning nie ma. Ale jak włączę pełne raportowanie błędów to jest zawiadomienie:
- Notice: Undefined index: $key in C:\xampp\htdocs\sklep_jubilerski\core\classes\session.php on line 13
ps. jak to mam rozumieć skoro na stronie MANUAL PHP jest w nawiasach kwadratowych np. $key bez cudzysłowów. To mam pisać [$key] czy ['$key']? Czyli w całym frameworku muszę poprawić każdy: [index] na: ['index']?

Oto plik session.php:
  1. <?php
  2. Class Session {
  3. private $registry;
  4. function __construct($registry) {
  5. $this->registry = $registry;
  6. }
  7.  
  8. function set($key, $var) {
  9. $_SESSION[$key]=$var;
  10. return true;
  11. }
  12. function delete($key){
  13. $_SESSION[$key]=$GLOBALS[$key];
  14. return true;
  15. }
  16. }
  17. ?>


ps. Jeśli dobrze rozumiem to zawiadomienie to muszę przypisać:
  1. $table['$key']='a'

I to muszę w tym pliku zrobić?
Wyskakuje mi komunikat:
-Parse error: syntax error, unexpected '$table' (T_VARIABLE), expecting function (T_FUNCTION) in C:\xampp\htdocs\sklep_jubilerski\core\classes\session.php on line 7
Co robię źle?

Ten post edytował r3pilc3 2.08.2012, 13:14:58
Go to the top of the page
+Quote Post
mls
post 2.08.2012, 18:08:09
Post #14





Grupa: Zarejestrowani
Postów: 677
Pomógł: 89
Dołączył: 31.08.2003
Skąd: Warszawa

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


Polecam, choć to naprawdę ostateczna opcja, zakup jakiejkolwiek dobrej książki dot. programowania w PHP5. Serio.
Ogólnie, polecam zdobycie jakichkolwiek materiałów o programowaniu. W sumie w czymkolwiek...

Cytat(r3pilc3 @ 2.08.2012, 13:34:04 ) *
Najpierw wytłumaczę pewną kwestię. W framweorku php 5.0 miałem:
session_unregister($key);
W nowszej wersji php był Warning. Więc poprawiłem zgonie z wymogami na:
$_SESSION[$key]=$GLOBALS[$key];


Nie ma takich wymogów. Co więcej, powyższy zapis jest kompletnie bez sensu. Należy zrozumieć najpierw co robi funkcja session_unregister. Manual istnieje nawet po polsku!
Prawidłowy zapis powyższego to
  1. unset($_SESSION[$key]);


Cytat(r3pilc3)
- Notice: Undefined index: $key in C:\xampp\htdocs\sklep_jubilerski\core\classes\session.php on line 13
ps. jak to mam rozumieć skoro na stronie MANUAL PHP jest w nawiasach kwadratowych np. $key bez cudzysłowów. To mam pisać [$key] czy ['$key']? Czyli w całym frameworku muszę poprawić każdy: [index] na: ['index']?


Pozostawię to właściwie bez komentarza - polecam spojrzeć na pierwszą linijkę mojego posta. A później polecam odwiedzić http://php.net/manual/pl/language.variables.php.

Cytat(r3pilc3)
ps. Jeśli dobrze rozumiem to zawiadomienie to muszę przypisać:
  1. $table['$key']='a'

I to muszę w tym pliku zrobić?


Absolutnie nie.
  1. Class Session
  2. {
  3. private $registry;
  4.  
  5. function __construct ($registry)
  6. {
  7. $this->registry = $registry;
  8. }
  9.  
  10. function set ($key, $var)
  11. {
  12. $_SESSION[$key] = $var;
  13. return true;
  14. }
  15.  
  16. function delete ($key)
  17. {
  18. if (isset($_SESSION[$key]))
  19. unset($_SESSION[$key]);
  20. return true;
  21. }
  22. }


Temat nadaje się zdecydowanie do podforum Przedszkole.


--------------------
Go to the top of the page
+Quote Post
r3pilc3
post 2.08.2012, 18:41:30
Post #15





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

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


Dziękuję za poprawną poprawę. Już nie ma tego zawiadomienia.
Ale wystąpiło w następie tej poprawy inne zawiadomienie, które jest w innym pliku:

-Notice: Undefined index: MBeforeLoginTempM in C:\xampp\htdocs\sklep_jubilerski\app\controllers\admin.php on line 314

Oto część kodu z tego pliku: (linia 314 w //komentarzu)
  1. if(isset($_COOKIE['Admin'])){
  2. $doLogin = $this->model->admin->check_cookie($_COOKIE['Admin']);
  3. if($doLogin==true){ $this->router->redirect('admin/index'); }
  4. }
  5.  
  6. $_SESSION["key"]=md5(uniqid(rand(), true));
  7.  
  8. $this->template->set('token', $this->addon->token->token('set'));
  9.  
  10. $this->template->set('message', $_SESSION['MBeforeLoginTempM']); //linia 314
  11.  
  12.  
  13. $this->template->set('loginform',$this->template->element('admin/login',array('token'=>$this->addon->token->token('set'))), true);
  14. $this->template->set('pageTitle', 'Login');
  15. $this->template->show('admin/login');
  16. }


Ten post edytował r3pilc3 2.08.2012, 18:47:32
Go to the top of the page
+Quote Post
rzymek01
post 2.08.2012, 18:49:38
Post #16





Grupa: Zarejestrowani
Postów: 592
Pomógł: 62
Dołączył: 3.08.2006

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


proszę nie karmić trolla...

ciagle z tym samym pytaniem,
rusz swe cztery litery i do roboty


--------------------
:]
Go to the top of the page
+Quote Post
r3pilc3
post 2.08.2012, 18:55:12
Post #17





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

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


Dzieki za mobilizację. Pisałeś już o tym. Jestem roztargniony..
Dopisałem ='1'
  1. $this->template->set('message', $_SESSION['MBeforeLoginTempM']='1');

Już komunikat zniknął.
Dobrze zrobiłem czy tak nie powinienem tylko inaczej?
Go to the top of the page
+Quote Post
rzymek01
post 2.08.2012, 19:05:12
Post #18





Grupa: Zarejestrowani
Postów: 592
Pomógł: 62
Dołączył: 3.08.2006

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


przeczytaj co pisał mls oraz moje wypowiedzi i jak dojdzesz, co robisz źle, to pochwal się tongue.gif


--------------------
:]
Go to the top of the page
+Quote Post
r3pilc3
post 2.08.2012, 19:14:42
Post #19





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

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


Proszę o wytłumaczenie jak mam przypisać tablicę['index']='wartość'.

Ten post edytował r3pilc3 2.08.2012, 22:29:27
Go to the top of the page
+Quote Post
d3ut3r
post 2.08.2012, 20:54:06
Post #20





Grupa: Zarejestrowani
Postów: 709
Pomógł: 176
Dołączył: 24.10.2010

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


Undefined index oznacza tyle, że klucz tablicy do której się odwołujesz nie został zdefiniowany innymi słowy zanim użyjesz $tablica['klucz'] musisz sprawdzić czy on istnieje lub zdefiniować go wcześniej w sposób jawny. Sprawdzenia dokonasz tak:

  1. if (isset($tablica['klucz'])){
  2. $tablica['klucz']='aaa';
  3. }


w niektórych przypadkach lepiej po prostu zadeklarować pustą tablicę niż cały czas sprawdzać obecność kluczy:

  1. $tablica=array('klucz'=>'','klucz2'=>'');
  2.  
  3. $tablica['klucz']='nowa wartość klucza'; //tutaj nie wystąpi notice biggrin.gif




--------------------
http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2024 - 23:41