
para este año tengo un proyecto de armar una pagina web ( sencilla ) de una libreria. hay una seccion en la pagina en la cual se tiene que poder ingresar libros y guardarlos en el cgi para que luego sean mostrados en el catalogo. lo unico es que no c como hacer para que me guarde los datos en un archivo .txt




lo que tengo hasta ahora del archivo es esto (si hay algo q no tiene nada q ver y lo puedo sacar avisen plz xD)
Cita:
# include <stdio.h>
# include <string.h>
# include <conio.h>
# include <stdlib.h>
int cargarcampo(char *, char *, char *);
struct st_libros{
char nombre[50];
char autor[50];
char genero[50];
};
main (){
char *qstr;
struct st_libros libro;
FILE *fichero;
fichero=fopen("libros.txt","a");
qstr=getenv("query_string");
printf("content-type.text/html\n\n");
printf("<html><body>");
printf("el dato query string recibido es: <br> %s", qstr);
printf("</body></html>");
cargarcampo(qstr,"nombre",libro.nombre);
cargarcampo(qstr,"autor",libro.autor);
cargarcampo(qstr,"genero",libro.genero);
}
int cargarcampo(char *cadena, char *campobusc, char *valorcampo)
{
char *primcar;
char *p;
primcar = strstr(cadena, campobusc);
if (primcar==NULL)
return 0;
else
{
for (p=primcar; *p!='='; p++);
p++;
while (*p!='&' && *p!='\0')
{
if (*p == '+')
*valorcampo = ' ';
else
*valorcampo = *p;
valorcampo++;
p++;
}
*valorcampo = '\0';
return 1;
}
}
# include <string.h>
# include <conio.h>
# include <stdlib.h>
int cargarcampo(char *, char *, char *);
struct st_libros{
char nombre[50];
char autor[50];
char genero[50];
};
main (){
char *qstr;
struct st_libros libro;
FILE *fichero;
fichero=fopen("libros.txt","a");
qstr=getenv("query_string");
printf("content-type.text/html\n\n");
printf("<html><body>");
printf("el dato query string recibido es: <br> %s", qstr);
printf("</body></html>");
cargarcampo(qstr,"nombre",libro.nombre);
cargarcampo(qstr,"autor",libro.autor);
cargarcampo(qstr,"genero",libro.genero);
}
int cargarcampo(char *cadena, char *campobusc, char *valorcampo)
{
char *primcar;
char *p;
primcar = strstr(cadena, campobusc);
if (primcar==NULL)
return 0;
else
{
for (p=primcar; *p!='='; p++);
p++;
while (*p!='&' && *p!='\0')
{
if (*p == '+')
*valorcampo = ' ';
else
*valorcampo = *p;
valorcampo++;
p++;
}
*valorcampo = '\0';
return 1;
}
}