Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Ukośnik przed cudzysłowem
Forum PHP.pl > Forum > Przedszkole
detter
Witam.
Mam taki problem: jeśli w formularzu w polu input wpisze się text zawierający cudzysłów, to w zmiennej przekazywany
jest oprócz wpisanej treści przed każdym cudzysłowem ukośnik (\).
Czy ktoś ma pomysł jak się pozbyć tego ukośnika i otrzymać zmienną z cudzysłowami ale bez żadnych ukośników??

dla przykładu:
  1. wpisuje:
  2.  
  3. jakas "specjalistyczna" nazwa
  4.  
  5. a otrzymuje:
  6.  
  7. jakas \"specjalistyczna\" nazwa
EarthCitizen
W php.ini masz ustawione magic_quotes_gpc na ON, po więcej info zapraszam na http://pl.php.net/manual/pl/info.configura...agic-quotes-gpc

  1. <?php
  2. if (get_magic_quotes_gpc()) { // Jeżeli magic_quotes_gpc = ON
  3.    $_POST['key']   = stripslashes($_POST['key']);
  4.    $_GET['key']    = stripslashes($_GET['key']);
  5.    $_COOKIE['key'] = stripslashes($_COOKIE['key']);
  6. }
  7. ?>


Możesz też użyć funkcji, która przeleci po całej tablicy:

  1. <?php
  2. function stripslashes_rec($array) {
  3.    foreach ((array)$array as $key => $value) {
  4.        if (is_array($value)) {
  5.            $array[$key] = stripslashes_rec($value);
  6.        } else {
  7.            $array[$key] = stripslashes($value);
  8.        }
  9.    }
  10.  
  11.    return $array;
  12. }
  13.  
  14.    $_POST = stripslashes_rec($_POST);
  15.    // analogicznie dla $_GET i $_COOKIE i dla każej innej tablicy ;)
  16. }
  17. ?>


Zwróć jednak uwagę, że dodanie backslasha jest ze względów bezpieczeństwa i uniknięcia wielu problemów przy dalszym operowaniu na tych zmiennych...
Szczególnie zapoznaj się z http://forum.php.pl/index.php?showtopic=23258 (SQL Injection)
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.