![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Sprawa tyczy się $_POST. Problem w tym, że jak w skrypcie napisze
if( isset($_POST) ) { echo 'jest'; } albo if( empty($_POST) ) { echo 'jest'; } To zqwsze pokazuje sie jest, nawet jeżeli o żadnym forumularzu nie mam mowy :| Dąże do tego aby rozróżnić czy jakaś tablica $_POST[] została utworzona w skrypcie. -------------------- |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Spróbuj może
[php:1:ce057a34fd]<?php if(is_array($_POST)) { echo "cośtam"; } ?>[/php:1:ce057a34fd] -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Tak też próbowałem :cry:
-------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
AFAIR superglobale tworzone są zawsze - inna sprawa, czy sa puste, czy nie. Może by tak sprawdzić [manual:fcc15c624a]sizeof()[/manual:fcc15c624a] dla tablicy?
-------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Cytat AFAIR superglobale tworzone są zawsze - inna sprawa, czy sa puste, czy nie. Może by tak sprawdzić [manual:4a128fe843]sizeof()[/manual:4a128fe843] dla tablicy?
Co znaczy AFAIR :?: Co do sizeof() to nie wpadłem ![]() -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Cytat Co znaczy AFAIR As Far As I Remember
-------------------- |
|
|
![]()
Post
#7
|
|
Grupa: Przyjaciele php.pl Postów: 195 Pomógł: 0 Dołączył: 7.07.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat Sprawa tyczy się $_POST. Problem w tym, że jak w skrypcie napisze
if( isset($_POST) ) { echo 'jest'; } albo if( empty($_POST) ) { echo 'jest'; } To zqwsze pokazuje sie jest, nawet jeżeli o żadnym forumularzu nie mam mowy :| Bo nie sprawdzasz czy zostal wyslany formularz tylko czy zostala wyslana jakakolwiek zmienna POSTem. Jesli zostala, to empty($_POST) zawsze zwroci false. Jezeli jedynym POSTem jaki wysylasz jest formularz to spokojnie mozesz sprawdzac empty($_POST) . Jesli Ci nie zadzialal, to musiales popelnic jakis blad... Natomiast wygodniej jest w formularzu tworzyc jakas zmienna typu hidden i potem istnienie tego klucza sprawdzac w POST: [xml:1:b402cf0b57] <form action="" method="POST"> <input type="hidden" name="exec" value="true" /> </form> [/xml:1:b402cf0b57] a w kodzie: [php:1:b402cf0b57]<?php if (isset($_POST['exec'])) {print 'wyslano formularz';} ?>[/php:1:b402cf0b57][/xml] |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 4.07.2003 Skąd: Świdnik Ostrzeżenie: (0%) ![]() ![]() |
Nie jestem pewien czy sie nie myle ale moze sproboj sprawdzic cos takiego...
[php:1:aaca4f325a]<?php if (function_exists($_POST)) { echo "jest"; } else { echo "nie ma"; } ?>[/php:1:aaca4f325a] Nie wiem na 100% czy to zadziala ale sprobowac mozna... |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
Cytat Nie jestem pewien czy sie nie myle A co ma zmienna do funkcji?
-------------------- |
|
|
![]()
Post
#10
|
|
Grupa: Przyjaciele php.pl Postów: 195 Pomógł: 0 Dołączył: 7.07.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat Nie jestem pewien czy sie nie myle ale moze sproboj sprawdzic cos takiego...
[php:1:52c1d20ff9]<?php if (function_exists($_POST)) ?>[/php:1:52c1d20ff9] Nie wiem na 100% czy to zadziala ale sprobowac mozna... Intrygujace... 1) [manual:52c1d20ff9]http://pl.php.net/manual/en/reserved.variables.php#reserved.variables.post[/manual:52c1d20ff9] Cytat An associative array of variables passed to the current script via the HTTP POST method.
Cytat Tablica asocjacyjna zmiennych otzymanych przez skrypt z metody POST protokolu HTTP.
2) [manual:52c1d20ff9]http://pl.php.net/manual/en/function.function-exists.php[/manual:52c1d20ff9] Cytat Checks the list of defined functions, both built-in (internal) and user-defined, for function_name.
Cytat Przeszukuje liste zdefiniowanych funkcji, zarowno wbudowanych jak i zadeklarowanych przez uzytkownika, w poszukiwaniu argumentu.
Jaki widzisz zwiazek?!? |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
Nie moge dorzucić ukrytej zmiennej bo ma to sprawdzać, czy nikt nie podpiął sie pod skrypt. Ale użyłem count($_POST) i działa. Chyba że coś będzie bardzie cywilozowanego bo to aktualne to trochę takie lamerskie :oops: :oops:
-------------------- |
|
|
![]()
Post
#12
|
|
Grupa: Przyjaciele php.pl Postów: 195 Pomógł: 0 Dołączył: 7.07.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Ale
[php:1:1b76c41811]<?php count($_POST) ?>[/php:1:1b76c41811] to to samo co [php:1:1b76c41811]<?php empty($_POST) ?>[/php:1:1b76c41811] z ta roznica, ze przy empty tabica $_POST moglaby nie istniec (ale istnieje zawsze, wiec roznicy nie ma). cunt() zwroci Ci 0 kiedy tablica jest pusta, empty() zwroci Ci 0 kiedy tablica nie pusta wiec wystarczy zanegowac i masz synonimy. Natomiast nie rozumiem co zyskujesz nie dodajac zmiennej hidden. Jak to sprawdzasz czy nikt sie nie "podpial"? Jak mialby sie "podpiac"? hidden daje Ci po prostu semafor okreslajacy czy formularz zostal wyslany czy nie... |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
to nie jest to samo. Bo to z count() działa a z empty nie
![]() A co dotego podpinania. To ktoś zawsze może stworzyć formularz podobny jak na stronie i tą ukryta zmienna usunąć i po zabezpieczeniu ![]() -------------------- |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarząd Postów: 3 503 Pomógł: 28 Dołączył: 17.10.2002 Skąd: Wrocław ![]() |
A nie uważasz, że jeśli skopiuje Twoj formularz na moja strone i klikne submit, to dla skryptu to nie będzie żadna róznica? POST is POST.
-------------------- |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
No tak. Ale to czy istnieje post było tylko po to aby wywołac funkcję. Jeżeli wysyłamy cos formularzem to uruchamia sie funkcja która sprawdza skąd formularz przyszedl. Jeżeli adres jest różny niż nazwa serwera to...
![]() ![]() ![]() ![]() -------------------- |
|
|
![]()
Post
#16
|
|
Grupa: Przyjaciele php.pl Postów: 195 Pomógł: 0 Dołączył: 7.07.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
To trzeba bylo od poczatku pisac jaki masz cel. Srodki ktorych probowales dobrac byly niezbyt adekwatne.
Jak juz napisal scanner, strach przed hiddenem to tak samo jakbys bal sie wstawic jakiekolwiek pole (nie wiem, name, login, email..) bo przeciez ktos moze wyciac... Ja zawsze stosuje ten semafor - jest $_POST['exec'] ? no to jest formularz, nie ma? no to nie ma forumlarza i nic mnie nie obchodzi. Jesli zamiast tego chcesz sprawdzac czy cokolwiek przeszlo postem to mozesz zastosowac: if (count($_POST)) {} if (!empty($_POST)) {} i uwierz, ze w tym zastosowaniu to JEST to samo, a jesli Ci nie dziala, to tylko znaczy, ze cos zle wpisujesz... |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 493 Pomógł: 0 Dołączył: 14.06.2003 Skąd: Tomaszów Lubelski/Rzeszów Ostrzeżenie: (0%) ![]() ![]() |
żeczywiście z empty() działa
![]() (A czemu wczesniej nie chciało ![]() Ale co do tyego $_POST['exec'] to trochę nie rozumiem :| Bo to co wymysliłem to tylko wsparcie. Bo skrypt sprawdza najpierw sesjie i potencjalna osoba która będzie chciała przechytrzyć będzie na to miała 30 minut, bo po takim czasie sesja wygasa i jest tworzona nowa. Jezeli nawet po tym czasie będzie chciał wykorzystac formularz z ID sesji to nic nie da. Na dodatek sprawdza jaki jest status sesji itp. ale to już na inny temat ![]() A chce zrobić to bez hidden, bo chce aby to wszystko był jak najbardzie zaautomatyzowane i i jednolite. Poprostu ma sprawdzac wszystkie formularze i tyle. A jak ktos zapomni dopisac hidden :?: -------------------- |
|
|
![]()
Post
#18
|
|
Grupa: Przyjaciele php.pl Postów: 195 Pomógł: 0 Dołączył: 7.07.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
No ok, jesli potrzebujesz tylko sprawdzic czy jakies dane ida postem to odpowiednim rozwiazniem jest empty albo count.
|
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 14.05.2003 Skąd: Wejherowo Ostrzeżenie: (0%) ![]() ![]() |
Cytat Jeżeli wysyłamy cos formularzem to uruchamia sie funkcja która sprawdza skąd formularz przyszedl. Jeżeli adres jest różny niż nazwa serwera to...
![]() ![]() ![]() ![]() Wiesz, to wcale nie jest takie pewne :wink:. Sam tak myślałem jeszcze niedawno, ale natrafiłem na pewną, nazwijmy to, grę w necie (Ngsec). Drugi etap (z dziesięciu) to właśnie omijanie sprawdzania referera :wink: Tak więc (podobno :wink: ) można jakos to obejść. |
|
|
![]()
Post
#20
|
|
Grupa: Przyjaciele php.pl Postów: 195 Pomógł: 0 Dołączył: 7.07.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
I to banalnie... Mozilla ma odpowiedni dodatek, dzieki ktoremu mozesz wysylac dowolnego referera.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 06:18 |