Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Czyszczenie stringów
Danielcom
post 17.08.2010, 19:04:02
Post #1





Grupa: Zarejestrowani
Postów: 92
Pomógł: 3
Dołączył: 6.10.2008

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


Witam, mam taką funkcję
  1. function mosGetParam( &$arr, $name, $def=null) {
  2. $return = null;
  3. if (isset( $arr[$name] )) {
  4. if (is_string( $arr[$name] )) {
  5. $arr[$name] = trim(strip_tags( $arr[$name] ));
  6. }
  7. $arr[$name] = addslashes( $arr[$name] );
  8. }
  9. return $arr[$name];
  10. } else {
  11. return $def;
  12. }
  13. }


wszystko działa bardzo dobrze przy wywołaniu
  1. GetParam($_GET, 'test')
ale przy próbie sprawdzenia czy zmienna istnieje

  1. if (isset(GetParam($_GET, 'test') ){..}


dostaję komunikat

Fatal error: Can't use function return value in write context in ... (wskazuje na if (isset(GetParam($_GET, 'test') ){ )

W związku z powyższym, czy jest możliwość wywołania tej funkcji w taki sposób, czy trzeba jednak będzie sprawdzać zmienne normalnie (if isset($_GET['zmienna'] ...)?


Go to the top of the page
+Quote Post
nospor
post 17.08.2010, 19:06:53
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Do isset nie mozna wkladac funkcji.
Przeciez Twoje GetParam zwraca null gdy nie istnieje to czego szukasz, wiec czego tak dziko kombinujesz?


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Danielcom
post 17.08.2010, 19:13:57
Post #3





Grupa: Zarejestrowani
Postów: 92
Pomógł: 3
Dołączył: 6.10.2008

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


Niestety przerabiam kod który ktoś już napisał i czasami nie mam pojęcia o co tam chodzi.
Zapytanie do bazy generuje się z linku, wiadomo dane trzeba przefiltrować (obecnie jest wpisane bez żadnego sprawdzenia zmiennej) niestety bez if(isset...empty) reszta skryptu nie chce działać. Wygląda na to, że będę musiał cały komponent przepisać od zera, bo więcej tutaj furtek dla hakerów niż zabezpieczeń.
Go to the top of the page
+Quote Post
nospor
post 17.08.2010, 19:15:59
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




no przeciez po polsku piszę: zwraca NULL....
  1. $test = GetParam($_GET, 'test');
  2. if ($test === null) echo 'nie ma mnie';
  3. else echo 'jestem';


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Danielcom
post 17.08.2010, 19:20:21
Post #5





Grupa: Zarejestrowani
Postów: 92
Pomógł: 3
Dołączył: 6.10.2008

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


Bez nerwów smile.gif
Wiem o co chodzi, ale porostu tutaj w tym kodzie jest taki bałagan, że pomimo tego, że jest NULL (napisałem identyczny warunek jak odpisałeś) to i tak zapytanie zostaje wywołane ...
Narazie temat zostawiam, przepiszę całość od zera wtedy powinno być ok.

Go to the top of the page
+Quote Post
nospor
post 17.08.2010, 19:24:01
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
że pomimo tego, że jest NULL (napisałem identyczny warunek jak odpisałeś) to i tak zapytanie zostaje wywołane ...
Mimo wszystko pokaż jednak swój kod, co to niby jest dokładnie taki sam jak mój. Jakoś tu na forum mam takie pewne doświadczenie apropo "dokładnych kodów" winksmiley.jpg
Podaj, tak dla pewności smile.gif


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Danielcom
post 17.08.2010, 19:31:05
Post #7





Grupa: Zarejestrowani
Postów: 92
Pomógł: 3
Dołączył: 6.10.2008

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


Doświadczenia nie podważam, ale lepiej będzie jak ten kod skasuję i oprę całość o PDO.
"dokładnie taki sam jak mój" chodziło napisanie warunku if ($test === null)...

Dziękuje za pomoc, gdybym miał problem z tą funkcją lub jej wywołaniem odezwę się.

Ten post edytował Danielcom 17.08.2010, 19:32:33
Go to the top of the page
+Quote Post
everth
post 17.08.2010, 19:31:32
Post #8





Grupa: Zarejestrowani
Postów: 782
Pomógł: 153
Dołączył: 21.07.2010

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


Z manuala:
Cytat
isset() only works with variables as passing anything else will result in a parse error. For checking if constants are set use the defined() function.


--------------------
Już mi się ani wiedzieć, ani tym bardziej myśleć nie chce.
[Think different]!
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 - 20:37