Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP] Filtracja PHP zapisywanego do Mysql "mysql_escape_string"
Spyder
post
Post #1





Grupa: Zarejestrowani
Postów: 269
Pomógł: 7
Dołączył: 12.10.2006
Skąd: Newcastle Upon Tyne

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


Witam

Kiedy wysylam do bazy kod php ponizej wpisuje mi do bazy ale tylko poczatek. Tu jak filtruje dane:
  1. $CommentContent = htmlspecialchars(mysql_escape_string(trim($_POST['CommentContent'])));


Dokladnie dodaje mi tylko to:

  1. <?php
  2.  
  3. // Strip magic quotes from request data.
  4. if (function_exists('get_magic_quotes_gpc')
i wywala sie na &&

Nie mam limitu znakow. Dzieki


WYSTLANY KOD DO BAZY PONIZEJ
  1. <?php
  2.  
  3. // Strip magic quotes from request data.
  4. if (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) {
  5. // Create lamba style unescaping function (for portability)
  6. $quotes_sybase = strtolower(ini_get('magic_quotes_sybase'));
  7. $unescape_function = (empty($quotes_sybase) || $quotes_sybase === 'off') ? 'stripslashes($value)' : 'str_replace("\'\'","\'",$value)';
  8. $stripslashes_deep = create_function('&$value, $fn', '
  9. if (is_string($value)) {
  10. $value = ' . $unescape_function . ';
  11. } else if (is_array($value)) {
  12. foreach ($value as &$v) $fn($v, $fn);
  13. }
  14. ');
  15.  
  16. // Unescape data
  17. $stripslashes_deep($_POST, $stripslashes_deep);
  18. $stripslashes_deep($_GET, $stripslashes_deep);
  19. $stripslashes_deep($_COOKIE, $stripslashes_deep);
  20. $stripslashes_deep($_REQUEST, $stripslashes_deep);
  21. }
  22.  
  23. ?>


Ten post edytował Spyder 15.08.2010, 16:19:41


--------------------
Portfolio

Windows Vista Business SP1
DELL VOSTRO 200, Intel Core2 DUO E4600 2.4GHz, 3 GB RAM, ATI Radeon HD 2400 Pro, Screen DELL 22"

Pomogłem ci -> Kliknij "Pomógł" -> Dzięki
Go to the top of the page
+Quote Post
Ramzaa
post
Post #2





Grupa: Zarejestrowani
Postów: 207
Pomógł: 17
Dołączył: 4.08.2009

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


Co jak co, ale get_magic_quotes_gpc proponuję zastąpić czymś innym, bo w php6 już tej funkcji nie będzie.

http://wortal.php.pl/wortal/artykuly/php/p..._w_php6_czesc_1
Go to the top of the page
+Quote Post
Spyder
post
Post #3





Grupa: Zarejestrowani
Postów: 269
Pomógł: 7
Dołączył: 12.10.2006
Skąd: Newcastle Upon Tyne

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


Ale ja tego nie uzywam wcale to jest kod PHP ktory probowalem wstawic do DB tylko przyklad kodu PHP

Jakies Pomysly?


--------------------
Portfolio

Windows Vista Business SP1
DELL VOSTRO 200, Intel Core2 DUO E4600 2.4GHz, 3 GB RAM, ATI Radeon HD 2400 Pro, Screen DELL 22"

Pomogłem ci -> Kliknij "Pomógł" -> Dzięki
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




  1. htmlspecialchars(mysql_escape_string(trim($_POST['CommentContent'])));

mysql_real_escape_string powinno być najbardziej zewnętrzną funkcją.
Powód edycji: [erix]: @down: no i wszystko zepsułeś :P


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
thek
post
Post #5





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




A zamień sobie kolejność htmlspeciachars (lub htmlentities) i mysql_real_escape_string.


--------------------
Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
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: 21.08.2025 - 09:50