[Php-avanzado] Comillas escapadas...

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Mie Mar 17 01:59:12 ARST 2010


Hola Carolina,

	si no entiendo mal, tu problema es que al no pasar la validación y
mostrar los valores cargados para que el usuario lo corrija, te aparecen
escapados... una solución simple es, si el formulario falla, mostrar en
los value del formulario los valores sin escapar, y usar solo
mysql_real_escape_string() al momento de generar la query, después de la
validación.

	(si no es esto, no entendí el problema :( )

	Saludos!

El mar, 16-03-2010 a las 22:34 -0300, Silverzero escribió:
> Hola a todos,
> 
> Tengo un problema en el sitio de mi tesis.
> En el php.ini hay: php_flag magic_quotes_gpc 0, y antes de insertar a
> la DB utilizo mysql_real_escape_string.
> 
> Cuando el form no pasa la validación, imprime las advertencias e
> imprime los campos que ya fueron completados, y éstos (aca viene el
> problema) si contienen comillas simples las escapa y si hay comillas
> dobles, todo el texto que encierran desaparece y en su lugar imprime
> una barra invertida.
> 
> Ya hablé con el soporte del hosting y dicen que probaron poner
> php_flag magic_quotes_gpc 0 de manera global, pero aún así no
> funcionó. Probé instalando todo el sitio en otro hosting y sin embargo
> sigue sucediendo lo mismo.
> 
> Acá les envío el formulario, pero lo resumí con un campo sólo, para
> que sea más fácil la lectura.
> 
> Saludos!
> 
> <?php
> //valor vacío asi no imprime errores cuando no encuentra definida la variable
> 
> $l_titulo="";
> 
>    if (isset($_POST['pub_lug'])){
> 
>        $seccion="lugares";
>        $l_titulo=$_POST['titulo'];
> 
>        //valida
>        if ($l_titulo==""){
> 
>             $l_alertTit="<span class=\"warning\">No te olvides de
> completar el nombre del lugar.</span>";
> 
>        }else{
> 
>               $l_titulo=mysql_real_escape_string($titulo);
> 
>               $sql="INSERT INTO $seccion SET
>                        titulo='$l_titulo'
>                        fecha=NOW();";
> 
>              $result=mysql_query($sql,$link)or die(mysql_error());
> 
>             print "Publicacion exitosa";
> 
>             //doy valor vacío a los campos para q no se impriman luego
> de enviado
>            $l_titulo="";
> 
>         }
>    }
> ?>
> 
> 
> <form action="user.php?req=pub#lugares" method="post"
> enctype="multipart/form-data" name="form">
> 
> <label>Nombre del lugar</label>
> <?php print $l_alertTit; ?>
> <input name="titulo" type="text" value="<?php print $l_titulo; ?>" />
> <input name="pub_lug" type="submit" class="bttn" value="Publicar"
> id="pub_lug" />
> 
> </form>

-- 

Leonardo Tadei
leonardot en pegasusnet.com.ar
http://blog.pegasusnet.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key



Más información sobre la lista de distribución Php-avanzado