2010-07-23 16 views
17

estoy usando el siguiente para establecer el valor de un área de texto ..¿Valor de configuración de un formulario HTML textarea?

<?php 
$message = $_REQUEST['message']; 
?> 
<br/><b>Description</b><br/> 
<TEXTAREA NAME="message" COLS=40 ROWS=6 value="<?=$message;?>"></TEXTAREA><br/><br/> 
<input type="hidden" name="MAX_FILE_SIZE" value="1000000" /> 

pero no parece estar funcionando. El valor del mensaje no es nulo. ¿Alguien tiene alguna idea de por qué no está llenando el valor?

+2

Tenga cuidado al usar la variable '$ _REQUEST', si planea usar esos datos para algo más que simplemente ponerlo de nuevo en un formulario. Según su directiva 'variables_order' (http://www.php.net/manual/en/ini.core.php#ini.variables-order), un usuario podría sobrescribir la variable' message' sin que usted lo sepa. - http://php.net/manual/en/reserved.variables.request.php –

+0

@Jeff tanto como esto es correcto, el problema inmediato es que OP no sanea el contenido del mensaje en absoluto. – Gordon

Respuesta

44

Textarea no tiene ningún valor. Debe insertar su mensaje entre las etiquetas de apertura y cierre.

<textarea><?php echo htmlspecialchars($message); ?></textarea> 
+1

Sugeriría que también se escape el valor - 'htmlspecialchars()' –

+1

Otra alternativa muy robusta para desinfectar la entrada es usar HTMLPurifier. – nico

+0

Y +1 por no usar shorttags, no siempre tiene control sobre sus hosts php.ini y puede encontrar que su host los ha deshabilitado, pero si usa etiquetas completas de php, nunca tendrá ese problema. – xj9

7
<textarea name="message" cols="40" rows="6"><?=$message?></textarea> 

Nota: Asegúrese de$message es verificada apropiadamente y que short_open_tag está habilitado. De lo contrario, la respuesta aceptada de @ fabric es una mejor respuesta.

Cuestiones relacionadas