Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] addslashes vs. [x]_real_escape_string, Pytania techniczne dotyczące dodawania ukośników :)
Jen
post
Post #1





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 25.02.2006

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


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:)
Go to the top of the page
+Quote Post
Hazel
post
Post #2





Grupa: Zarejestrowani
Postów: 492
Pomógł: 33
Dołączył: 16.08.2007
Skąd: Wrocław

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


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...


--------------------
Go to the top of the page
+Quote Post
Jen
post
Post #3





Grupa: Zarejestrowani
Postów: 20
Pomógł: 0
Dołączył: 25.02.2006

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


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?

Ten post edytował Jen 6.09.2007, 19:40:40
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 Aktualny czas: 20.08.2025 - 07:33