Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> Sprawdzanie czy istnieje $_POST
menic
post
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.


--------------------
Jak masz cos zrobic dobrze...
...To musisz zrobić to sam.

Uchwycić moment...
Go to the top of the page
+Quote Post
spenalzo
post
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]


--------------------

Go to the top of the page
+Quote Post
menic
post
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:


--------------------
Jak masz cos zrobic dobrze...
...To musisz zrobić to sam.

Uchwycić moment...
Go to the top of the page
+Quote Post
scanner
post
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?


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
menic
post
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 winksmiley.jpg


--------------------
Jak masz cos zrobic dobrze...
...To musisz zrobić to sam.

Uchwycić moment...
Go to the top of the page
+Quote Post
scanner
post
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


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
e-Gandalf
post
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]
Go to the top of the page
+Quote Post
sebus
post
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...
Go to the top of the page
+Quote Post
scanner
post
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?


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
e-Gandalf
post
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?!?
Go to the top of the page
+Quote Post
menic
post
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:


--------------------
Jak masz cos zrobic dobrze...
...To musisz zrobić to sam.

Uchwycić moment...
Go to the top of the page
+Quote Post
e-Gandalf
post
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...
Go to the top of the page
+Quote Post
menic
post
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 tongue.gif
A co dotego podpinania. To ktoś zawsze może stworzyć formularz podobny jak na stronie i tą ukryta zmienna usunąć i po zabezpieczeniu winksmiley.jpg


--------------------
Jak masz cos zrobic dobrze...
...To musisz zrobić to sam.

Uchwycić moment...
Go to the top of the page
+Quote Post
scanner
post
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.


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
menic
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... tongue.gif zapomnij że cos prześlesz tongue.gif tongue.gif tongue.gif


--------------------
Jak masz cos zrobic dobrze...
...To musisz zrobić to sam.

Uchwycić moment...
Go to the top of the page
+Quote Post
e-Gandalf
post
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...
Go to the top of the page
+Quote Post
menic
post
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 smile.gif
(A czemu wczesniej nie chciało rolleyes.gif )
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 winksmiley.jpg
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 :?:


--------------------
Jak masz cos zrobic dobrze...
...To musisz zrobić to sam.

Uchwycić moment...
Go to the top of the page
+Quote Post
e-Gandalf
post
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.
Go to the top of the page
+Quote Post
tuzi
post
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... tongue.gif zapomnij że cos prześlesz tongue.gif tongue.gif tongue.gif


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ść.
Go to the top of the page
+Quote Post
e-Gandalf
post
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.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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 Aktualny czas: 21.08.2025 - 11:41