PHP - Magic Quotes

DZIAŁANIE: brak działania
 

Kod:

brak kodu;

Ewentualne Objaśnienia:

Przyzwyczaiłem już Was do korzystania z funkcji addslashes jako jednego z zabezpieczeń informacji, które gdzieś w jakiś sposób są powiązane z bazą danych. Jednak warto wspomnieć, że na Waszym serwerze może być włączone automatyczne dodawanie znaków ucieczki do wszystkich danych przesyłanych wraz z żądaniem strony. System ten (funkcja) nazywa się Magic Quotes ( magiczne cudzysłowie ), która w pliku konfiguracji php czyli php.ini jest oznaczona :

magic_queotes_gpc - gpc oznacza "get,post,cookies" czyli 3 metody wykorzystywane do przesyłania informacji. Jest to bardzo wygodne bo jeśli tylko jest ona włączona to do danych z formularza itd dodawane są ukośniki, nie trzeba korzystać z funkcji addslashes. Jednak już na danych pobranych z bazy danych musimy sobie ręcznie użyć funkcji stripslashes, ale to żaden problem. Jednak nie zawsze dodawanie ukośników jest nam na rękę na przykład kiedy dane z formularza mają być nie wpisane do bazy tylko gdzieś chwilowo wyświetlone. Wtedy może być tak, że celowo gdzieś wpisano w formularzu jakiś "zakazany" znak, który powinien zostać wyświetlony na stronie normalnie a nie poprzedzony ukośnikiem.

Można zadać sobie pytanie czy korzystać z addslashes mimo wszystko ( czy jest włączone magic quotes ) bo w końcu nadmiar ostrożności nie zaszkodzi czy jak postepować ? Odpowiedź jest prosta wystarczy sprawdzać sobie w naszym skrypcie czy opcja ta jest włączona i jeżeli nie korzystać z addslashes czyli przykładowo :

if ( !get_magic_quotes_gpc() )
{
    $zmienna = addslashes($zmienna);
    $zmienna2 = addslashes($zmienna2);
}

Jeżeli funkcja sprawdzająca funkcję magicznych cudzysłowów zwróci wartośc negatywną - dodajemy znaki ukośnika do odpowiednich zmiennych.