Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%)
|
Opakowałem sobie funkcje filtrów w klasę Filter. Zdziwiłem się testują ponieważ zarówno klasa jak i zwykłe funkcje zwracają mi wartość null.
Kod testowy: Odpowiedź: Cytat null Przypuszczam że funkcje filter_* nie pobierają danych bezpośrednio z tablic super-globalnych. Jak w takim razie mam przetestować te funkcje, unikając pisania formularza do nich?null null null array 'product_id' => string 'libgd<script>' (length=13) - To pytanie wynika bardziej z ciekawości niż ogromnej komplikacji, bo i tak zaraz napiszę formularz testowy. (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) edit> No tak jak myślałem. Przez formularz, funkcje odpowiadają poprawnie. Ten post edytował orglee 20.10.2008, 20:11:59 |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 120 Pomógł: 12 Dołączył: 9.10.2008 Skąd: Tricity.Rumia() Ostrzeżenie: (0%)
|
Czy ja jestem ślepy?Czy nie zamiesciles kodu klasy ?
|
|
|
|
Post
#3
|
|
|
Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%)
|
A po co? Moje pytanie nie dotyczy klasy tylko funkcji filter_* i tego skąd pobierają one dane.
Historyjka z klasą jest tylko tłem problemu. |
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 31 Dołączył: 13.11.2006 Skąd: się znamy? Ostrzeżenie: (0%)
|
|
|
|
|
Post
#5
|
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 6 Dołączył: 26.03.2008 Skąd: Łódź Ostrzeżenie: (0%)
|
Drugi argument jest raczej podstawiany w metodzie klasy Filter.
|
|
|
|
Post
#6
|
|
|
Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%)
|
Mistrzu... Przecież to dokładnie to samo co ja zrobiłem, żeby przypisać wartość do pola super-globalnej tablicy $_POST, tylko że inaczej zapisane. Poza tym test zerżnąłem z manual'a PHP. http://pl2.php.net/manual/pl/function.filter-input-array.php
Edit: Sprawdź sobie czy może klasa korzysta z $HTTP_POST_VARS albo co jeszcze gorzej z register globals Cytat /* data actually came from POST $_POST = array( 'product_id' => 'libgd<script>', 'component' => '10', 'versions' => '2.0.33', 'testscalar' => array('2', '23', '10', '12'), 'testarray' => '2', ); */ I tak jak napisałem w pierwszym poście. Moja klasa Filter to tylko obiektowe opakowanie wbudowanych w PHP (od 5.2) funkcji filter_* ( np. filter_input ) Wszystko mi zaczęło działać kiedy do testowania wykorzystałem prosty formularz, wysyłający jedno pole metodą post. Stąd moja ciekawość. W jaki sposób funkcje filter_* dostają się do wartości z tablic super-globalnych. Skoro funkcja nie widzi wartości zmiennej, jeśli ją przypiszę wewnątrz skryptu. Czyli na przykład tak jak podał empathon. |
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 31 Dołączył: 13.11.2006 Skąd: się znamy? Ostrzeżenie: (0%)
|
Przecież to dokładnie to samo co ja zrobiłem, żeby przypisać wartość do pola super-globalnej tablicy $_POST, tylko że inaczej zapisane. Przyjrzyj się dokładniej. To co robiłeś może w tym wypadku ma ten sam efekt ale różnica jest znacząca (czepiam się). http://pl2.php.net/manual/pl/function.filt...array.php#84299 http://pl2.php.net/manual/pl/ref.filter.php#71898 |
|
|
|
Post
#8
|
|
|
Grupa: Zarejestrowani Postów: 999 Pomógł: 30 Dołączył: 14.01.2007 Skąd: wiesz ? Ostrzeżenie: (0%)
|
Dobra linki do komentarzy pomogły, ten aspekt już pojąłem.
Jednak nadal nie rozumiem gdzie tutaj jest różnica: ? (IMG:http://forum.php.pl/style_emoticons/default/blinksmiley.gif) - No dobra oprócz tego, że w moim nadpisujemy całą tablicę. Ale chyba nie ma to wpływu na sposób w jakim operuje filter_*. |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 246 Pomógł: 31 Dołączył: 13.11.2006 Skąd: się znamy? Ostrzeżenie: (0%)
|
To tak jakbys przy zmianie prezydenta wybijal cala administracje (hehe).
Zly nawyk, tak nie wypada. Jasne, ze to test ale gdybys cos takiego napisal w produkcyjnym kodzie pewnego pieknego pieknego dnia moglbys stracic kilka godzin na debugging. Obaj to wiemy. |
|
|
|
![]() ![]() |
|
Aktualny czas: 23.12.2025 - 10:52 |