Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> jak uniknac znakow typu &gt
misty
post
Post #1





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


Czesc,
mam takie pytanie - gdy wypisuje sobie fragmenty tekstu i ktorys z nich zaczyna sie od < lub / to dodaje mi srednik! czasem, po niektorych znakach dodaje mi &gt.
Czego moglabym uzyc aby tego uniknac?

pzdr,
misty

Ten post edytował misty 18.01.2012, 13:45:11
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
gothye
post
Post #2





Grupa: Zarejestrowani
Postów: 702
Pomógł: 65
Dołączył: 16.03.2009

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


np. : preg_replace , str_replace


--------------------
Nie udzielam pomocy poprzez PW
Go to the top of the page
+Quote Post
misty
post
Post #3





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


No co Ty. Ale przeciez te &gt itp to sa jakies specjalne znaki ktore sa dodawane przed jakimis specjalnymi znakami, np wlasnie przed /. Nie znam calej listy tych znakow ktore mialabym usuwac. Nie ma do tego niczego gotowego?

pzdr
Go to the top of the page
+Quote Post
rocktech.pl
post
Post #4





Grupa: Zarejestrowani
Postów: 587
Pomógł: 131
Dołączył: 8.02.2010

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


Witam.

Doprecyzuj pytanie.

Z tego co widzę to masz jakieś rozwiązanie które dodaje tekst do bazy, wcześniej przepuszczając go przez jakąś pseudo-walidację.


--------------------
Despite the tons of examples and docs, mod_rewrite is voodoo. Damned cool voodoo, but still voodoo. --Brian Moore

I never go looking for a sucker. I look for a Champion and make a sucker of of him. --Amarillo Slim


Home-made : js-gui-classes | Accordion | Tabs | Carousel / php-sms-classes | Obsługa bramki SMS MultiInfo | Obsługa bramki SMS Mobiltek
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




@misty ostatnio pisałem ci o htmlspiecialchars(). Jesli tego używasz to nic dziwnego ze dostajesz co dostajesz.
Pokaż lepiej cały kod, i pokaż dokładnie tekst na jakim operujesz


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
vee
post
Post #6





Grupa: Zarejestrowani
Postów: 64
Pomógł: 5
Dołączył: 16.08.2011

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


htmlspecialchars_decode

Problem polega na tym, że masz dwukrotnie filtrowany tekst (albo i lepiej), tzn jeśli wpiszesz np.:

"Test"

zapisać powinno:

Kod
"Test&quot


natomiast, Ty to filtrujesz 2-krotnie, w wyniku czego dostajesz:

Kod
"Test&quot


EDIT: ehh, forum mi parsuje posta, więc nie ma on żadnego sensu, jeśli chodzi o przykłady.

To jest oczywiście moje przypuszczenie, niestety nie pokazałaś żadnych konkretnych informacji nt kodu, tekstu itd., więc można powiedzieć, że wróżę teraz z fusów.

Ten post edytował vee 18.01.2012, 13:57:36
Go to the top of the page
+Quote Post
misty
post
Post #7





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


Dobra, wiec po kolei. Mam sobie pole w bazie ktore trzyma tekst. Tekst ten moze byc dlugi, dlatego tez musze go ciac (po stronie php). Definiuje max dlugosc linijki i po takiej dlugosci tne tekst. Tekst ten moze byc zwyklym tekstem lub moze byc to xml. Wczesniej pisalam o tym ze nie wychwyca mi tagow xml, dlatego teraz uzywam htmlspecialchars, czyli:

  1. $msg = htmlspecialchars($msg);


i potem to $msg tne. Oczywiscie dla xmli zdarza sie ze uciete sa tagi, ze nowa linijka zaczyna sie od / lub <. I to jest ok z punktu widzenia tego co ma byc. Jednak zauwazylam ze gdy niektore linijki zaczynaja sie od pewnych znakow, to dodawane sa jakies ekstra. Podam pare przykladow:

  1. ;/completePages>
- tutaj nie powinno byc srednika
  1. /passPrinterOnly> <qck&g"
- tu z kolei na koncu nie powinno byc &g


Znaki te same mi sie dodaja. Chcialabym sie dowiedziec co moge z tym zrobic, zeby sie nie dodawaly.


pzdr,
misty
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
i potem to $msg tne
misty, w ogole nie przyjelas do wiadomosci poprzedniego tematu :/

htmlspiecialchars sluzy tylko i wylacznie do wyswietlania na ekran, by zobaczyc co tam dokladnie siedzi.
skoro ty robisz operacje na tekscie to nie wolno ci stosować htmlspiecialchars bo zaburzasz strukture tekstu.

Tlumaczylem ci przecież ze te znaczniki XML ty ciągle masz tylko nie wyświetla ich przeglądarka. Zrozum to wkoncu dziewczyno.


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
misty
post
Post #9





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


No ale zrozum ze ja je musze wyswietlic!

jak robie: echo $chunk to $chunk musi zawieraz tez te znaczniki, wypisane na ekran, jako tekst. Jak nie dawalam wczesniej htmlspecialchars na $msg to w ogole mi tych znacznikow nie widzial (oczywiscie, byly w zrodle strony, ale nie o to mi przeciez chodzi). Kumasz co ja musze osiagnac?

1. Mam tekst ktory moze byc xml'em
2. Zanim rozpoczne moja petle w ktorej tne go na N znakow w moim $msg (gdzie znajduje sie caly tekst) musza byc rowniez znaczniki xml aby liczenie sie zgadzalo
3. Wyswietlam fragment po fragmecie, czyli kazdy pociety $chunk
4. $chunk moze zawierac przelamane tagi xml, czyli moze zaczynac sie od <, >, /, etc
5. W $chunk nie moga sie pojawic zadne dodatkowe rzeczy typu jakies &gt czy dodatkowe sredniki

Mozliwe ze zle podeszlam do tematu skoro teraz mam ten problem. Ale to czy ktos z Was jest mi w stanie powiedziec czego powinnam uzyc by uzyskac to czego chce?

pzdr,
misty
Go to the top of the page
+Quote Post
nospor
post
Post #10





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
No ale zrozum ze ja je musze wyswietlic!
To sobie wyświetlaj! Nikt ci tego nie broni. Ale htmlspiecialchars masz użyc bezposrednie przed wyswietleniem, a nie przed operacjami na tym tekscie!

Cytat
Kumasz co ja musze osiagnac?
Ja cały czas kumam, tylko ty nie.


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
misty
post
Post #11





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


No wlasnie widze. to na $chunk powinnam tego uzyc, czyli juz na pocietym kawalku, a nie na samym poczatku. Juz kumam, dzieki smile.gif


pzdr!

misty
Go to the top of the page
+Quote Post
by_ikar
post
Post #12





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


Jak muszę podzielić jakiś tekst (zajawki itp) to nie dziele go ilością znaków, a dziele go ilością wyrazów. Możesz sobie założyć jakąś średnią ilość tych wyrazów i na podstawie tej średniej dzielić swój tekst. Wtedy nie powstaną problemy z jakimś dziwnym rozdzielaniem wyrazów czy znaczników html/xml. IMO jedyne co powinnaś robić na takim tekście to escape, a później stripslashes. htmlspecialchars, nie jest ci do niczego potrzebny, jeżeli potrzebujesz wyświetlić html/xml. Chyba że te znaczniki mają się wyświetlić, w sensie listowanego kodu, to wtedy możesz użyć htmlspecialchars plus dzielenie na wyrazy, coby się te znaczniki nie rozwalały.
Go to the top of the page
+Quote Post
Uriziel01
post
Post #13





Grupa: Zarejestrowani
Postów: 307
Pomógł: 37
Dołączył: 9.11.2010
Skąd: Zielona Góra

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


Jeżeli to xml to chyba wypadało by wyświetlać go poprzez nagłówek jako XML. Jest to chyba logiczne i nie widzę sensu w htmlspiecialchars. Skoro nie wyświetlasz go jako xml tylko jako normalny tekst to równie dobrze możemy sobie darować te znaczniki. Chyba że ty z celową premedytacją wyświetlasz xml jako html, wtedy zwracam honor i przepraszam za przytyk.

Ten post edytował Uriziel01 18.01.2012, 14:21:11
Go to the top of the page
+Quote Post
misty
post
Post #14





Grupa: Zarejestrowani
Postów: 366
Pomógł: 0
Dołączył: 2.01.2007

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


tak, takie jest wymaganie, pisalam o tym wczesniej. To ma sie wyswietlac jako zwykly tekst (html), tagi moga by rozwalone, kryterium jest zachowanie N dlugosci znakow.


Juz mi dziala, problelem bylo to ze uzywalam htmlspecialchars na poczatku, zamiast uzyc tego na koncu, przed samym wyswietleniem.

dzieki za wszystkie rady,
pzdr,

misty
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: 22.08.2025 - 00:18