우서는 설명을 ..
저희 프로그램을 겜방에서 깔면요 업체등록을 하게되있는데요.날라오는 것은
cgi로 다 되어있거든요.그래서 저희 서버에는 PHP 파일과 DB만 있으면 자동적으로
업체등록정보들이 입력이되구요 각각의 테이블에요.....
그래서 PHP파일을 cgi-bin 폴더에 넣구요 (이것은 확실함.파일위치)
날라오는 정보들의 폼이름대로 DB와 테이블을 만들었거든요.. 근데 안되요 ..
왜그러는지 도저희....몰겠음.. 그래서 아래와 같이 만든내용들을 적어봅니다..
<?php
if (!$Name) {
echo ("Error");
exit;
}
if (!$ID1) {
echo ("Error");
exit;
}
if (!$ID2) {
echo ("Error");
exit;
}
if (!$FirmName) {
echo ("Error");
exit;
}
if (!$Phone) {
echo ("Error");
exit;
}
if (!$Address) {
echo ("Error");
exit;
}
if (!$Email) {
echo ("Error");
exit;
}
if (!$PC) {
echo ("Error");
exit;
}
if (!$LocalIP) {
echo ("Error");
exit;
}
if (!$Version) {
echo ("Error");
exit;
}
$dbconn = mysql_connect("localhost","DB명","DB접근가능id");
mysql_select_db("netimo",$dbconn);
$query = "select num, LocalIP from 테이불명 order by num desc";
$dbresult = mysql_query($query);
$ip = mysql_result($dbresult,0,"LocalIP");
$num = mysql_result($dbresult,0,"num");
if( $ip != $LocalIP ) {
$date = date("Y-m-d");
$Name = addslashes($Name);
$FirmName = addslashes($FirmName);
$Address = addslashes($Address);
$VGA = addslashes($VGA);
$Email = addslashes($Email);
$Version = addslashes($Version);
$insert = "INSERT INTO pcmem(Name, ID1, ID2 , FirmName, Phone, Province, Address, Zip1, Zip2, Email, CPU, VGA, PC, LocalIP, Version, ClientPC, date) VALUES('$Name', '$ID1', '$ID2 ', '$FirmName', '$Phone', '$Province', '$Address', '$Zip1', '$Zip2', '$Email', '$CPU', '$VGA', '$PC', '$LocalIP', '$Version', '$ClientPC', '$date')";
$dbinsert = mysql_query($insert);
if(!$dbinsert){ echo("DB Insert Failed");
exit;
}else{ echo("successfully registered.");
exit;
}
}else{
$date = date("Y-m-d");
$Name = addslashes($Name);
$FirmName = addslashes($FirmName);
$Address = addslashes($Address);
$VGA = addslashes($VGA);
$Email = addslashes($Email);
$Version = addslashes($Version);
$update = "UPDATE pcmem SET Name = '$Name', ID1 = '$ID1', ID2 = '$ID2', FirmName='$FirmName', Phone='$Phone', Province='$Province', Address='$Address', Zip1='$Zip1', Zip2='$Zip2', Email='$Email', CPU='$CPU', VGA='$VGA', PC='$PC', LocalIP='$LocalIP', Version='$Version', ClientPC='$ClientPC', date='$date' where num = $num";
$dbupdate = mysql_query($update);
if(!$dbupdate){ echo("DB Update Failed");
exit;
}else{ echo("successfully registered.");
exit;
}
}
?>
폼 내용들은
인덱스 필드는 LocalIP 입니다.
필드명 변수타입 길이 설명 필수여부
Name 문자열 30 대표자성명 Yes
ID1 문자열 6 주민등록번호 앞자리 Yes
ID2 문자열 7 주민등록번호 뒷자리 Yes
FirmName 문자열 30 상호 Yes
Phone 문자열 20 전화번호 Yes
Province 문자열 10 지역 Yes
Address 문자열 40 이하 주소 Yes
Zip1 문자열 3 우편번호 앞자리 No 칸이 잘안맞군요!!!
Zip2 문자열 3 우편번호 뒷자리 No
Email 문자열 40 전자 우편 주소 Yes
CPU 문자열 20 CPU 사양 Yes
VGA 문자열 20 VGA 사양 Yes
PC 숫자 매장내 PC 대수 Yes
LocalIP 문자열 15 카운터 PC의 IP주소 Yes
Version 문자열 5 사용중인 프로그램의버전 Yes
ClientPC 숫자 클라이언트프로그램을설치한 PC의 대수 Yes
위와 같이 테이블을 만들어 주시면 되겠구요, 실제로 CGI로 날아갈 변수는 다음과 같은 문자열로 발송됩니다.( CGI를 설치한 분의 설명입니다.)
예) Name=홍길동&ID1=701010&ID2=1533222&FirmName=스타게임방&Phone=02-888-2222&Province=서울특별시&Address=마포구 공덕동 제일빌딩 1402호&Zip1=500&Zip2=100&Email=ppno@chollian.net&CPU=Pentium II&VGA=8M&PC=20&LocalIP=192.168.0.1&Version=1.0.2&ClientPC=2
Cgi가 실행될 때 중요한 점은 인덱스 값인 LocalIP를 조사해서 이미 DB에 등록되어 있는 경우에는 그 레코드를 수정하고 아직 등록되지 않은 IP주소이면 레코드를 추가한다는 점입니다. IP주소는 모두 고유해야 하니까요..( CGI를 설치한 분의 설명)
그리고 등록에 성공하면 "successfully registered." 라는 메시지를 에코해주시고, 등록에 실패하면 아무 메시지나 에코해 주시면 됩니다..( CGI를 설치한 분의 설명)
제가만들어서 실패한 DB 와 테이블들........
create table pcmem(
name varchar(30),
id1 varchar(6),
id2 varchar(6),
firmname varchar(30),
phone varchar(20),
province varchar(10),
address varchar(40),
zip1 varchar(3),
zip2 varchar(3),
email varchar(40),
cpu varchar(20),
vga varchar(20),
pc varchar(3),
localip varchar(15) default '' not null,
version varchar(5),
clientpc varchar(5)
);
결과물
----+------+------+----------+-------+----------+---------+------+------+---+
| Name | ID1 | ID2 | FirmName | Phone | Province | Address | Zip1 | Zip2 | E
+------+------+------+----------+-------+----------+---------+------+------+--
| NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | NULL | N
+------+------+------+----------+-------+----------+---------+------+------+-- 뒷부분 좀 잘림.
이걸 답해주시는분 없을거 같아 걱정되네요.....^^;
|