Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Eliminar Caracteres

Estas en el tema de Eliminar Caracteres en el foro de C/C++ en Foros del Web. Saludos Tengo un formulario donde existe un campo de texto. Ese formulario lo capturo en un cgi para guardar en una DB Oracle lo que ...
  #1 (permalink)  
Antiguo 28/03/2008, 11:08
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 22 años, 4 meses
Puntos: 1
Eliminar Caracteres

Saludos

Tengo un formulario donde existe un campo de texto. Ese formulario lo capturo en un cgi para guardar en una DB Oracle lo que escriban los usuarios.

Pero justamente el campo de comentarios, esta guardao pura basura. Ej:

Comentario: Prueba General Co ;arios 1

Cuando lo que escribi en el campo fue:

Comentario: Prueba General Comentario 1

A que se deben esos caracteres extraños?

Le estoy haciendo esto al campo antes de guardar:

comen2=malloc(68);
strcpy(comen2,comentarios);
strcat (comen2,"\0");
memset (comen2,'\0',0);

sprintf(statement,"Insert INTO tabla(comentarios) VALUES ('Comentario: %s')",comen2);

Que me falta hacer?

Gracias
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #2 (permalink)  
Antiguo 28/03/2008, 15:32
 
Fecha de Ingreso: marzo-2008
Mensajes: 1
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Eliminar Caracteres

Lo normal es q veas el contenido para ver q guardas en la variable coment2.

Los caracteres extraños es porque estas usando mal las funciones:

coment2 = (char *) malloc (68 * sizeof (char)); // aki reservas memoria para un array de caracteres (char) de 68 elementos.

la funcion memset inicializa el array a cierto valor, estas usandolo mal, pero ademas no tiene sentido que destruyas el mensaje poniendo \0. La funcion memset se usa asi: memset (buffer, '\x0', sizeof (buffer));

Como normal cuando escribes una cadena de caracteres y presionas enter/intro se añade el retorno de carro y/o salto de linea y el caracter final de cadena \0 por lo q no tienes q ponerlo. Intenta hacerlo de la siguiente manera:

sprintf(statement,"Insert INTO tabla(comentarios) VALUES ('Comentario: %s')",comentarios);

En principio todo lo q quieres guardar esta en la variable comentarios ¿no?

Un saludo

PD: No estoy seguro si en el INSERT esta bien puesta la tabla, yo solo he usado mySQL.
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 20:36.