Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 3 Dołączył: 19.04.2011 Ostrzeżenie: (0%)
|
Więc. Mam takowy problem, że mam zadeklarowany kontroler, że jeżeli jakiś $_GET jest, to coś ma robić.
No ale jak sprawić, by coś robił, gdy nie ma jakiegokolwiek $_GET?, tzn. jest czyste nazwastrony.pl a nie nazwastrony.pl/?zapytanie=wartosc. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 75 Pomógł: 2 Dołączył: 29.07.2009 Ostrzeżenie: (0%)
|
Nie wiem czy dobrze rozumiem, chcesz sprawdzić czy ktoś kto wszedł na stronę www.aaa.pl np. edytował jakiś wiersz czy dowolnie inną wartość. W tedy adres strony będzie np. www.aaa.pl?edytuj=tak
Ja bym to zrobił tak. Przy wejściu na stronę zarejestruj w sesji adres strony zmienna $url_strony
Następnie porównaj sobie sesję z bierzącą zmienną $url_strony i będziesz wiedział czy coś ktoś klikał na stronie i czy zmienił się adres. |
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 3 Dołączył: 19.04.2011 Ostrzeżenie: (0%)
|
chodzi o to, że jak nie ma żadnego zapytania GET, to ma wyświetlić zawartość jednego pliku, aczkolwiek jeżeli już jest $_GET['page'], to wyświetla inne pliki.
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 75 Pomógł: 2 Dołączył: 29.07.2009 Ostrzeżenie: (0%)
|
pokaż kawałek kodu co masz zrobione, będzie łatwiej
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 3 Dołączył: 19.04.2011 Ostrzeżenie: (0%)
|
i potem controller_page.php
Pliki z zapytania cat i z articles.php mają podobną budowę, więc działają tak samo. |
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%)
|
Sprawdzić czy ten $_GET jest utworzony.
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 3 Dołączył: 19.04.2011 Ostrzeżenie: (0%)
|
próbowałem isset... aczkolwiek wtedy dawało true nawet jak było utworzone, ale nei 'cat' i nie 'pag'
|
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%)
|
Isset daje true jeśli utworzone więc to prawidłowe zachowanie.
|
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 3 Dołączył: 19.04.2011 Ostrzeżenie: (0%)
|
Fu. miało być jak jest nieutworzone. Tj. Poprawienie było jak był tylko nazwastrony.pl, aczkolwiek jak było nazwastrony.pl/?frxrf=frxfxxr to też było true. aczkolwiek jak już było nazwastrony.pl/cat(pag)=wartosc to zwracało false
|
|
|
|
Post
#10
|
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%)
|
Pomyśl troszkę, to podstawowa funkcja, którą używa miliony osób, ale Ty akurat uważasz, że ona nie działa..
Isset sprawdza czy zmienna jest utworzona - nie sprawdza czy jest pusta. Błąd leży w powyższym (tworzysz zmienną np. na podstawie $_GET). I nie mówiłem o sprawdzaniu samego $_GET tylko konkretnego elementu tej tablicy czyli np. $_GET['pag']. |
|
|
|
Post
#11
|
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 3 Dołączył: 19.04.2011 Ostrzeżenie: (0%)
|
Dobra. Wyjaśnię o co mi chodzi w krokach.
-Na chwilę obecną mam 2 elementy $_GET, cat, odpowiadające za wyświetlanie plików z artykułami z całej kategorii pag, odpowiadające za wyświetlanie "stron" (ogółem całość wzorowana na WP). - mam plik articles.php, który ma być wczytywany jeżeli żaden, jakikolwiek $_GET nie jest podany - jest to spowodowane tym, że będzie się wszystko rozwijało, więc mogą nagle dojść kolejne elementy, a chciałbym uniknąć po prostu dodawania coraz większej ilości ich do warunku. |
|
|
|
Post
#12
|
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%)
|
Poza tym nie wygłuszaj błędów tylko sprawdzaj czy plik istnieje i jeśli nie to wyświetlaj błąd 404. |
|
|
|
Post
#13
|
|
|
Grupa: Zarejestrowani Postów: 115 Pomógł: 3 Dołączył: 19.04.2011 Ostrzeżenie: (0%)
|
if($_GET['cat'] || !$_GET)
Tak ostatecznie miało to wyglądać. A co do 404, specjalnie wyłączyłem obsługę błędów, i tyle sprawdzam, że jeżeli nie może otworzyć pliku, to da 404. Chyba że jakoś inaczej to można zrobić? Bo jak dotąd zawsze robiłem to w ten sposób. |
|
|
|
Post
#14
|
|
|
Grupa: Zarejestrowani Postów: 4 298 Pomógł: 447 Dołączył: 16.11.2006 Ostrzeżenie: (0%)
|
Jeśli wzorowałeś się na WP, to już oznacza że zrobiłeś to źle. Chcesz stworzyć coś na wzór routera i na postawie GET, uruchamiać kontrolery? Solidna dziura bezpieczeństwa. Tym bardziej że GET jest nazwą pliku której nie zabezpieczasz, więc mogę wczytać każdy plik, jaki mi się tylko podoba. I nie sprawdzasz w ogóle czy te pliki istnieją.
Sprawdzsz czy GET['cat'] istnieje, oraz gdy nie ma GET? Bez sensu. 1. pierw sprawdź czy GET istnieje 2. później sprawdz czy istnieje w ogóle jakakolwiek wartość ['cat'] oraz czy nie jest pusta 3. sprawdź czy plik który chcesz wczytać istnieje, oraz to co chcesz wczytać na pewno jest plikiem. is_exists, is_file, isset, is_emtpy is_string basename Ten post edytował !*! 16.01.2013, 12:25:13 |
|
|
|
Post
#15
|
|
|
Grupa: Zarejestrowani Postów: 2 958 Pomógł: 574 Dołączył: 23.09.2008 Skąd: wiesz, że tu jestem? Ostrzeżenie: (0%)
|
http://forum.php.pl/index.php?showtopic=21...p;#entry1016184 przerób tak aby pasowało do twojego problemu
|
|
|
|
![]() ![]() |
|
Aktualny czas: 25.12.2025 - 10:36 |