2013-12-16 10 views

Odpowiedz

29

Niektóre wskazówki dotyczące wyprowadzania HTML z PHP:

  1. apostrofów tak, że nie trzeba uciekać się cudzysłów (przy użyciu echo),
  2. Stosować htmlspecialchars(), aby właściwie uniknąć wszelkich "nieuczciwych" wartości, które możesz mieć.

Przykład wykorzystania echo:

echo '<input type="hidden" name="id" value="', htmlspecialchars($row['id'], ENT_QUOTES, 'UTF-8'), '" />'; 

Albo printf():

printf('<input type="hidden" name="id" value="%s" />', 
    htmlspecialchars($row['id'], ENT_QUOTES, 'UTF-8') 
); 

Lub w trybie HTML:

?> 
<input type="hidden" name="id" value="<?php echo htmlspecialchars($row['id'], ENT_QUOTES, 'UTF-8'); " /> 
<?php 
+1

FYI, wartości domyślne dla 'htmlspecialchars' powinny wystarczyć dla podwójnie cytowanego atrybutu' value', abyś mógł bezpiecznie odstąpić od drugiego i trzeciego argumentu. – Phil

+1

@Phil Wartości domyślne * powinny * wystarczają, ale historycznie nie były :) –

+0

Największym problemem z PHP jest jego * historia * :) – Phil

1

Zastosowanie htmlentities:

echo "<input type=\"hidden\" name=\"id\" value=\"".htmlentities($row['id'])."\" />"; 
+0

ten nie wydaje się odpowiedź na PO. (gdzie pytanie wydaje się być sposobem na uniknięcie wartości atrybutu html). –

+0

Punkt wyjściowy - błędnie odczytałem pierwotnie pytanie. Edytowane. –

-1

Jak o apostrofów więc nie trzeba uciekać żadnych cytatów. tak:

echo '<input type="hidden" name="id" value="'.$row['id'].'" />'; 
Powiązane problemy