2024年1月22日发(作者:)
//向文件中写入输入内容
Hp.c
#include
#include
#define MAXLEN 80
#define EXTRA 5
/* 4个字节留给字段的名字"data", 1个字节留给"=" */
#define MAXINPUT MAXLEN+EXTRA+2
/* 1个字节留给换行符,还有一个留给后面的NULL */
#define DATAFILE "../"
/* 要被添加数据的文件 */
int main()
{
int i;
char *lenstr;
char data[MAXINPUT];
long len;
printf("Content-type:text/html;charset=gb2312nn");
printf("
printf("
");
lenstr = getenv("CONTENT_LENGTH");
if(lenstr == NULL || sscanf(lenstr,"%ld",&len)!=1 || len > MAXLEN)
printf("
表单提交错误
");else {
FILE *f;
printf("
数据长度为:%ld
",len);fgets(data, len+1, stdin);
f = fopen(DATAFILE, "a+");
if(f == NULL){
printf("
意外错误,不能够保存你的数据
");}else{
fputs(data, f);
printf("
恭喜,您的数据已经被保存
");}
fclose(f);
for(i=0;i printf("%c",data[i]); } } printf(""); return 0; } ------------------------------------------------------------------------------
这个程序唯一要注意的是:它并没有把 包装成HTML格式后再输出,而是直接作为简单文本(plain text)输出,这只要在输出的头部用text/plain类型代替text/html就可以了,浏览器会根据Content-Type的类型自动的选择相应的处理方法。
要触发这个程序也很简单,因为没有数据要输入,所以只需一个按钮就可以搞定了:
Hp.c
#include
#include
#define DATAFILE "../"
int main()
{
FILE *f = fopen(DATAFILE,"r");
int ch;
if(f == NULL){
printf("Content-type:text/html;charset=gb2312nn");
printf("
printf("
");printf("
无法打开文件
");printf("");
}else{
printf("%s%c%c","Content-Type:text/plain",13,10);
while((ch=getc(f)) != EOF)
putchar(ch);
fclose(f);
}
return 0;
}
发布评论