Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Treść wizualnie dokładnie taka sama
Krzychur
post
Post #1





Grupa: Zarejestrowani
Postów: 214
Pomógł: 0
Dołączył: 3.01.2004
Skąd: Łódź

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


Witam!
Już od jakiegoś czasu próbuje rozwiązać mikroskopijny problem (który jest obecny w IPB, phpBB, ale np. allegro go nie ma), polegający na umieszczeniu domyślnej treści formularza wyświetlonej dokładnie w ten sam sposób, jak została wprowadzona. Mam na mysli wszystkie znaki specjalne, które użytkownik widzi w np. polu textarea.

Aby to dokonać [powierzchownie] wystarczy zwykłe zastosowanie stripslashes i htmlspecialchars na treści przekazanej w formularzu i jakiś preg dla znaków specjalnych innych od <, >, &.

  1. <?php
  2. $content = htmlspecialchars(stripslashes(isset($_POST['abc']) ? $_POST['abc'] : ''));
  3. $content = preg_replace('#&#([0-9]+);#','�1;',$content);
  4. echo '<form method="post">
  5. <textarea name="abc">'.$content.'</textarea>
  6. <input type="submit" />
  7. </form>';
  8. ?>


Ale...
Wprowadzając znaki specjalne różne od <, >, & w postaci wizualnej, encji angielskiej i encji numerycznej pojawiają się problemy. Wstawiając do formularza np. znaczka « [lewy znak cytowania] np. poprzez kopiowanie, czy kombinacje alt+numerki, po wysłaniu zostanie on odczytany jako 8#171; [oczywiście &=8]. Jeżeli obok umieścimy encję wpisaną ręcznie: 8#171;, to zostanie ona również automatycznie zamieniona na znak specjalny, jedynie « zostanie wyświetlone dokładnie z oryginałem.

Teraz do jeszcze raz powtórzę do czego zmierzam:
Chcę, zobaczyć w okienku textarea dokładnie taką samą treść jaką wysłałem, na IPB, phpBB to nie działa w sposób 100%. Dowód:
Wysyłam: « - 8laquo; 8#171;
Otrzymuję: « - 8laquo; « lub « - « - «
Chcę otrzymać: « - 8laquo; 8#171;

Encja numeryczna zamieniana wyświetlana jest od razu jako znak specjalny.
Encja angielska widoczna jest jako encja, ale w formularzu wyświetlana jest jako znak specjalny.

Sami możecie sprawdzić na podglądzie.

Czekam na dyskusję.


--------------------
Go to the top of the page
+Quote Post

Posty w temacie


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: 21.08.2025 - 00:01