Foros del Web » Programando para Internet » PHP »

porque me muestra \\\

Estas en el tema de porque me muestra \\\ en el foro de PHP en Foros del Web. hola tengo un problema el siguiente codigo la primera ves que me lo muestra me lo muestra sin contra barra"\\" pero la segunda ves me ...
  #1 (permalink)  
Antiguo 21/07/2004, 12:21
Avatar de diegodnt  
Fecha de Ingreso: mayo-2004
Ubicación: Buenos aires
Mensajes: 227
Antigüedad: 19 años, 10 meses
Puntos: 0
Pregunta porque me muestra \\\

hola tengo un problema el siguiente codigo la primera ves que me lo muestra me lo muestra sin contra barra"\\" pero la segunda ves me lo muestra con contra barras y suma mas contrabarras a mediada que lo sigo ejecutando y no se porque, este es el codigo que me da eso
if ($default<>""){
$query.="default ' ".$default." ' ";
}
espero que me puedan ayudar.
@@diegodnt@@@
__________________
. Woo hoo When I feel heavy metal
  #2 (permalink)  
Antiguo 21/07/2004, 12:27
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Debes usar:

stripslashes()
http://www.php.net/manual/en/function.stripslashes.php

PHP según configuración de magic_quotes .. (por defecto a ON) añade un escape (\) a caracteres como comillas.. comillas dobles y algunos más. Con la función mencionda los eliminas.

Usalo sólo a la hora de presentar tu dato no al almacenarlo en tus BD o similar.

Un saludo,
  #3 (permalink)  
Antiguo 22/07/2004, 07:19
Avatar de diegodnt  
Fecha de Ingreso: mayo-2004
Ubicación: Buenos aires
Mensajes: 227
Antigüedad: 19 años, 10 meses
Puntos: 0
Pregunta

hola este es el codigo, que lo que hace es ir creando el string de la query sql mediante la seleccion de los atributos, con el boton agregar lo transfiere a un text area para ver lo que uno esta poniendo. Luego se preciona finalizar y la query se ejecuta y listo. El problema es que cada vez que pongo default, la primera lo hace bien pero las siguientes me agrega tantas contrabarras como veces aprieto el boton y el problema surge cundo pondo default mientras no lo pongo el codigo funciona de mil maravillas. Espero que me puedan ayudar. Desde ya mil gracias otra vez.
@@@Diegodnt@@@
$operacion=$HTTP_POST_VARS['operacion'];
$campo=$HTTP_POST_VARS['campo'];
$tipo=$HTTP_POST_VARS['tipo'];
$caract=$HTTP_POST_VARS['caract'];
$default=$HTTP_POST_VARS['default'];
$null=$HTTP_POST_VARS['nulo'];
$auto=$HTTP_POST_VARS['auto'];
$clave=$HTTP_POST_VARS['clave'];
if($operacion=="Agregar"){
$query=$campo." ";
$query.=$tipo." ";
if ($caract<>""){
$query.="(".$caract.")";
}
if ($default<>""){
$def="default ' ".$default." ' ";
$query.=stripslashes($def);
}
$query.=$null." ";
$query.=$auto;
$query.=",";
$HTTP_POST_VARS['query'].= stripslashes($query);
}
?>
Atributos del campo Campo
<br>
<TEXTAREA NAME=query ROWS="16" COLS="70"><? echo stripslashes($HTTP_POST_VARS['query']); ?></TEXTAREA>
<br>
<input type=submit name=operacion value=Finalizar>
<input type=submit name=operacion value=Salir>
<?
//$tabla=$HTTP_POST_VARS['tabla'];
$query=$HTTP_POST_VARS['query'];
$operacion=$HTTP_POST_VARS['operacion'];
if($operacion=="Finalizar"){
$mostrar="CREATE TABLE ".$tabla ."(";
$mostrar.=$query;
$mostrar.=")";
$prueba="///hola//////////";

echo stripslashes($mostrar);
echo stripslashes($prueba);
//if (!mysql_query($mostrar))die(mysql_error());
}
?>
<form>
</body>
</head>
</html>
__________________
. Woo hoo When I feel heavy metal
  #4 (permalink)  
Antiguo 22/07/2004, 09:05
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Bueno . no sé donde tienes el problema .. pero ya te he comentado que la función mencionada se usa para eso. Y los "slashs" de más (esas "contra barras" que llamas) .. son probocadas por las comillas en tus cadenas y al ser enviadas desde tu "textarea" (o campo input de tu formulario) hacia el servidor (PHP) .. se añade dicho caracter de "escape" (que es lo que significa un \ seguido de un caracter de ese tipo).

Un saludo,
  #5 (permalink)  
Antiguo 22/07/2004, 10:54
Avatar de diegodnt  
Fecha de Ingreso: mayo-2004
Ubicación: Buenos aires
Mensajes: 227
Antigüedad: 19 años, 10 meses
Puntos: 0
gracias ya lo he solucionado con el get_magic_quotes_runtime y el stripslashes, perdon por añadir dos post sobre lo mismo pero me equivoque y por un error en la pc y no sabia si habia salido el otro por eso lo volvi a creear, no es para ponerse brabo cheeee, Bueno gracias la verdad que simpre son de muy buena ayuda. Saludos @@@diego@@@
__________________
. Woo hoo When I feel heavy metal
  #6 (permalink)  
Antiguo 05/08/2004, 00:34
Avatar de Covids0020  
Fecha de Ingreso: septiembre-2003
Ubicación: España
Mensajes: 217
Antigüedad: 20 años, 6 meses
Puntos: 1
Bueno, pues a mí no me muestra el valor en el campo del formulario, ya pregunté antes por ahí sobre este problema, creí que esto me lo solucionaba pero para el campo de formulario se me queda igual.

Es decir, cuando recibo la variable del formulario inicial en otro formulario secundario no me muestra la palabra si aplico stripslashes();, para mostrar el valor sí pero ese no es el problema.
Pongo el código:
Código PHP:
<?php
if (!$_POST)
{
?>
<form method="post" action="">         
Palabra: <input name="palabra" type="text" /> 
<input name="Enviar" type="submit" value="Enviar" /> 
</form>
<?php
}
elseif (isset(
$_POST[Enviar]) && $_POST[Enviar] == 'Enviar')
{
$palabra stripslashes($_POST[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
}
?>
Para dar una idea, es para un foro que tengo con el clásico modelo de VISTA PREVIA Y EDICIÓN.

Un saludo y ayuda please.
__________________
"La sabiduría comienza donde acaba el conocimiento". Yaris.
http://www.culturadigital.org

Última edición por Covids0020; 05/08/2004 a las 00:35
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 16:05.