Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] addslashes vs. [x]_real_escape_string
Forum PHP.pl > Forum > Przedszkole
Jen
Moje pierwsze pytanie dotyczy różnicy pomiędzy funkcjami addslashes oraz [x]_real_escape_string (bo lepiej użyc [x]_real_escape_string zamiast [x]_escape_string?). Chcę przygotować dane do zapisania w bazie i nie wiem której funkcji użyć? Np:

  1. <?php
  2. $dane = "cos ' \" dewd";
  3. if(get_magic_quotes_gpc()==false) {
  4.  $dane = mysql_real_escape_string($dane); // czy $val = addslashes($val); ?
  5. }
  6. zapytanie = "UPDATE costam..." ;
  7. ?>


Mam również drugie pytanie:) Załóżmy, że na serwerze wyłączone są magic quotes. Sprawdzone to zostanie w skrypcie za pomocą get_magic_quotes_gpc(). Zatem używając funkcji addslashes dane w bazie zapiszą się z ukośnikami, tak? Czyli aby je później poprawnie wyświetlić będzie trzeba użyć stripslashes() (wcześniej ponownie sprawdzając warunek czy magic quotes są wyłączone)? A co jeżeli w tym czasie administrator na serwerze włączy magic quotes? "W tym czasie" czyli po zapisaniu do bazy, ale przed odczytem? o_O Bardzo proszę o wyjaśnienie tego zagadnienia. Z góry dziękuję.

Pozdrawiam:)
Hazel
No jeśli dobrze Cię rozumiem, to masz zamiar za pomoca get_magic_quotes_gpc() sprawdzać przed zapytaniem, czy magiczne cudzysłowy są włączone, i wywolywać stripslashes() jedynie wtedy, gdy są wyłączone... W takim przypadku nie grozi Ci to, że wyświetlisz dane z ukośnikami, bo skrypt automatycznie oleje Ci stripslashes() jeśli get_magic_quotes_gpc() zwróci Ci true...
Jen
Dzięki @Hazel za odp:)

Tak, o tym wiem i po to jest tam warunek. Ale lepiej w tym przypadku użyć addslashes czy mysql_real_escape_string? Czy te funkcje robią dokładnie to samo?
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.