Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] $_GET & $_POST, kilka pytań
gladiror
post 25.07.2006, 10:20:11
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ź!


--------------------
"Państwo to ja" Ludwik XIV
"Wróg zaatakuje to co kochasz" Ojciec Chrzestny
"Wszystko powinno być proste jak to tylko możliwe, ale nie prostsze..." A. Einstein
"Wyobraźnia jest ważniejsza niż wiedza" Albert Einstein
"Nieprawda powtarzana wielokrotnie staje się prawdą"
Go to the top of the page
+Quote Post
Athlan
post 25.07.2006, 10:28:57
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ę smile.gif

pozdro smile.gif

Ten post edytował Athlan 25.07.2006, 10:29:16


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
gladiror
post 25.07.2006, 10:32:40
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?questionmark.gif


--------------------
"Państwo to ja" Ludwik XIV
"Wróg zaatakuje to co kochasz" Ojciec Chrzestny
"Wszystko powinno być proste jak to tylko możliwe, ale nie prostsze..." A. Einstein
"Wyobraźnia jest ważniejsza niż wiedza" Albert Einstein
"Nieprawda powtarzana wielokrotnie staje się prawdą"
Go to the top of the page
+Quote Post
Athlan
post 25.07.2006, 10:59:44
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 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?questionmark.gif


nie... chodzi głónie o wygodę... $_GET przesyłasz w linkach a $_POST w formularzach smile.gif

pozdrawiam smile.gif

Ten post edytował Athlan 25.07.2006, 11:00:14


--------------------
Portfolio: Vgroup.pl | athlan.pl | Test.php.pl - sprawdź się z wiedzy o PHP i ułóż własne pytania!
Pomogłem? Kliknij pod postem.
Go to the top of the page
+Quote Post
Ludvik
post 25.07.2006, 11:01:25
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 25.07.2006, 11:05:46
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


--------------------
"Państwo to ja" Ludwik XIV
"Wróg zaatakuje to co kochasz" Ojciec Chrzestny
"Wszystko powinno być proste jak to tylko możliwe, ale nie prostsze..." A. Einstein
"Wyobraźnia jest ważniejsza niż wiedza" Albert Einstein
"Nieprawda powtarzana wielokrotnie staje się prawdą"
Go to the top of the page
+Quote Post
siemakuba
post 25.07.2006, 11:24:50
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 15.07.2025 - 02:16