Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]funkjca weryfikujaca dane z formularza - problem
stal-sw
post
Post #1





Grupa: Zarejestrowani
Postów: 176
Pomógł: 0
Dołączył: 27.06.2002
Skąd: Stalowa Wola

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


Witam.
Ponizej mam funkcje, przez ktora przepuszczam wszytkie dane z formularzy TEXTAREA.
Najwazniejsze w nije ejst to ze kroi dlugie wyrazy (powyzej 50 znakow). I tutaj jest duzy problem, z czescia mojej funkcji, gdzie jest wykrywany i tworzony LINK.
Mianowice jak link jest dluzszy niz te 50 znakow to niestety ale adres strony (LINK) bedzie uciety - a dokladnie po 50 znakach ebdzie wstawiona spacja.
Jak sobei z tym oradzic aby linki nie byly obcinane, a reszta slow byla przycinana do dlugosci 50 znakow (przycinana czyli po 50 znakach bedzie postawiona SPACJA a po niej oczywcie ebdzi dlasza czesc slowa). ?

Z gory dzieki za pomoc.

  1. <?
  2. function verify_form($txt){
  3. $txt = strip_tags($txt); //usuwa tagi
  4. $txt = addslashes($txt);
  5. $txt = trim($txt); 
  6. $txt = wordwrap($txt, 50, " ", 1);  //kroi długie wyrazy
  7. $txt = preg_replace("/([w.]+@[w]+.[w.]+)/i","<a class=menu href=\"mailto:$1\" >$1</a>",$txt);
  8. $txt = preg_replace("/((http(s?)://)|(www.))([S]+.[S]+)/i","<a class=menu href=\"http$3://$4$5\" >&raquo; LINK</a>",$txt);
  9. $txt = substr($txt,0,3550); //max limit dlugosci tekstu
  10.  
  11. $txt = nl2br($txt); 
  12.  
  13. return $txt;
  14. }
  15. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Kicok
post
Post #2





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


Cytat
1. Kicok co do użycia addslashes() - przecież linijkę wyżej jest strip_tags() - wiec dlaczego miałoby być niebezpieczne ? jeżeli dane lecą do bazy to jest jak najbardziej wskazane, byle nie zapomnieć o stripslashes() przy odczycie.


Dlatego jest niebezpieczne, że jak napiszę `49 znaków i apostrof`, to addslashes zamieni mi to na `49 znaków, backslash, apostrof`. Później wordwrap wstawi spację po 50-tym znaku (czyli po backslash'u) i już mam niewyescape'owanego apostrofa ;]


addslashes umieszczone po wordwrap powinno być OK ;]

Ten post edytował Kicok 25.02.2008, 06:20:39
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 18:12