啥都不說,直接看代碼!
簡單輸出代碼
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void main()
{
printf("Content-type:text/html\n\n");
printf("hello world!");
fflush(stdout);
}
處理get代碼
#include <stdio.h>
#include <stdlib.h>
int zmain(void)
{char *data;
long m,n;
printf("%s%c%c\n","Content-Type:text/html;charset=iso-8859-1",13,10);
printf("<TITLE>Multiplication results</TITLE>\n");
printf("<H3>Multiplication results</H3>\n");
data = getenv("QUERY_STRING");
if(data == NULL)
printf("<P>Error! Error in passing data from form to script.");
else if(sscanf(data,"m=%ld&n=%ld",&m,&n)!=2)
printf("<P>Error! Invalid data. Data must be numeric.");
else
printf("<P>The product of %ld and %ld is %ld.",m,n,m*n);
return 0;
}
處理post代碼
#include<stdio.h>
#include<stdlib.h>
void main()
{
int i,n;
printf("Content-type:text/html\n\n");
n=0;
if(getenv("CONTENT_LENGTH"))
n=atoi(getenv("CONTENT_LENGTH"));
printf("%d",n);
for(i=0;i<n;i++)
putchar(getchar());
putchar('\n');
fflush(stdout);
}
還是代碼
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* 轉換函數聲明 */
int htoi(char *);
/* 主函數 */
void zmain() {
int i,n;
char c;
printf ("Content-type: text/html\n\n");
n=0;
if (getenv("CONTENT_LENGTH"))
n=atoi(getenv("CONTENT_LENGTH"));
for (i=0; i<n;i++){
int is_eq=0; //判斷是否有等于號。
c=getchar();
switch(c){
case '&':
c='\n';
break;
case '+':
c='+';
break;
case '%':
{
char s[3];
s[0]=getchar();
s[1]=getchar();
s[2]=0;
c=htoi(s);
i+=2;
}
break;
case '=':
c='=';
is_eq=1;
break;
};
putchar(c);
//if (is_eq) putchar(' ');
}
putchar ('\n');
fflush(stdout);
}
/* 轉換為小寫 */
int islower (int ch )
{
return (unsigned int) (ch - 'a') < 26u;
}
/* convert hex string to int 16進制轉換成10進制 */
int htoi(char *s)
{
char *digits="0123456789ABCDEF";
if(islower(s[0])) s[0]=toupper(s[0]);
if(islower(s[1])) s[1]=toupper(s[1]);
return 16 * (strchr(digits, s[0]) -strchr(digits,'0') ) +(strchr(digits,s[1])-strchr(digits,'0'));
}
#include<stdio.h>
#include<stdlib.h>
void zzzmain()
{
int i,n;
printf("Content-type:text/html\n\n");
n=0;
if(getenv("CONTENT_LENGTH"))
n=atoi(getenv("CONTENT_LENGTH"));
printf("%d",n);
for(i=0;i<n;i++)
putchar(getchar());
putchar('\n');
fflush(stdout);
}
posted on 2008-02-26 15:37
Super·shen BLOG 閱讀(747)
評論(0) 編輯 收藏