Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Ta sama pętla w funkcji i poza nią, inne wyniki
IceManSpy
post 12.10.2010, 16:26:34
Post #1





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

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


Witam

Mam taką pętlę, która jest gdzieś w kodzie:
  1. foreach($tab as $key => $wart)
  2. {
  3. $tab[$key] = trim(htmlspecialchars(addslashes($tab[$key])));
  4. }
Wszystko działa super. Dodaje ukośniki i w przypadku JS zamienia na encję. Tablica na której to testuje to:
  1. $tab = array('imie' => "Te'st" , 'nazwisko' => 'Nowak' , 'skrypt' => '<script>alert(123);</script>');
Po print_r (bezpośrednio w kodzie) dostaję:
  1. Array ( [imie] => Te\'st [nazwisko] => Nowak [skrypt] => <script>alert(123);</script> )
Jednak kiedy zapiszę to jako funkcję, to htmlspecialchars nie działa:
  1. function Tabliczka($tablica)
  2. {
  3. foreach($tablica as $key => $wart)
  4. {
  5. $tablica[$key] = trim(htmlspecialchars(addslashes($tablica[$key])));
  6. return $tablica;
  7. }
  8. }
  9. $tab = Tabliczka($tab);
to print_r pokazuje mi:
  1. Array ( [imie] => Te\'st [nazwisko] => Nowak [skrypt] => )
Czyli dodaje slasha, ale htmlspecialchars nie działa. Nawet jeśli przekażę przez referencję:
  1. function Tabliczka(&$tablica)
  2. {
  3. foreach($tablica as $key => $wart)
  4. {
  5. $tablica[$key] = trim(htmlspecialchars(addslashes($tablica[$key])));
  6. return $tablica;
  7. }
  8. }
  9. $tab = Tabliczka($tab);
I zrobię print_r:
  1. Array ( [imie] => Te\'st [nazwisko] => Nowak [skrypt] => )
To sytuacja się powtarza co wcześniej.
Jak to rozwiązać?

Ten post edytował IceManSpy 12.10.2010, 16:27:50


--------------------
Go to the top of the page
+Quote Post
Wicepsik
post 12.10.2010, 16:35:43
Post #2





Grupa: Zarejestrowani
Postów: 1 575
Pomógł: 299
Dołączył: 26.03.2009

Ostrzeżenie: (20%)
X----


postaw return za pętlą

Ten post edytował Wicepsik 12.10.2010, 16:35:56


--------------------
Go to the top of the page
+Quote Post
IceManSpy
post 12.10.2010, 22:45:09
Post #3





Grupa: Zarejestrowani
Postów: 1 006
Pomógł: 111
Dołączył: 23.07.2010
Skąd: Kraków

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


No tak, taki błąd -.- Wielki dzięki


--------------------
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: 17.06.2025 - 07:53