![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 233 Pomógł: 3 Dołączył: 18.07.2005 Ostrzeżenie: (40%) ![]() ![]() |
Jak takie adresy zrobić za pomocą $_GET (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ?
Metoda $_POST już mi lepiej wychodzi. A gdy próbuję coś zrobić z $_GET to nic mi nie wychodzi :/ Pomożecie, i ew. napiszecie jakiś przykładzik.. |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 446 Pomógł: 0 Dołączył: 5.03.2005 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
jak masz plik.php?id=artykuly to odbierasz $zmienna=$_GET['id']; i wartosc $zmienna jest rowna artykuly i pozniej robisz z tym co chcesz (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) mozesz sprawdzac casem i includowac odpowiedni pilik itp.
|
|
|
![]()
Post
#3
|
|
Grupa: Przyjaciele php.pl Postów: 121 Pomógł: 1 Dołączył: 4.01.2004 Skąd: Jawor Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 233 Pomógł: 3 Dołączył: 18.07.2005 Ostrzeżenie: (40%) ![]() ![]() |
Znalazłem tylko to w manualu.
http://pl.php.net/manual/pl/reserved.varia...d.variables.get I tam żadnego przykładu nie ma do $_GET :/ |
|
|
-margarina- |
![]()
Post
#5
|
Goście ![]() |
Dajmy taki przykład(tylko go nie stosuj, bo on jest rajem dla hackerów).
Założmy masz strone, masz artkykuly itp. Dajmy na to plik artykuly.php pobiera artykuly z folderu articles . Plik artykuly.php będzie więc tak wygladal: <?php $id=$_get['id'] readfile('articles/'.$id.'.html'); ?> I masz jeden artykul o nazwie gole w pliku articles/gole.html . Mozesz teraz do niego wejść po przez twojastrona/articles/gole.html albo twojastrona/artykuly.php?id=gole TO będzie tak po krótce |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
-margarina- |
![]()
Post
#7
|
Goście ![]() |
Sorka pomyłka zamiast $_get powinno być $_GET . jakby jakieś pomyłki jeszcze były to poprawcie mnie bo to na szybciora pisałem
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 104 Pomógł: 3 Dołączył: 30.05.2008 Skąd: Białystok Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 243 Pomógł: 19 Dołączył: 12.09.2005 Ostrzeżenie: (0%) ![]() ![]() |
ten kod moze byc bezpieczny jak sie usunie wszystkie niepotrzebne znaki z pobranej wartosci:)
i bedzie good tylko wiadomo ma być:)
i przed include susuwasz wszystko np addslahs(czy jakoś tak) itp itd:) Ten post edytował matx132 2.07.2008, 10:36:29 |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
a najlepiej tylko przepuścić litery... jak to jest potrzebne to można też liczby, regular expressions (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat i przed include susuwasz wszystko np addslahs(czy jakoś tak) itp itd:) Addslashes, ale to bardziej w dodawaniu do bazy danych. Najlepiej moim zdaniem zrobić tablicę istniejących plików i za pomocą wartości get wybierać odpowiedni indeks z tej tablicy. Zainkludowane zostaną tylko te pliki, które mogą być zainkludowane. Ten post edytował Shili 2.07.2008, 11:02:53 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 27 Dołączył: 24.03.2002 Skąd: Tarnów Ostrzeżenie: (0%) ![]() ![]() |
Addslashes, ale to bardziej w dodawaniu do bazy danych. Najlepiej moim zdaniem zrobić tablicę istniejących plików i za pomocą wartości get wybierać odpowiedni indeks z tej tablicy. Zainkludowane zostaną tylko te pliki, które mogą być zainkludowane. Tudzież basename() + file_exists() itp. BTW, wątek z 2005 roku ;] |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Addslashes, ale to bardziej w dodawaniu do bazy danych. Najlepiej moim zdaniem zrobić tablicę istniejących plików i za pomocą wartości get wybierać odpowiedni indeks z tej tablicy. Zainkludowane zostaną tylko te pliki, które mogą być zainkludowane. pfff.... a jesli to bylby blog, ktory tworzy każdą stronę wraz z nowym kontem? Chyba narazie dałem najlepsze rozwiązanie (dziwnie to zabrmiało (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ) Cytat("antyqjon") Tudzież basename() + file_exists() itp. BTW, wątek z 2005 roku ;] Co to by miało niby dać? |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat pfff.... a jesli to bylby blog, ktory tworzy każdą stronę wraz z nowym kontem? Chyba narazie dałem najlepsze rozwiązanie (dziwnie to zabrmiało (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) ) Objawię Ci tajemnicę ^^ Listę plików można tworzyć automatycznie, wpisywać je do tablicy równie automatycznie i dzięki temu mieć jednocześnie piękną obsługę błędów.W blogu nie chodzi o includowanie podstron, to całkiem inna bajka, gdzie wszystko przesyłane przez get jest wyciągane z bazy danych. No chyba, że istnieje gdzieś blog operujący na plikach, ale to dziwne by było. W przypadku prywatnych, to faktycznie dość możliwe, ale wtedy dochodzą, czy też powinny dojść mechanizmy sprawdzające poprawność tych danych i przeważnie też nie polega na przesyłaniu całej nazwy pliku, a w przypadku archiwum określonego okresu. Cytat Co to by miało niby dać? Choćby to, że sprawdza się, czy plik istnieje, a nie includuje wszystko jak leci (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) @edit Tfu, automatyka z informatyką zaczyna mi się mieszać ^^ Ten post edytował Shili 2.07.2008, 14:50:43 |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Choćby to, że sprawdza się, czy plik istnieje, a nie includuje wszystko jak leci (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) yhm... czyli wd. Ciebie te basename() i file_exists() zapewniają tu bezpieczeństwo? |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Tak, nie same, ale z innymi zabezpieczeniami jak najbardziej. Poza tym daje możliwość wyświetlenia ładnej informacji o błędzie i nie skutkuje z marszu fatal errorem.
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Cytat("Shilli") Tak, nie same, ale z innymi zabezpieczeniami jak najbardziej. hehehheh (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) No... jakimi ;p?? |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 1 085 Pomógł: 231 Dołączył: 12.05.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie podałeś na razie żadnego argumentu czemu Twoje rozwiązanie jest najlepsze. Skoro chcesz dyskutować rób to merytorycznie.
Jakimi zabezpieczeniami? Jeśli istnieje lista plików, które nie powinny być includowane tą metodą, to wypadałoby jeszcze zrobić tablicę wyjątków. Wyjaśnij mi teraz zamiast zadawać kolejne pytania w jakim sensie wyrażenie regularne miałoby być lepsze od ścisłego zbioru plików możliwych do includowania? @down Kurcze! To próbuję Ci przetłumaczyć - wyrażenie regularne takie jak zaproponowałeś przepuści WSZYSTKIE nazwy plików jedynie ze znakami a-zA-Z0-9; dzięki temu trzeba będzie nazywać pliki do niezaincludowania za pomocą innych znaków, co jest o tyle nieciekawe, że nazewnictwo powinno być jednolite. Poza tym jak wpiszę w get blgagagtaeg214142jjljljfsaja to też mi zaincluduje plik, czy też plunie warningiem, chociaż nikt o zdrowych zmysłach raczej nie tworzy takich plików dla użytkowników. Uważasz, że to jest plik przeznaczony do includowania? @down jeszcze raz Zabrakło mi słów. Nie możesz ustawić, bo to przejdzie Twoje proponowane wyrażenie regularne. Co najwyżej możesz sprawdzić za pomocą tego odrzuconego przez Ciebie file exist czy plik istnieje. Btw, congif również przejdzie. Ten post edytował Shili 2.07.2008, 15:44:32 |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ponieważ robić tablicę wszystkich wyjątków to dużo roboty... poza tym nie powinno się includować jakichkolwiek innych plikow niz te ktore sa do tego przeznaczone... taka lista zajmowała by baaaardzo dużo a wyrażenie regularne ot bodajże jedna, niedługa linijka
Nie podałeś na razie żadnego argumentu czemu Twoje rozwiązanie jest najlepsze. Skoro chcesz dyskutować rób to merytorycznie. Jakimi zabezpieczeniami? Jeśli istnieje lista plików, które nie powinny być includowane tą metodą, to wypadałoby jeszcze zrobić tablicę wyjątków. Wyjaśnij mi teraz zamiast zadawać kolejne pytania w jakim sensie wyrażenie regularne miałoby być lepsze od ścisłego zbioru plików możliwych do includowania? @down Kurcze! To próbuję Ci przetłumaczyć - wyrażenie regularne takie jak zaproponowałeś przepuści WSZYSTKIE nazwy plików jedynie ze znakami a-zA-Z0-9; dzięki temu trzeba będzie nazywać pliki do niezaincludowania za pomocą innych znaków, co jest o tyle nieciekawe, że nazewnictwo powinno być jednolite. Poza tym jak wpiszę w get blgagagtaeg214142jjljljfsaja to też mi zaincluduje plik, czy też plunie warningiem, chociaż nikt o zdrowych zmysłach raczej nie tworzy takich plików dla użytkowników. Uważasz, że to jest plik przeznaczony do includowania? No to Ty nie próbuj mi tłumaczyć... sam spróbuj zrozumieć. blgagagtaeg214142jjljljfsaja, jak wpisze cos takiego w GET'cie, to poprostu mogę ustawić komunikat, który ładnie wygląda, >> 404 <<. Jak zrobić to twoim sposobem, czy to z basename, czy to z file_exists, to nadal moge sobie includowac, czy tez odczytywac pliki typu: - etc/passwd - conf.php - inne tajne pliki... |
|
|
![]()
Post
#20
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Jak zrobić to twoim sposobem, czy to z basename, czy to z file_exists, to nadal moge sobie includowac, czy tez odczytywac pliki typu: Bzdura. Za pomocą samej funkcji basename() jestem w stanie stwierdzić czy podajesz plik czy ścieżkę. Dokładając do tego file_exists() sprawię że pliki będą z lokalizacji, którą ja wybieram a nie atakujący.- etc/passwd - conf.php - inne tajne pliki... Napisz po prostu że nie wiesz a nie że sie nie da (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Ten post edytował mike 2.07.2008, 15:51:07 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 11:52 |