Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sprawdzanie skad pochodza dane?
brekmar
post 20.06.2007, 19:25:18
Post #1





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 19.01.2005

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


Witam, mam takie pytanie, czy istnieje jakas funkcja w php a raczej czy wogole jest to mozliwe aby sprawdzic skad przywedrowaly dane smile.gif, chodzi mi o to ze mam np strone formularz.html jak sama nazwa wskazuje jest na niej jakis formularz ktory wysyla metoda post dane, no i czy w skrypcie php do ktorego dane leca mozna jakos sprawdzic czy przylecialy z tego formularz.html?
Go to the top of the page
+Quote Post
matix
post 20.06.2007, 19:38:05
Post #2





Grupa: Zarejestrowani
Postów: 278
Pomógł: 10
Dołączył: 13.02.2007
Skąd: Rybnik

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


Myślę, że sprawę rozwiąże $_SERVER['HTTP_REFERER'];

Pozdro smile.gif


--------------------
Nawet, jeżeli nie jesteś zainteresowany usługami IT ani outsourcingiem, a Twoją pasją jest programowanie - zobacz naszą stronę. Piszemy dużo fajnych use-caseów, jak podchodzimy do tematu programowania dla naszych klientów. A tak na co dzień tworzymy budujemy mvp oraz tworzymy platformę b2b.
Go to the top of the page
+Quote Post
legorek
post 20.06.2007, 19:57:51
Post #3





Grupa: Zarejestrowani
Postów: 411
Pomógł: 35
Dołączył: 27.06.2004
Skąd: Kraków

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


Tylko weź pod uwagę to, że niektóre programy (jak np. Norton Internet Security) powodują że przeglądarki nie wysyłają tych danych. O tym decyduje użytkownik. Cytat z manuala:
Cytat
Not all user agents will set this, and some provide the ability to modify HTTP_REFERER as a feature. In short, it cannot really be trusted.


--------------------
Go to the top of the page
+Quote Post
brekmar
post 20.06.2007, 20:16:53
Post #4





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 19.01.2005

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


No faktycznie dziala smile.gif, mam Norton Internet Security i jak jest wlaczony to zmienna jest pusta a jak go wylacze to podaje dokladny adres smile.gif
Go to the top of the page
+Quote Post
domis86
post 21.06.2007, 09:54:08
Post #5





Grupa: Zarejestrowani
Postów: 255
Pomógł: 5
Dołączył: 20.03.2007
Skąd: Kraków

Ostrzeżenie: (30%)
XX---


przy generowaniu formularza daj mu w hidden unikalny token i zapamietaj go w sesji czy gdzies, wtedy gdy przyjdzie request to sprawdzisz czy token byl wygenreowany -> bedziesz wiedzial ze to z twojej strony aarambo.gif
Go to the top of the page
+Quote Post
brekmar
post 23.06.2007, 21:49:45
Post #6





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 19.01.2005

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


a mam pytanie, czy jest taka sama funkcja dla metody GET?
Go to the top of the page
+Quote Post
Strzałek
post 24.06.2007, 10:11:12
Post #7





Grupa: Przyjaciele php.pl
Postów: 384
Pomógł: 6
Dołączył: 11.09.2004
Skąd: Grodzisk Mazowiecki

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


Hmmm, wydaje mi się że mylisz pojęcia. Poczytaj co to jest funkcja, metoda i zmienna winksmiley.jpg

W super globalnej (chyba tak to się nazywa biggrin.gif ) zmiennej $_SERVER przechowywane są różne rzeczy takie jak właśnie referer, numer ip, host itp. Zobacz sobie co tam siebie poprzez:

  1. <?php
  2. echo '<pre>'.print_r($_SERVER, 1).'</pre>';
  3. ?>


Natomiast w $_GET siedzą dane przesłane metodą GET (np. strona.pl/index.php?zmienna_get=wartosc ) Natomiast w $_POST siedzą informacje przesłane metodą ... POST winksmiley.jpg Są to dane przesłane formularzem gdyż tą metodą najczęściej przesyłane są dane z formularzy.


--------------------
Go to the top of the page
+Quote Post
brekmar
post 24.06.2007, 18:51:12
Post #8





Grupa: Zarejestrowani
Postów: 76
Pomógł: 0
Dołączył: 19.01.2005

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


nie myle pojec, moznac w formularzu przeciez zrobic method="get" i dlatego pytam czy wysylajac formularzem dane poprzez get tez da sie odczytac z jakiej strony przylecialy

Ok juz wiem, dzieki za pomoc smile.gif
Go to the top of the page
+Quote Post
L_Devil
post 25.06.2007, 21:09:04
Post #9





Grupa: Zarejestrowani
Postów: 195
Pomógł: 0
Dołączył: 13.04.2004
Skąd: Łódź

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


To jest metoda wysyłania formularza, nie funkcja winksmiley.jpg

$_SERVER['HTTP_REFERER']; jest niezależne od obecności formularza, ale ciężko mu zaufać. Zrób tak:

Kod
Plik form.html:

<form method="GET" action="skrypt.php">
<input type="text" name="costam" value="Tu wpisz tekst" />
<input type="hidden" name="refer" value="form.html" />
<button type="submit">Wyślij</button>
</form>

Plik form2.html:

<form method="GET" action="skrypt.php">
<input type="text" name="costam" value="Tu wpisz inny tekst" />
<input type="hidden" name="refer" value="form2.html" />
</form>


Plik skrypt.php:
  1. <?php
  2. switch($_GET['refer'])
  3. {
  4. case 'form.html':
  5.  // formularz przybył z form.html
  6. break;
  7. case 'form2.html':
  8.  // formularz przybył z form2.html
  9. break;
  10. default:
  11. die('nieznany formularz: ' . $_GET['refer']);
  12. break;
  13. }
  14. ?>


--------------------
Językiem którym najlepiej operują wszyscy programiści są przekleństwa.
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: 19.07.2025 - 07:00