Foros del Web » Programando para Internet » PHP »

Problema con Comillas: Reenvio de variables en formularios.

Estas en el tema de Problema con Comillas: Reenvio de variables en formularios. en el foro de PHP en Foros del Web. Hola, espero explicarme medio bien. Antes de nada explico mi intención: Tengo un sistema de noticias-comentarios y un foro hecho por mí donde uso el ...
  #1 (permalink)  
Antiguo 05/08/2004, 00:09
Avatar de Covids0020  
Fecha de Ingreso: septiembre-2003
Ubicación: España
Mensajes: 217
Antigüedad: 20 años, 6 meses
Puntos: 1
Problema con Comillas: Reenvio de variables en formularios.

Hola, espero explicarme medio bien.
Antes de nada explico mi intención:
Tengo un sistema de noticias-comentarios y un foro hecho por mí donde uso el clásico modelo de VISTA PREVIA y EDICIÓN, pero tengo un problemilla con el formateo de texto.

Si un usuario introduce texto con comillas, mi server (desde hace poco) le antepone a estos carácteres "chungos" la barra invertida, ok, si no quiere editar el mensaje y va directo a la DB ok, pero el problema es si decide editarlo:
PROBLEMA:
Al mandar las variables del formulario inicial al formulario de edición, este no me muestra nada a partir de las comillas (lo cual es lógico), use la función personalizada que use no sé como puedo mostrar las comillas en un campo INPUT o TEXTAREA.

Si uso una función que me reemplace las comillas por algún símbolo mio o lo que sea tampoco me vale, ya que va a mostrar algo que el usuario no ha escrito tal como: si él escribe: "hola"
podría aparecer:
\'hola\'
o:
comillas hola comillas
o:
"hola"
es decir, no sé como mostrar las comillas en un INPUT, y ya he visto que casi cualquier sistema de foros (profesional ), pej: PHPBB o este mismo vBulletin lo pueden hacer.
No puedo evitar esta seguridad de mi server??, bueno no sé si será por la versión de Apache, de PHP o no sé.

Bueno, como veis pegadísimo en el tema, una ayudilla please.
Un saludo y mil gracias de antemano.

PD: He visto cosas como unlercode(), etc, etc, pero no se muy bien como funcionan aún y creo no me servirán.
Hasta este cambio en el server usaba una función de limpieza que me iba bastante bien con strip_tags() y algo más.
__________________
"La sabiduría comienza donde acaba el conocimiento". Yaris.
http://www.culturadigital.org

Última edición por Covids0020; 05/08/2004 a las 00:11
  #2 (permalink)  
Antiguo 05/08/2004, 00:37
Avatar de living  
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 19 años, 10 meses
Puntos: 2
puedes usar las barras invertidas y cuando vayas a editarlo utilizas esta función

http://es2.php.net/manual/es/function.stripslashes.php
__________________
¿Te apasiona el mundo del guión? El portal del guión
  #3 (permalink)  
Antiguo 05/08/2004, 11:09
Avatar de Covids0020  
Fecha de Ingreso: septiembre-2003
Ubicación: España
Mensajes: 217
Antigüedad: 20 años, 6 meses
Puntos: 1
Remito a la peña a este post donde se ve mejor:

http://www.forosdelweb.com/f18/porque-muestra-218563/

No es por nada, pero yo decía mostrar las comillas en un campo input o textarea, para quitar o poner barras, otros carácteres, etc e imprimir el valor no necesito nada, de todas formas podría editar el resultado con un str_replace() mismo.
Hablo de mostrar comillas simples o dobles en un INPUT, he probado stripslashes(); pero lo único que hace es mostrarme el valor del campo tal cual, si ese valor lo pasas de nuevo a un campo de formulario no muestra nada, ni barras ni nada, en el post que remito está el código de ejemplo, lo pongo de nuevo:

http://www.forosdelweb.com/showthread.php?t=218563

Gracias por la ayuda, aunque necesitaría más, un saludo.
__________________
"La sabiduría comienza donde acaba el conocimiento". Yaris.
http://www.culturadigital.org
  #4 (permalink)  
Antiguo 05/08/2004, 12:03
Avatar de Covids0020  
Fecha de Ingreso: septiembre-2003
Ubicación: España
Mensajes: 217
Antigüedad: 20 años, 6 meses
Puntos: 1
YASTÁ, YASTÁ, YASTÁ , ggg, sorry pero por fin he atinado, la función stripslashes(); me ha ayudado pero para el resto era tán fácil como añadir la codificación.
Joder no era tan dificil de explicar, solo había que transformar el valor en una entrada de teclado más o menos no?, gg, si se pasa el valor tal cual no puede mostrar las comillas en el INPUT (si están activadas las magic_quotes claro), en cambio si codificamos los signos para que luego los reperesente la entrada del valor no son comillas pero su impresión en pantalla sí .
Código PHP:
<form method="post" action="">         
Palabra: <input name="palabra" type="text" value="" /> 
<input name="Enviar" type="submit" value="Enviar" /> 
</form>
<?php
if (isset($_POST[Enviar]) && $_POST[Enviar] == 'Enviar')
{
$palabra $_POST[palabra];
$palabra str_replace("\"","&quot;",$palabra);
$palabra stripslashes($palabra);
echo 
"Enviado : ".$palabra;
?>
<br />Formulario de Edición:
<form method="post" action="">         
Palabra: <input name="palabra" type="text" value="<?php echo $palabra;?>" /> 
<input name="Enviar" type="submit" value="Enviar" /> 
</form>
<?php
}
?>
Un saludo y de nuevo muchas gracias.
__________________
"La sabiduría comienza donde acaba el conocimiento". Yaris.
http://www.culturadigital.org

Última edición por Covids0020; 05/08/2004 a las 12:04
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:01.