Foros del Web » Programando para Internet » PHP »

No me guarda cuando escribo 'hola'

Estas en el tema de No me guarda cuando escribo 'hola' en el foro de PHP en Foros del Web. Saludos. Trabajo con SQL Server y PHP 4... en un atabla tengo un campo text ya que el usuario le encanta escribir "carreta ventiada" pero ...
  #1 (permalink)  
Antiguo 03/11/2006, 09:51
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 2 meses
Puntos: 2
Pregunta No me guarda cuando escribo 'hola'

Saludos.

Trabajo con SQL Server y PHP 4... en un atabla tengo un campo text ya que el usuario le encanta escribir "carreta ventiada" pero resulta que cuando escribo 'Prueba' o "prueba" me sale error y miro que tiene la variable del textarea y sale:
\'prueba\'
\"prueba\"

Quien me puede ayudar????

Agradezco la ayuda que me puedan brindar...
  #2 (permalink)  
Antiguo 03/11/2006, 10:28
Avatar de helthon  
Fecha de Ingreso: junio-2005
Ubicación: Lima
Mensajes: 549
Antigüedad: 18 años, 10 meses
Puntos: 7
Pero como lo haces, muestra el codigo para ver el errror.
__________________
HELTHON FUENTES
FLORERIA FLORES PERU Floresperu.com.pe
Garantizamos que cada entrega de flores será de la más alta calidad y frescura
  #3 (permalink)  
Antiguo 03/11/2006, 10:47
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 2 meses
Puntos: 2
Exclamación Este es el codigo:

<?
include "Conexion.php";
?>
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name="form1" method="post" action="">
<p>
<input name="txtNumero" type="text" id="txtNumero">
</p>
<?
if($_POST['txtNumero'])
{
$Sql = "select Textos from Pruebas where consec=".$_REQUEST['txtNumero'];
$Busq = mssql_query($Sql,$conexion);
$Texto = mssql_result($Busq,0,"Textos");
}
?>
<p>
<textarea name="Texto" id="Texto"><? echo $Texto?></textarea>
</p>
<p>
<input name="Guardar" type="button" id="Guardar" value="Guardar" onClick="form1.Accion.value='Guardar';submit();">
<input name="Accion" type="hidden" id="Accion">
<input type="button" name="Submit" value="Bot&oacute;n" onClick="window.location='GuardarTextSql.php'">
</p>
<p><? echo "Resultado".nl2br($Texto)?></p>
</form>
</body>
</html>
<?
if($_POST['Accion'] == 'Guardar')
{
echo "Escribi".$_REQUEST['Texto'] ."<br><br>";
$Sql = "select max(consec) as consec from Pruebas";
$Busq = mssql_query($Sql,$conexion);
$Consec = mssql_result($Busq,0,"consec");
$Consec = $Consec + 1;
$work = mssql_query("begin transaction",$conexion);
$Sql = "insert into Pruebas values($Consec,'".trim($_REQUEST['Texto'])."')";
$Ins = mssql_query($Sql,$conexion);
if($Ins != true)
{
echo "<script>
alert('No puedo guardar')
</script>";
$work = mssql_query("rollback transaction",$conexion);
exit;
}
$work = mssql_query("commit transaction",$conexion);
}
?>

Espero que puedan ayudarmen
  #4 (permalink)  
Antiguo 07/11/2006, 06:29
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 2 meses
Puntos: 2
Nadie sabe como colaborarme???

Saludos.

Nadie ha tenido este problema???'
  #5 (permalink)  
Antiguo 07/11/2006, 06:36
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Deberías verificar el estado de "magic_quote_gpc" para aplicar un "addslashes()" (así evitaras problemas de seguridad sobre "SQL injection") y a la hora de presentar tu dato, elminas las posibles "\" que tengas con stripslashes()

Tienes muchos ejemplos en (los comentarios de los usuarios):
www.php.net/stripslashes

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 08/11/2006, 10:28
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 2 meses
Puntos: 2
No entiendo

Saludos Cluster estuve leyendo la documentacion y implemente esto

get_magic_quotes_gpc();
$Sql = 'insert into Pruebas values('.$Consec.',"'.stripslashes($_REQUEST['Texto']).'")';

y me guarda el 'hello'
pero cuando escribo "hello" me sale error....

Que puedo hacer???
  #7 (permalink)  
Antiguo 08/11/2006, 10:32
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Hola
prueba con la funcion addslashes para insertar... y para mostrar los datos la de stripslashes

saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier

Última edición por sergi_climent; 08/11/2006 a las 10:39
  #8 (permalink)  
Antiguo 08/11/2006, 14:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
El stripslashes() lo debes usar a la hora de presentar tu dato .. no a la hora de "ingresar" tu dato a tu BBDD (via INSERT/UPTATE o lo que uses).

De hecho si tu usas "magic_quote_gpc" a ON (que es lo que parece usar en tu configuración de PHP .. ) ya es "PHP" quien mete el slash (/) para "escapar" ciertos caracteres peligrosos como las comillas y demás.

Te recomendé que vises la documentación de esas funciones por qué tienes un buen montón de comentario; sobre todo ejemplos que validan el estado de "magic_quote_gpc" para aplicar o no el "addslasshes" a la hora de ingresar datos a tu BBDD .. por lo demás siempre a la hora de presentar tu dato aplicarías stripslashes()

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 09/11/2006, 10:48
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 2 meses
Puntos: 2
Exclamación No me funciono pero tengo el siguiente codigo

Saludos agradezco la colaboración modifique el codigo de la siguiente manera, espero sus valiosas opiniones...

<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form name="form1" method="post" action="">
<p>
<input name="txtNumero" type="text" id="txtNumero">
</p>
<?
if($_POST['txtNumero'])
{
$Sql = "select Textos from Pruebas where consec=".$_REQUEST['txtNumero'];
$Busq = mssql_query($Sql,$conexion);
$Texto = mssql_result($Busq,0,"Textos");
}
?>
<p>
<textarea name="Texto" id="Texto" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 9px; width: 520; height: 100;" ><? echo $Texto?></textarea>
</p>
<p>
<input name="Guardar" type="button" id="Guardar" value="Guardar" onClick="form1.Accion.value='Guardar';submit();">
<input name="Accion" type="hidden" id="Accion">
<input type="button" name="Submit" value="Bot&oacute;n" onClick="window.location='GuardarTextSql.php'">
</p>
<p><? echo "Resultado".stripslashes(nl2br($Texto))?></p>
</form>
</body>
</html>
<?
if($_POST['Accion'] == 'Guardar')
{
$Sql = "select max(consec) as consec from Pruebas";
$Busq = mssql_query($Sql,$conexion);
$Consec = mssql_result($Busq,0,"consec");
$Consec = $Consec + 1;
$work = mssql_query("begin transaction",$conexion);
$s = "\ ";
echo "reemplaze". $_REQUEST['Texto'] = str_replace(trim($s),"", $_REQUEST['Texto']);

$s = "' ";
echo "<br>reemplaze comillita". $_REQUEST['Texto'] = str_replace(trim($s),"''", $_REQUEST['Texto']);

echo "<br>".$Sql = "insert into Pruebas values($Consec,'".trim($_REQUEST['Texto'])."')";
$Ins = mssql_query($Sql,$conexion);
if($Ins != true)
{
echo "<script>
alert('No puedo guardar ')
</script>";
$work = mssql_query("rollback transaction",$conexion);
exit;
}
$work = mssql_query("commit transaction",$conexion);
}
?>
  #10 (permalink)  
Antiguo 14/11/2006, 14:22
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 2 meses
Puntos: 2
Exclamación por favor algun comentario

Nadie tiene comentarios???
  #11 (permalink)  
Antiguo 15/11/2006, 05:37
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Cita:
Iniciado por tattojk Ver Mensaje
Nadie tiene comentarios???
Por mi parte ya te comenté:

Usa addslashes() a la hora de hacer tu INSERT/UPDATE de tus datos y stripslashes() a la hora de obtener tu dato (de hacer tu "SELECT").

Revisa también que valor tiene magic_quote_gpc antes de aplicar addslashes() por qué con magic_quote_gpc a ON ya PHP añade los \ a caracteres como " (comillas) entre otros .. así que si vuelves aplicar un "add" añadirás un \ de más por " que se encuentre en tu dato.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #12 (permalink)  
Antiguo 15/11/2006, 09:58
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 2 meses
Puntos: 2
una pregunta cluster

Saludos Cluster...

aplique toda la teoria de los add...
y los strip....

Pero no me funcionan bien y cuando lo guarda lo guarda con \ y eso ocupa espacio y aqui la gente se inspira digitando....

Los comentarios eran del codigo que postee despues de tu sugerencia Cluster

Es de la unica forma que me guarda bien...

Seguire trabajando como postee el codigo...
  #13 (permalink)  
Antiguo 15/11/2006, 10:50
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
hola de nuevo!
Pero q problemas te da ese codigo? te sigue pasando lo mismo q al principio, q no te guarda bien? o q si lo guarda bien y a la hora de mostrarlo no te lo muestra bien?

saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #14 (permalink)  
Antiguo 15/11/2006, 11:07
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Cita:
Iniciado por tattojk Ver Mensaje
Saludos Cluster...

aplique toda la teoria de los add...
y los strip....

Pero no me funcionan bien y cuando lo guarda lo guarda con \ y eso ocupa espacio y aqui la gente se inspira digitando....

Los comentarios eran del codigo que postee despues de tu sugerencia Cluster

Es de la unica forma que me guarda bien...

Seguire trabajando como postee el codigo...
Tras aplicar esa "teoría" deberías mostrar el código que te quedó.

Por el momento veo que en algún momento usastes

$Sql = 'insert into Pruebas values('.$Consec.',"'.stripslashes($_REQUEST['Texto']).'")';

Y mi recomendación no va por usar ' sino ":
Código PHP:
$Sql "insert into Pruebas values('".$Consec."','".$_REQUEST['Texto']."')"
Eso sería si usas "magic_quote_gpc" a ON (que es lo normal y por defecto sale PHP .. ). Pero por seguridad se debería verificar el estado de esa directiva de PHP para aplicar el "addslashes()".

Seguidamente, a la hora de obtener es dato que tu ingresastes .. ahí aplica el "stripslashes()" para quitar el \ que ya te incluyó "magic_quote_gpc a ON" o bien si usastes addslasshes() en el caso de que esa directiva estuviese a OFF.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 14:37.