![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 26.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Piszę aplikację i w miarę dodawania nowych funkcji, zauważyłam pewien problem.
Do tej pory poruszanie się po stronie było możliwe dzięki linkom typu: www.adresstrony.pl/?a=costam Za pomocą metody GET przekazywałam wartość i w zależności od niej, includowane są do strony różne pliki, np:
Powiedzmy, że chcę usunąć z bazy danych informacje o produkcie o id = x... Niech skrypt do usuwania danych o produkcie jest dostepny pod linkiem www.mojastrona.pl/?d=usunProdukt (metodą GET pobierana jest wartość d=usunProdukt i dołączany jest plik obsługujący skrypt)...chcę też, żeby ten plik za pomocą metody GET pobierał również parametr id produktu, który ma usunąć Przykładowo, klikam link o postaci www.mojastrona.pl/?d=usunProdukt&id=9 I tu właśnie pojawia się problem.... Skrypt działa i wykonuje polecenie poprawnie, ale : 1. chcę, żeby skrypt nie obsługiwał wartości wpisanych w adresie przeglądarki, a tylko wartości przekazane wcześniej metodą GET 2. Gdyby jednak nie udało się spełnić założenia 1, to chcę, aby skrypt rozpoznawał, czy istnieje produkt o podanym id i jeśli w adresie www.mojastrona.pl/?d=usunProdukt&id=9 będzie nieprawidłowy id, to pokaże komunikat, że jest zły adres lub nie ma produktu o takim id i nie można uruchomić usuwania produktu. 3. jaki warunek powinnam napisać, żeby sprawdzał czy jest wpisany prawidłowy adres www i wybierał odpowiednią opcję? czy:
czy może
Zależy mi też na tym, żeby nawet po ręcznej zmianie wartości zmiennych w adresie www, skrypt nie wykonywał żadnych poleceń, tylko wywalał od razu błąd (zeby było zabezpieczone przed czymś takim, jak np. zmiana wartości zmiennych lub ich nazw www.mojastrona.pl/?d=usunProdukt&zmienna=XXX ) Chcę oczywiście uwzględnić fakt, że skrypt jest uruchamiany dopiero po sprawdzeniu, czy istnieje sesja zalogowanego użytkownika i czy użytkownik ten jest administratorem systemu. Czy ewentualnie nie będzie problemu, jesli jednocześnie w skrypcie użyję metody i GET i POST, np. do linków GET, do wysyłania danych POST? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 879 Pomógł: 230 Dołączył: 20.03.2005 Skąd: Będzin Ostrzeżenie: (0%) ![]() ![]() |
możesz wykorzystać formularze ale również wykorzystać sesję, czyli
tylko wcześniej będziesz musiał umieścić w kodzie: |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 678 Pomógł: 124 Dołączył: 26.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
1. chcę, żeby skrypt nie obsługiwał wartości wpisanych w adresie przeglądarki, a tylko wartości przekazane wcześniej metodą GET Tablica superglobalna $_GET zawiera właśnie wartości wpisane do okna przeglądarki, żadne inne. Z całości twojego tekstu zrozumiałem, że chcesz się ustrzec od tego aby nikt niepożądany nie namieszał ci w bazie. Od razu mówię, że udostępnianie tego wszystkim, tak jak chcesz to zrobić, to czysta głupota. Najpierw trzeba pomyśleć o jakimś logowaniu na administratora opartego na sesje. Potem jeśli istnieje odpowiednia sesja pozwalasz na użytkownikowi na używanie skryptu, ew. zabezpieczasz się przed SQL Injection sprawdzając na przykład czy id podane w adresie jest liczbą. Nie trzeba aż tak kombinować ![]() Ten post edytował Blame 9.09.2010, 14:49:32 -------------------- Napisane z palca! <- to tak dla lansu ;)
FancyStudio.pl - Tworzenie Stron WWW w Oparciu o XHTML, CSS, JS, PHP i MySQL. Mój blog :: Portfolio Fotograficzne Igora Biedrawy |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 26.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Jest logowanie do systemu i tylko administrator systemu ma dostęp panelu administracyjnego. W sumie powinno starczyć, ale tak na wszelki wypadek chcę, żeby nie można było sobie wprowadzić jakichś tam danych w pasku adresu, z palca, tylko zeby zmienne i wartości były przekazywane metodą GET do adresu tylko przez skrypt....czy da sie to jakoś zrobić?
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 678 Pomógł: 124 Dołączył: 26.09.2009 Ostrzeżenie: (0%) ![]() ![]() |
Nie. Przecież mówiłem, że $_GET posiada parametry wprowadzone z paska adresowego. I IMHO zabezpieczanie skryptu przed administratorem strony można w twoim wypadku ograniczyć do zabezpieczenia przed SQL Injection tak jak napisałem wcześniej.
-------------------- Napisane z palca! <- to tak dla lansu ;)
FancyStudio.pl - Tworzenie Stron WWW w Oparciu o XHTML, CSS, JS, PHP i MySQL. Mój blog :: Portfolio Fotograficzne Igora Biedrawy |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 26.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
OK rozumiem...w takim razie drążę temat dalej...Nie jestem tylko pewna, czy mogę w tym wątku...
utknęłam na pewnym etapie.... Pod adresem strony www.mojastrona.pl/?d=grupyTowarow znajduje się lista nazw wszystkich grup towarowych...(do pliku index.php includowany jest plik gt.php, który odpowiada za wyświetlanie listy grup towarowych). Teraz chcę zrobić stronicowanie wyników ... wg książki którą się wspomagam, numery stron itd...przekazuję też metodą GET - ale już tu skrypt nie chce działać. Nie wiem co zmienić, czy w ogóle dobrze zrobiłam, ze zdecydowałam się na poruszanie się po stronie za pomocą adresów ze zmiennymi GET, czy lepiej było zostawić adres w postaci normalnej...www.mojastrona.pl/strona1.php... itd....? Oto mój kod - includowany plik - "gt.php"
oraz funkcje:
Od razu mówię: z wyświetlaniem wyników nie ma najmniejszych problemów. Problem jest ze stronicowaniem. Może coś pominęłam... |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 26 Pomógł: 2 Dołączył: 8.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Myślę, że się przyda ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 21:58 |