![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 57 Pomógł: 2 Dołączył: 16.09.2010 Skąd: Uć Ostrzeżenie: (0%) ![]() ![]() |
Witam,
po dłuższym grzebaniu znowu się poddałem i chciałbym zasięgnąć Waszej opinii (może jakieś rady). W panelu admina zaczęło mi pluć tymi notice'ami na potęgę z jednymi sobie poradziłem z drugimi jest trochę gorzej. Błąd o treści takiej jak w temacie. Odnosi się do linijki 1050 której zlepek zamieszczam poniżej. Mianowicie if($_GET['akcja']=='nowy' && $_POST['tytul'])
Celem zabiegów jest pozbycie się noticów w ogóle i nie interesują mnie półśrodki typu "poprawić php.ini" ![]() Jakieś pomysły ? -------------------- mess with the best die like the rest !
bardzo fajne remixy utworów na www.remixownia.pl desperacko śmieszny portal o jakże kreatywnej nazwie www.chybaty.eu |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 447 Pomógł: 191 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ogólnie mówiąc, błąd undefined index/variable jest wtedy, gdy chcesz odczytać jakiś element tablicy/zmienną która nie istnieje.
Dlatego takie sprawdzanie :
Albo przypisywanie :
W momencie kiedy $_GET['foo'] nie istnieje, powoduje właśnie ten komunikat. Dlatego, zanim będziesz porównywał jakieś zmienne, czy cokolwiek z nimi robił, upewnij się, czy one istnieją. A możesz to zrobić za pomocą np. funkcji isset(). Isset zwraca true, jeśli zmienna jest zdefiniowana, false jeśli niezdefiniowana. Przykład : Zamiast pisać
napisz: Ponieważ tu jest koniunkcja w warunku, to jeśli isset($_GET['akcja']) zwróci false, to następna część warunku nie będzie w ogóle sprawdzana. Następna sprawa, nie używaj takiego czegoś jak
bo zdaje się, że nie do końca wiesz co to oznacza. jeśli $_GET['cośtam'] będzie miało wartość "0lalala". To cały warunek nie będzie spełniony. Tutaj uzyj funkcji empty() Ten post edytował peter13135 4.09.2012, 13:08:48 -------------------- :)
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 353 Pomógł: 50 Dołączył: 28.07.2005 Skąd: Łaziska Górne Ostrzeżenie: (0%) ![]() ![]() |
bo zdaje się, że nie do końca wiesz co to oznacza. jeśli $_GET['cośtam'] będzie miało wartość "0lalala". To cały warunek nie będzie spełniony. Tutaj uzyj funkcji empty() Warunek będzie spełniony. PHP zamieni "0lalala" w boolean co przy stringach innych niż pusty lub "0" daje prawdę, ale zgadzam się iż lepiej skorzystać z empty. -------------------- Sposób na życie? Uśmiech na twarzy :D
"Widzę więcej, wiem więcej, tak to jest mniej więcej" "NIE kradnij, rząd nielubi konkurencji" |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 57 Pomógł: 2 Dołączył: 16.09.2010 Skąd: Uć Ostrzeżenie: (0%) ![]() ![]() |
Faktycznie pomogło. Jednak nie rozumiem jeszcze jednego notice'a. Problem jest taki, że w podglądzie na podstronie z dodawaniem nowych artykułów lista tematów się wyświetla. Jak wejdę w edycję to już pluje błędem. Szczerze nie wiem gdzie szukać. Gdzieś trzeba ten warunek udowodnić. Jak wstawiam go po if(isset($_GET['id']) && $_GET['akcja']=='edytuj') to nie mogę w ogóle edytować danego artykułu. Nie pobiera mi nic z bazy. Treść komunikatu jest taka o jakiej wcześniej wspomniałeś czyli Notice: Undefined variable: lista_tematow in C:\xampp\htdocs\admin\index.php on line 1265. Linia ta wygląda tak '; (zakończenie linii). W przeklejonym kodzie linia 141
-------------------- mess with the best die like the rest !
bardzo fajne remixy utworów na www.remixownia.pl desperacko śmieszny portal o jakże kreatywnej nazwie www.chybaty.eu |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 353 Pomógł: 50 Dołączył: 28.07.2005 Skąd: Łaziska Górne Ostrzeżenie: (0%) ![]() ![]() |
Przy pierwszym wykonaniu pętli zmienna $lista_tematow nie istnieje a operator .= wpierw musi pobrać jej wartość aby móc dopisać do niej nową wartość. Innymi słowy wpierw próbuje pobrać zmienną która nie istnieje i masz notice. W tym przypadku musisz zadeklarować zmienną przed pętlą jako pusty string czyli po prostu $lista_tematow = ""; zaraz przed while.
-------------------- Sposób na życie? Uśmiech na twarzy :D
"Widzę więcej, wiem więcej, tak to jest mniej więcej" "NIE kradnij, rząd nielubi konkurencji" |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 57 Pomógł: 2 Dołączył: 16.09.2010 Skąd: Uć Ostrzeżenie: (0%) ![]() ![]() |
Okej tamtego błędu nie ma już. Jednak listy w edycji nadal nie wyświetla. Notice: Undefined variable: lista_tematow in C:\xampp\htdocs\admin\index.php on line 1307 próbuje zgonić na wywołanie echo $lista_tematow;
Zastanawiam się też czemu wcześniej tych błędów nie wyświetlało. Tylko po aktualizacji php. Config się raczej nie zmienił. Ten post edytował bigbadcompany 4.09.2012, 15:05:02 -------------------- mess with the best die like the rest !
bardzo fajne remixy utworów na www.remixownia.pl desperacko śmieszny portal o jakże kreatywnej nazwie www.chybaty.eu |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 353 Pomógł: 50 Dołączył: 28.07.2005 Skąd: Łaziska Górne Ostrzeżenie: (0%) ![]() ![]() |
Źle policzyłem nawiasy wcześniej. zmienną $lista_tematow musisz zdefiniować na początku przed if nie przed while.
Listę tą wypełniasz w else więc jeśli warunek jest spełniony to lista tematów będzie pusta. Inna konfiguracja dla error_reporting. Wiele osób ignoruje błędy notice, takie aplikacje wciąż będą działać ale moim skromnym zdaniem lepiej pozbyć się jakichkolwiek błędów. Ten post edytował PanGuzol 4.09.2012, 15:10:42 -------------------- Sposób na życie? Uśmiech na twarzy :D
"Widzę więcej, wiem więcej, tak to jest mniej więcej" "NIE kradnij, rząd nielubi konkurencji" |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 57 Pomógł: 2 Dołączył: 16.09.2010 Skąd: Uć Ostrzeżenie: (0%) ![]() ![]() |
Wszystkie notice'y znikają ale wraz z nimi lista tematów w edycji
![]() -------------------- mess with the best die like the rest !
bardzo fajne remixy utworów na www.remixownia.pl desperacko śmieszny portal o jakże kreatywnej nazwie www.chybaty.eu |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 353 Pomógł: 50 Dołączył: 28.07.2005 Skąd: Łaziska Górne Ostrzeżenie: (0%) ![]() ![]() |
Czy korzystasz ze zmiennej $lista_tematow w innym miejscu w kodzie poza tym fragmentem który tutaj udostępniłeś?
-------------------- Sposób na życie? Uśmiech na twarzy :D
"Widzę więcej, wiem więcej, tak to jest mniej więcej" "NIE kradnij, rząd nielubi konkurencji" |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 57 Pomógł: 2 Dołączył: 16.09.2010 Skąd: Uć Ostrzeżenie: (0%) ![]() ![]() |
Tak, ale to już inny case. Poza tym po wyrzuceniu tamtego kodu wspomniane wcześniej zabiegi nie pomagają. Jeśli chcesz mogę na mejla wysłać wszystko co mam w pliku index admina. Jak masz czas rzuciłbyś swoim wnikliwym okiem na to. Nie jest to jakiś majstersztyk ale nadal nad tym pracuję.
-------------------- mess with the best die like the rest !
bardzo fajne remixy utworów na www.remixownia.pl desperacko śmieszny portal o jakże kreatywnej nazwie www.chybaty.eu |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 353 Pomógł: 50 Dołączył: 28.07.2005 Skąd: Łaziska Górne Ostrzeżenie: (0%) ![]() ![]() |
Dla długich fragmentów lepiej skorzystać z http://pastebin.com/ lub podobnych serwisów.
Rozumiem, że tematy wyświetlały się zanim pozbyłeś się noticów? -------------------- Sposób na życie? Uśmiech na twarzy :D
"Widzę więcej, wiem więcej, tak to jest mniej więcej" "NIE kradnij, rząd nielubi konkurencji" |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 57 Pomógł: 2 Dołączył: 16.09.2010 Skąd: Uć Ostrzeżenie: (0%) ![]() ![]() |
Napiszę szczerze, że wcześniej już nie mogłem z tym do ładu dojść tylko po aktualizacji zaczęły błędy wyskakiwać co mnie trochę bardziej zmotywowało do działania.
Serwisu nie znałem przyda się z całą pewnością. -------------------- mess with the best die like the rest !
bardzo fajne remixy utworów na www.remixownia.pl desperacko śmieszny portal o jakże kreatywnej nazwie www.chybaty.eu |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 353 Pomógł: 50 Dołączył: 28.07.2005 Skąd: Łaziska Górne Ostrzeżenie: (0%) ![]() ![]() |
Mi się wydaje, że trochę namieszałeś z warunkami.
Uporządkuj sobie kod poprzez odpowiednie wcięcia w kodzie tj każdy nowy blok kodu ma jeden więcej tabulator na początku każdej linii. Teraz masz pomieszane czasami robisz wcięcia a czasami nie oraz w przypadku dłuższych bloków pisz komentarze przy zamykających i opcjonalnie również otwierających klamrach abyś mógł łatwo określić gdzie się zaczyna a gdzie kończy(if, pętla, funkcja) bez niepotrzebnego liczenia. -------------------- Sposób na życie? Uśmiech na twarzy :D
"Widzę więcej, wiem więcej, tak to jest mniej więcej" "NIE kradnij, rząd nielubi konkurencji" |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 57 Pomógł: 2 Dołączył: 16.09.2010 Skąd: Uć Ostrzeżenie: (0%) ![]() ![]() |
Wiesz co w sumie masz rację. Najpierw to uporządkuję a dopiero później zacznę rzucać luźne uwagi bo tak szukamy po omacku a nie ma sensu żebyś tracił cenny czas. Mimo to dziękuję bo bardzo dużo pomogłeś. Pozdrawiam i życzę miłego wieczoru
![]() -------------------- mess with the best die like the rest !
bardzo fajne remixy utworów na www.remixownia.pl desperacko śmieszny portal o jakże kreatywnej nazwie www.chybaty.eu |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 1 447 Pomógł: 191 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Warunek będzie spełniony. PHP zamieni "0lalala" w boolean co przy stringach innych niż pusty lub "0" daje prawdę, ale zgadzam się iż lepiej skorzystać z empty. Faktycznie, myślałem, że dotyczy to wszystkich stringów zaczynających się na 0, ale się myliłem. Dzięki za poprawienie ![]() -------------------- :)
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 03:31 |