Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]htmlspecjalcharts, ja wyzej
kingofspace
post
Post #1





Grupa: Zarejestrowani
Postów: 141
Pomógł: 4
Dołączył: 16.11.2009

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


Witam tworze obecnie cms na własne potrzeby i mam problem mam taki kod

  1. while($r = mysql_fetch_assoc($wynik)) {
  2. echo('
  3. <div class="n">
  4. <div class="nt">');
  5. $tytul=$r['news_tytul'];
  6. $tytul=htmlspecialchars($tytul);
  7.  
  8. echo ('<h1>');
  9. echo ($tytul);
  10. echo ('</h1>');
  11. echo "".$r['news_skrot']."";
  12. echo ('</div><div class="nb">Napisał:');
  13. echo "".$r['news_autor']."";
  14. echo(' | dn.');
  15. echo "".$r['news_data']."";
  16. echo('<div><a href="newsy.php?id=');
  17. echo "".$r['news_id']."";
  18. echo('">[czytaj więcej/komentuj]</a></div></div></div>');
  19. }


tojest pętla wyświetlająca newsy
tylko ze jak ktos wpisze wnewsie html np </div> to strona layout siś sypie na łeb na szyje;;] chcialbym temu zapobiec;]

w powyzszym kodzie tytul przelecialem chtmlspecjalcharts lecz nadal html sie wykonuje
jak zrobic do tego bbcody?
zeby bylo np tekst



edit udało mi sie juz zrobic zeby mi sie nieinterpretwal html tylko ze znaczniki html się wyświetlają tym razem;] chcialbym zrobic do tego bbcode:P
Go to the top of the page
+Quote Post
Zyx
post
Post #2





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


Napisz bibliotekę do obsługi BBCode lub zainstaluj jakąś gotową. PHP nie ma wbudowanej takiej funkcjonalności domyślnie (jest w PECL-u moduł, ale trzeba go samodzielnie skompilować i na 99% Twój serwer nie będzie go mieć). Zazwyczaj BBCode parsuje się przy wstawianiu treści do bazy danych, a nie przy wyświetlaniu, ze względów wydajnościowych. Gdy chcemy edytować, albo treść źródłowa jest zapisywana obok (skompresowana), albo stosuje się parser odwrotny, który HTML konwertuje z powrotem na BBCode.

Nawiasem mówiąc popracuj jeszcze nad jakością kodu.

  1. $tytul=$r['news_tytul'];
  2. $tytul=htmlspecialchars($tytul);
  3.  
  4. echo ('<h1>');
  5. echo ($tytul);


Pamiętaj, że można zrobić następującą rzecz:

  1. echo '<h1>'.htmlspecialchars($r['news_tytul']).'</h1>';


Zmienne tymczasowe powinno się wprowadzać tylko wtedy, gdy są one nam naprawdę z jakichś względów potrzebne. Ty tymczasem wykonujesz kupę przypisań zupełnie bez sensu - nie ma to żadnego znaczenia praktycznego. Klepiesz jedynie za dużo kodu i dokładasz niepotrzebną robotę interpreterowi.
Go to the top of the page
+Quote Post
Kildyt
post
Post #3





Grupa: Zarejestrowani
Postów: 869
Pomógł: 53
Dołączył: 20.10.2003
Skąd: Przeworsk

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


Tak na marginesie: echo nie jest funkcją (odsyłam do dokumentacji), więc nawiasy są niepotrzebne.
Go to the top of the page
+Quote Post
kingofspace
post
Post #4





Grupa: Zarejestrowani
Postów: 141
Pomógł: 4
Dołączył: 16.11.2009

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


ja jestem początkującym koderem to sa moje pierwsze działające skrypty. Za krytykę dziekuje i pozdrawiam rozwiązałem ten problemz html tylko to bbcode mnie meczy;/
Go to the top of the page
+Quote Post

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: 22.08.2025 - 17:49