Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] formularz, textarea, zamiana znaków specjalnych
piotr1w
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 31.03.2007

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


Jak poradzić sobie z następującym problemem:

Formularz:
  1. <form method=post action=a.php>
  2. $tresc = $_POST['tresc'];
  3. <textarea name=tresc>
  4. <?php echo $tresc; ?>
  5. </textarea>
  6. <input type=submit name=submit value=submit>
  7. </form>

Niektóre ze znaków specjalnych po wpisaniu w pole TEXTAREA i wysłaniu formularza, zostają zamienione
np. wysłanie:
tekst "cytat"
powoduje przekazanie:
tekst \"cytat\"

Jak uniknąć tych zmian by to co zostanie wpisane zostało przekazane dalej?

Z góry dziękuję za pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
pbnan
post
Post #2





Grupa: Zarejestrowani
Postów: 174
Pomógł: 0
Dołączył: 27.03.2007
Skąd: Osiek almost City ;-D

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


  1. <?php echo $tresc; ?>

podmień na:
  1. <?php echo stripslaches($tresc); ?>


--------------------
"Hmmm, na wakacje trzeba będzie zacząć zarabiać, co nie? ;-] GTA IV się coraz bardziej zbliża... ;-]"
To się nazywa częsty update sygnaturki.
;-)
Go to the top of the page
+Quote Post
piotr1w
post
Post #3





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 31.03.2007

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


Pomogło, ruszyło dalej i pojawił się kolejny problem:
wysyłając np:
tekst "cytat" tekst
przekazuje to poprawnie i wyświetla mi to co wpisałem.

Chcąc wrócić z powrotem na poprzednią stronę i odtworzyć zawartość przekazaną przez:
  1. <input type=hidden name=tresc value=<?php echo stripslashes($_POST['tresc']); ?> >

wszystko od pierwszego znaku " zostaje obcięte i dostaję tylko tekst

Ma ktoś pomysł co może być tego powodem?

Ten post edytował piotr1w 20.04.2007, 19:56:53
Go to the top of the page
+Quote Post
Kicok
post
Post #4





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

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


Powodem jest to, że po tekst jest spacja i przeglądarka myśli, że to już koniec wartości atrybutu 'value'.

Zrób to w ten sposób:
  1. <input type="hidden" name="tresc" value="<?php echo(htmlspecialchars(stripslashes($_POST['tresc']))); ?>">



htmlspecialchars" title="Zobacz w manualu PHP" target="_manual służy m.in. do zamiany: " na &quote;


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
piotr1w
post
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 31.03.2007

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


dziękuję za pomoc i wyczerpującą odpowiedź, pomogło
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 - 09:10