Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Czyszczenie stringów
Forum PHP.pl > Forum > Przedszkole
Danielcom
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'] ...)?


nospor
Do isset nie mozna wkladac funkcji.
Przeciez Twoje GetParam zwraca null gdy nie istnieje to czego szukasz, wiec czego tak dziko kombinujesz?
Danielcom
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ń.
nospor
no przeciez po polsku piszę: zwraca NULL....
  1. $test = GetParam($_GET, 'test');
  2. if ($test === null) echo 'nie ma mnie';
  3. else echo 'jestem';
Danielcom
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.

nospor
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
Danielcom
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ę.
everth
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.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.