Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [xhtml/php] cudzysłów a pole input
Forum PHP.pl > Forum > Przedszkole
boddah85
Ja z trochę głupawym pytaniem, ale ostatnio ta kwestia mnie nurtuje, a odpowiedzi nigdzie nie znalazłem winksmiley.jpg

Jeśli dla przykładu wczytuje do pola input dane z mysqla
Kod
[...]
<input type="text" name="zmienna" value="<?php echo stripslashes($row['cos_tam']);?>" />
[...]

Problem pojawia się jednak, kiedy w :

Kod
$row['cos_tam']

jest jakiś string, w którym występuje cudzysłów.

Oczywiście mógłbym zastosować coś takiego :

[...]<input type="text" value='zmienna'[...]
ale gdy wpisałoby się string otoczony dwoma kreskami ('string'), to problem by wrócił tongue.gif

Istnieje również opcja, która jest niezgodna z w3c, czyli

Kod
[...]
<input type="text" name="zmienna" value=<?php echo stripslashes($row['cos_tam']);?> />
[...]


Przyznam się szczerze, że jakoś nie zwracałem uwagi na tego typu przypadki i omijałem niejako problem, ale przy pisaniu pracy dyplomowej chciałbym wszystko dopiąć na ostatni guzik winksmiley.jpg

Z góry dzięki za odpowiedź.
WojtasSP320
To może zamień wszystkie cudzysłowy w stringu na odpowiednie encje za pomocą np wyrażeń regularnych.
Myślę, że to powinno działać (o ile dobrze zrozumiałem smile.gif ).
UNK
  1. <?php echo stripslashes($row['cos_tam']);?>


z tego co wiem możesz zastąpić

  1. <?=stripslashes($row['cos_tam'])?>


Co do " " w zawartości zmiennej, jedyny pomysł do nie dodanie slasha :P który używasz przy pobraniu zawartości, może pomóc.
Inne ale mniej 'optymalne' to zmiana tymczasowo " " na nie używany znak ( ale na 100%, ew. zbitka znaków ) a potem przerobienie tego z powrotem na " " przy zapisie.
nospor
Kod
<input type="text" name="zmienna" value="<?php echo htmlspecialchars($row['cos_tam']);?>" />
boddah85
Serdecznie dzięki smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.