[Php-avanzado] Comillas escapadas...

Silverzero silverzero.52 en gmail.com
Mie Mar 17 11:37:43 ARST 2010


> Hola Carolina,

Hola Leo,

>
>        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 :( )

Si, entendiste bien el problema, pero el mysql_real_escape_string() se
aplica sólo si pasa la validación (fijate que está después del else).
Se escapan automáticamente a pesar de que tengo en el php.ini ->
php_flag magic_quotes_gpc 0

me pasa con todos los formularios del sitio...no sé qué será...ya
probé removiendo el php.ini y sigue igual.

si querés probá en el formulario de suscripción al newsletter (que
está visible en todo el sitio) tipear algo con comilla simple o doble
y fijate como imprime: http://salimas.com/mardelplata/eventos.php

tiene este script:

$susmail="Ingresá tu e-mail";
		
		if (isset($_POST['suscribirme'])) {
						$susmail=$_POST['email'];
						}

>
>        Saludos!

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
>
> _______________________________________________
> Php-avanzado mailing list
> Php-avanzado en pato2.fi.mdp.edu.ar
> http://www3.fi.mdp.edu.ar/cgi-bin/mailman/listinfo/php-avanzado
>



-- 
Carolina Derromediz
Cel. +54 223 5301599


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