2013-12-16 9 views

risposta

29

Alcuni suggerimenti su come l'output HTML con PHP:

  1. Usa virgolette singole in modo che non si dispone di sfuggire le virgolette doppie (quando si utilizza eco),
  2. Usa htmlspecialchars() per sfuggire correttamente a qualsiasi valore "canaglia" che potresti avere.

Esempio con echo:

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

O printf():

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

Oppure, in modalità HTML:

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

FYI, i valori predefiniti per 'htmlspecialchars' dovrebbero essere sufficienti per un attributo' value' a due virgolette, così puoi tranquillamente lasciare il secondo e il terzo argomento. – Phil

+1

@Phil I valori predefiniti * dovrebbero * essere sufficienti, ma storicamente no :) –

+0

Il più grande problema con PHP è la sua * storia * :) – Phil

1

Uso htmlentities:

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

questo non sembra rispondi all'OP. (dove la domanda sembra essere come sfuggire al valore dell'attributo html) –

+0

Punto giusto - Ho letto la domanda in modo errato in origine. Modificato. –

-1

Come su apici uso in modo non c'è bisogno di fuggire eventuali citazioni. in questo modo:

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