지금이야 JSP,ASP,PHP,파이션 및 기타 여러가지 서버 프로그래밍 방식의 플랫폼이 주어져서 작업이 편했지만,
(물론 모두다 C에서 야기된 산출물 이지만) 아무것도 없던 예전엔 Low Level에서 모두 프로그래밍 해줬던 것이 기억난다.
여기저기 뒤적거리다 예전 자료를 발견해서 올려봄..
(물론 모두다 C에서 야기된 산출물 이지만) 아무것도 없던 예전엔 Low Level에서 모두 프로그래밍 해줬던 것이 기억난다.
여기저기 뒤적거리다 예전 자료를 발견해서 올려봄..
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <sys/timeb.h>
#define LIST "phoneres.html"
#define MAX_ENTRIES 10000
typedef struct {
char *f_name;
char *f_val;
} entry;
int searchok=0;
char searchdata[100];
char *queryresult;
main(argc, argv)
int argc; char *argv[];
{
register int i;
int totn, cl;
long cntn;
char *whdomain, *whip, whtime[20], whdate[20], *browser;
entry inparam[MAX_ENTRIES];
time_t tmp_time1;
struct tm *tmp_time2;
FILE *fp;
printf("Content-type: text/html%c%c",10,10);
whdomain = getenv("REMOTE_HOST"); /*클라이언트 호스트명*/
whip = getenv("REMOTE_ADDR"); /*클라이언트 ip*/
browser = getenv("HTTP_USER_AGENT");/*클라이언트 브라우져명*/
tmp_time1 = time(0);
tmp_time2 = localtime(&tmp_time1);
strftime(whdate, 99, "%Y/%m/%d", tmp_time2);
strftime(whtime, 99, "%H:%M", tmp_time2);
cl = atoi(getenv("CONTENT_LENGTH"));/*표준입력의 바이트수*/
for(i=0;cl && (!feof(stdin));i++)
{
inparam[i].f_val = (char *)fmakeword(stdin,'&',&cl); /*입력필드분리*/
plustospace(inparam[i].f_val);/*+ => space*/
unescape_url(inparam[i].f_val);/*%다음의 16진수 2문자를 문자로 변환*/
inparam[i].f_name = (char *)makeword(inparam[i].f_val,'=');/*변수분리*/
}
printf("Parameter Number=%d",i);
if (strlen(inparam[0].f_val) <= 0)
{
printf("<BODY BGCOLOR=\"#000000\" TEXT=\"#ffffff\" LINK=\"#FFFF66\"
VLINK=\"#FF0099\" ALINK=\"#FF00FF\">%c", 10);
printf("<H2>Sorry</H2>%c", 10);
printf("조회키(이름)를 입력하세요.<BR>%c", 10);
printf("<A HREF=\"phoneset.html\">입력화면으로..</A>%c", 10);
printf("</BODY>");
fclose(fp);
exit(0);
}
if (atoi(inparam[1].f_val) !=0)/*조회가 아니면*/
{
printf("<BODY BGCOLOR=\"#000000\" TEXT=\"#ffffff\" LINK=\"#FFFF66\"
VLINK=\"#FF0099\" ALINK=\"#FF00FF\">%c", 10);
printf("<H2>Sorry</H2>%c", 10);
printf("조회만 가능합니다.<BR>%c", 10);
printf("<A HREF=\"phoneset.html\">입력화면으로..</A>%c", 10);
printf("</BODY>");
fclose(fp);
exit(0);
}
/*[start]---------------------------------------*/
/*이부분에 db access루틴 추가함--krkim*/
if(!stricmp(inparam[0].f_val,"김경래"))
searchok=1;
if(searchok==1)
strcpy(searchdata,"015-455-0813");
/*[end]---------------------------------------*/
if(searchok==0)
{
printf("<BODY BGCOLOR=\"#000000\" TEXT=\"#ffffff\" LINK=\"#FFFF66\"
VLINK=\"#FF0099\" ALINK=\"#FF00FF\">%c", 10);
printf("<H2>Sorry</H2>%c", 10);
printf("찾는 데이타가 없습니다.<BR>%c", 10);
printf("<A HREF=\"phoneset.html\">입력화면으로..</A>%c", 10);
printf("</BODY>");
fclose(fp);
exit(0);
}
fp = fopen(LIST, "w+");
cntn = ftell(fp);
fseek(fp, (long) (cntn+2), 0);
fscanf(fp, "%d", &totn);
fseek(fp, 0, 0);
fprintf(fp, "<!%8d>%c", totn+1, 10);
fseek(fp, 0, 2);
fprintf(fp, " <HTML><HEAD><TITLE>결과화면</TITLE></HEAD>");
fprintf(fp, " <BODY BGCOLOR=\"#000000\" TEXT=\"#ffffff\" LINK=\"#FFFF66\" VLINK=\"#000099\">");
fprintf(fp, " <H2>결과화면:Messages from Outerspace</H2> %c",10);
fprintf(fp, "<IMG WIDTH=100%% SRC=\"sha_ln4.jpg\">%c", 10);
fprintf(fp, "%c<IMG SRC=\"green.gif\">조회결과입니다.%c<P>", 10, 10);
/*fprintf(fp, "<FONT SIZE=+1><STRONG>%s</STRONG></FONT>", inparam[0].f_val);*/
fprintf(fp, "<BLOCKQUOTE><TABLE WIDTH=600 BORDER=3>%c", 10);
fprintf(fp, "<TR><TD><CITE>QueryKey(Name): </CITE><STRONG>%s</STRONG></TD></TR>%c", inparam[0].f_val, 10);
fprintf(fp, "<TR><TD><CITE>Query Result : </CITE><STRONG>%s</STRONG></TD></TR>%c", searchdata, 10);
fprintf(fp, "</TABLE></BLOCKQUOTE>%c",10);
fprintf(fp, "<BLOCKQUOTE><TABLE WIDTH=600 BORDER=2><TR>%c", 10);
fprintf(fp, "<TD><CITE>Date : </CITE><STRONG>%s</STRONG></TD>%c", whdate, 10);
if (whdomain == NULL) {
fprintf(fp, "<TD><CITE>From : </CITE><STRONG>%s</STRONG></TD></TR>%c", whip, 10); }
else {
fprintf(fp, "<TD><CITE>From : </CITE><STRONG>%s (%s)</STRONG></TD></TR>%c", whdomain, whip, 10); }
fprintf(fp, "<TR><TD><CITE>Time : </CITE><STRONG>%s</STRONG></TD>%c", whtime, 10);
fprintf(fp, "<TD><CITE>With : </CITE><STRONG>%s</STRONG></TD></TR></TABLE></BLOCKQUOTE>%c", browser, 10);
fprintf(fp, "<IMG WIDTH=100%% SRC=\"sha_ln4.jpg\">%c", 10);
fclose(fp);
printf("<BODY BGCOLOR=\"#000000\" TEXT=\"#ffffff\" LINK=\"#FFFF66\" VLINK=\"#000099\" ALINK=\"#0000FF\">%c", 10);
printf("<FONT SIZE=+3><CITE>Thank you.</CITE></FONT><P>%c", 10);
printf("처리완료:<A HREF=\"phoneres.html\"> 결과보기</A><BR>%c", 10);
printf("<A HREF=\"phoneset.html\">입력화면으로..</A>%c", 10);
printf("</BODY>");
}
|
'Server | Network' 카테고리의 다른 글
큐브리드 SQL 온라인 메뉴얼 (0) | 2011.02.09 |
---|---|
Man for Pthread: Basic Routines (0) | 2011.02.08 |
네트워크 소켓프로그래밍 일반(Network Socket Programming Guide) (0) | 2011.01.27 |
네크워크 개념(Conception of Network) (0) | 2011.01.27 |
Daemon Process 작성시 주의사항 (1) | 2011.01.27 |