Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 14.11.2010 Ostrzeżenie: (0%)
|
Witam,
mam taki kod:
gdzie $zmienna to ścieżka dostępu do pliku (np. "C:\Documents and Settings\User\Moje dokumenty\Moja muzyka\fotki\"). I problem polega na tym, że do bazy zapisuje się wartość bez dodanych backslash'y i po wyciągnięciu tego z bazy za pomocą stripslashes otrzymuję ścieżkę w postaci "C:Documents and SettingsUserMoje dokumentyMoja muzykafotki". Natomiast ostatnia linia powyższego kodu wyświetla zmienną w postaci prawidłowej, czyli "C:\Documents and Settings\User\Moje dokumenty\Moja muzyka\fotki". Czyli funkcja addslashes działa dopóki nie dodaję danych do bazy. W czym tkwi problem? Co robię źle? Pozdrawiam cezarek |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D |
To, że używasz starych kursów widać poprzez <?= bo choć jest to poprawne, oznacza, że używasz dyrektywy, która powoduje problemy z XML.
Addslashes jest podawane w kursach, bo wspomniana przez chłopaków funkcja nie jest staruszkiem aż takim ( wyszła w gałęzi 4.3, czyli ostatniej z serii PHP4 ) i wcześniej tak się robiło. Ale trzeba było uważać na magic_quotes_gpc (które robi właśnie addslashes, przez co możesz je podwójnie wykonać, nie wiedząc o tym) i inne syfy, więc nie jest to lubiane i akceptowane rozwiązanie w chwili obecnej, gdy nigdy nie wiesz czym Cię uraczy hosting w php.ini przy zakupie serwera i czy da się prosto pewne rzeczy włączyć/wyłączyć czy też nie. W efekcie musisz sprawdzać czy owa, nienawidzona prze wielu, dyrektywa jest włączona i wedle niej aplikować bądź nie addslashes, a sam widzisz, że to mało eleganckie, a przede wszystkim upierdliwe. Jeśli walisz cokolwiek do value formularzy to zawsze może zajść konflikt apostrofów (pojedynczych i podwójnych) i dlatego wrzucanie tam treści zakończy się problemami. Tekst zobaczysz w Źródle strony, ale nie na samej stronie, bo przeglądarka tego nie zinterpretuje dobrze. Tutaj trzeba użyć wspomnianej html_entities z właściwą dla Ciebie w skrypcie flagą quotów (nie zawsze jest to wartość domyślna). |
|
|
|
cezarek [MySQL][PHP]Problem z addslashes 14.11.2010, 21:44:48
wookieb 1) Nie addslashes bo do tego nie służy
2) mysql_re... 14.11.2010, 21:47:25
cezarek Czyli zamiast addslashes powinienem użyć mysql_rea... 14.11.2010, 22:08:38
wookieb Cytat(cezarek @ 14.11.2010, 22:08:38 ... 14.11.2010, 22:11:06
cezarek Być może znów popełniam jakiś błąd, ale gdy wyciąg... 14.11.2010, 22:18:02
fifi209 Do zabezpieczenia przez SQL Injection służy wspomn... 15.11.2010, 00:14:03
wookieb Wszystko jest ok, ale jeżeli chcesz dodać takie po... 15.11.2010, 07:01:46
cezarek Super, wszystko hula jak należy. Wielkie dzięki, c... 15.11.2010, 20:59:52
Mephistofeles Tak, ponieważ short tages są czasami wyłączone, a ... 15.11.2010, 21:09:47
fifi209 Osobiście używam "pełnej" wersji czyli: ... 15.11.2010, 22:02:15 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 11:24 |