Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] czy to zapytanie jest prawidłowe?
Forum PHP.pl > Forum > Przedszkole
peter13135
  1. $sql = mysql_query("UPDATE pportal_users SET
  2. user_email='$new_user_email',
  3. user_gg='$new_user_gg',
  4. user_www='$new_user_www',
  5. user_skad='$new_user_skad',
  6. user_plec='$new_user_plec',
  7. user_dataurodzenia='$new_user_dataurodzenia',
  8. user_zainteresowania='$new_user_zainteresowania',
  9. WHERE user_login='$login' ");
zulus
Nie:
Kod
user_zainteresowania='$new_user_zainteresowania',


wywal tutaj przecinek

Ponadto:
1. Nazwy tabel i pól powinny raczej być w odwrotnych cudzysłowach (`pole`) - potem nie ma problemu typu "dlaczego ta nazwa pola nie wchodzi"

2. Dane przekazujesz prosto z np $_POST czy przepuszczasz przez np. mysql_real_escape_string()? Jeżeli to pierwsze to uważaj na ataki SQLinjection
peter13135
a przed sql injection niewystarczy takie cośquestionmark.gif
$a=htmlspeialchars($_POST['a']);
zulus
Na pewno nie chroni przed wysypaniem SQL'a Jeżeli na końcu łańcucha w zmiennej będzie np znak \ to zapytanie się wysypie.

Poczytaj sobie htmlspecialchars i mysql_real_escape_string
peter13135
no powiedzmy że htmlspecialchars to rozumiem, a to drugie to pierwsze słyszę...
mam rozumieć że żeby zabezpieczyć to musze używac obu tych funkcji?
zulus
htmlspecialchars za manualem:
Cytat
This function is useful in preventing user-supplied text from containing HTML markup, such as in a message board or guest book application.

Dzięki temu jak wyświetlasz te zmienne w przeglądarce możesz być spokojny o takie ataki jak np XSS.

mysql_real_escape_string dotyczy samej bazy. Jak przepuścisz łańcuch przez tą funkcję to masz pewność że zapytanie się nie wysypie i nic się przez nie nie przedrze (przynajmniej w teorii). W manualu masz też info jak używać przy włącznych magic_quotes tongue.gif
peter13135
oki, napewno sie tym zainteresuje
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.