Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] $_GET & $_POST, kilka pytań
gladiror
post
Post #1





Grupa: Zarejestrowani
Postów: 398
Pomógł: 0
Dołączył: 13.07.2005
Skąd: Lublin

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


Witam!
Potrzebuje troszke teorie z wiązanych z tytułem tematu, a mianowicie:

1) Którą metodą - $_GET czy $_POST lepiej jest przekazywać zmienne, których użytkownik nie powinien widzieć?

2) Jaka jest różnica między $_GET i $_POST? W jakich przypadkach używać pierwsze a w jakich drugie??

Głównie chodzi mi o te 2 pytania... Z góry THX za odpowiedź!
Go to the top of the page
+Quote Post
Athlan
post
Post #2





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


ad 1. Dane z formularzy itp przysyłać należy formą POST
ad 2. zależy co chcesz osiągnąć:

a ) jeżeli wywołujesz jakiś dział, np newsy to użyjesz GETa z pasku adresu...
b ) ...ale jak chcesz np. aby user komentował jakieś newsy, wówczas użyjesz POSTa. Takie są standardy...

poczytaj też o funkcjach htmlspeciachars(), trim(), htmlentiles() - przydadzą się (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

pozdro (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Athlan 25.07.2006, 10:29:16
Go to the top of the page
+Quote Post
gladiror
post
Post #3





Grupa: Zarejestrowani
Postów: 398
Pomógł: 0
Dołączył: 13.07.2005
Skąd: Lublin

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


Np.:

2a) przesyłanie danych produktu - cena, ilosc, itp. (przy wrzuceniu np. do koszyka) wtedy użyje post?

Czyli w głównej mierze chodzi o to, ze metoda GET przesylamy dane, które sa mało istotne dla bezpieczenstwa a metoda POST ktore sa istotne?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
Athlan
post
Post #4





Grupa: Developerzy
Postów: 823
Pomógł: 12
Dołączył: 18.12.2005

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


Cytat
2a) przesyłanie danych produktu - cena, ilosc, itp. (przy wrzuceniu np. do koszyka) wtedy użyje post?


w post przesyłasz tylko ilość i id produktu, cena wybiera się z bazy, bo każdy będzie mógł ją sobie zmienić w źródle strony i wysłać formularz z localhosta (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Cytat
Czyli w głównej mierze chodzi o to, ze metoda GET przesylamy dane, które sa mało istotne dla bezpieczenstwa a metoda POST ktore sa istotne?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)


nie... chodzi głónie o wygodę... $_GET przesyłasz w linkach a $_POST w formularzach (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

pozdrawiam (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Ten post edytował Athlan 25.07.2006, 11:00:14
Go to the top of the page
+Quote Post
Ludvik
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 698
Pomógł: 3
Dołączył: 28.03.2004
Skąd: Wrocław

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


Nie ma to żadnego związku z bezpieczeństwem... Dane przesyłane GET-em są dodawane do URL żądania, natomiast dane przekazywane POST-em są dostarczane wewnątrz żądania. I jedne i drugie można ukraść.

Pierwszą metodą przekazujesz dane krótkie, ale ważne dla funkcjonalności strony. Potrzebny jest prosty sposób, żeby przesyłać właśnie szczegóły żądania. Z resztą sama nazwa GET mówi, że zmienne te raczej określają żądanie.

POST z kolej nadaje się do przesyłania większych danych, takich jak te pochodzące z formularzy. Przesyłanie jest mało wygodne, nie sprawdza się przy konstruowaniu żądania.
Go to the top of the page
+Quote Post
gladiror
post
Post #6





Grupa: Zarejestrowani
Postów: 398
Pomógł: 0
Dołączył: 13.07.2005
Skąd: Lublin

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


No dobra, wszystko jasne tylko nie rozumiem po co wyłączane są teraz global_register... Global register czyli zmienne globalne... Przecież w URL zmienie wartosc nacisne ENTER i zmieni mi... Nie da sie tego jakos zabezpieczyc przed takim czyms??

A jeszcze jedno Ludvik - napisałeś, że "Przesyłanie jest mało wygodne, nie sprawdza się przy konstruowaniu żądania." Tutaj chodzi o to, ze getem moge pobrać wartość z np. <A href="plik.php?cos=www"></a> zmiennej cos, a przy pomocy POST'a nie moge?

Ten post edytował gladiror 25.07.2006, 11:07:59
Go to the top of the page
+Quote Post
siemakuba
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

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


Cytat
Tutaj chodzi o to, ze getem moge pobrać wartość z np. <A href="plik.php?cos=www"></a> zmiennej cos, a przy pomocy POST'a nie moge?
Nie możesz tak jak piszesz. Wszystkie zmienne jakie widzisz w adresie URL i przekazujesz je za pomocą adresu to zawsze tylko i wyłącznie zmienne $_GET.

Cytat
No dobra, wszystko jasne tylko nie rozumiem po co wyłączane są teraz global_register... Global register czyli zmienne globalne... Przecież w URL zmienie wartosc nacisne ENTER i zmieni mi... Nie da sie tego jakos zabezpieczyc przed takim czyms??

Masz rację - wklepiesz ręcznie inną wartośc zmiennej w $_GET i zostanie ona zastąpiona. Tak samo, możesz spreparować formularz i przesłać jakiekolwiek zmienne za pomocą $_POST. Ale nie o to chodzi z register_globals. O tym powinineś poczytać w manualu i na forum - przewijało się wiele, wiele razy.
Generalnie, przy włączonym register_globals możesz za pomocą modyfikacji zmiennych $_GET/$_POST nadpisać dowolną inną zmienną w kodzie.

pozdr.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 30.08.2025 - 09:01