Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Cudzysłowy i ich przetwarzanie
Forum PHP.pl > Forum > Przedszkole
track
Witam wszystkich. Pewnie nie jedna osoba spotkala sie z przetwarzaniem cydzyslowow przez php. Jak wiadomo znaki typu " lub ' sa znakami specjalnymi. php roznie sie zachowuje. Raz wogole sie ich pozbywa, a raz wstawia slash przez znakiem. Moj problem polega na wlasciwym zastosowaniu dwoch funkcji:

addSlashes() i stripSlashes()

Np. mam formularz ktory co wyslanie jest "przeladowywany" czyli dane nie wedruja nigdzie tylko z powrotem na formularz. Teraz zauwazylem dziwna rzecz. Jesli " wstawie w textarea to cudzyslow pozostanie cudzyslowem, natomiast jesli cudzyslow wstawie w pole TEXT to php zmieni go na \ i usunie wszystko co znajduje sie za nim. Probowalem juz wielu kombinacji. Jak formatowac dane z formularza, aby mozna bylo w nich umieszczac znaki specjalne " lub '. Bede wdzieczny za pomoc.

Pozdrawiam,
TRACK
ArturS
No to mały teścik:
1. Wpisuję w formularz ciąg znaków:
\ / " ' . \ | / ,
2. Do bazy po użyciu funkcji addshashes zapisuje się to w postaci:
\ / " ' . \ | / ,
czyli identycznej
3. Wyświetlając ten ciąg wyciągnięty z bazy jako zwykły tekst (np w tabeli) po użyciu stripslashes na ekranie mam
/ " ' . | / ,
czyli znikły ukośniki \
4. Chce wyedytować to pole, a tym samym ciąg z bazy wyświetlić w polu tekstowym input po przepuszczeniu przez stripslashes, to jedyne co się ukazuje to znak /

hmm.. rzeczywiście cosik nie tak działają te funkcje. Dołączam się więc do pytania TRACKa jak sobie z tym poradzić (pewnie w przyszłości się przyda)
mike
A jak macie ustawioną dyrektywę magic_quotes_gpc ?
nospor
@track jak bys pokazal kodzik jak to robisz, byloby super winksmiley.jpg Ja jakoś nigdy nie mialem z tym problemów
ArturS
funkcję addslashes wywołuję wewnątrz IFa sprawdzającego ustawienie megic quotes. Np
  1. <?php
  2.  
  3. $fv = addslashes($fv);
  4. $kontrahent = addslashes($kontrahent);
  5. $platnosc = addslashes($platnosc);
  6. $rodzaj = addslashes($rodzaj);
  7. $kwota = doubleval($kwota);
  8. }
  9.  
  10. ?>


hmm... za to stripshashes() wywołuje zawsze, bez sprawdzenia magic_quotes... może właśnie w tym problem? :-)
mike
Cytat(ArturS @ 2006-02-07 17:17:02)
hmm... za to stripshashes() wywołuje zawsze, bez sprawdzenia magic_quotes... może właśnie w tym problem? :-)

Zgadnij tongue.gif
Skoro wywalasz slashe bez sprawdzania czy zostały dodane, to czemu się dziwisz?

Przenoszę na php Pocz.
ArturS
Właściwie się nie dziwię, ale jakoś nie zwracałem na to wcześniej uwagi wacko.gif
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.