웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
여러 서버에서 하나의 회원목록 관리&사용
2008.01.04 22:18
여러 홈페이지나 서버에서 하나의 회원목록을 사용하기 위해 수정을 하는방법입니다.
예를들어 http://aaa.com 에 가입을 하면 http://aaa.com , http://bbb.com , http://ccc.com 모두 같은 아이디로 로그인이 되고 bbb.com 이나 ccc.com 에서 가입을 해도 마찬가지로 작동하게 됩니다.
포탈같은 개념으로 생각하시면 쉬울듯합니다.
먼저 한곳에 설치를 합니다. 회원정보를 보관할 곳입니다.
그리고 다른곳에도 설치를 한 후 아래와 같이 수정해주세요.
/** * @brief : 쿼리문의 실행 및 결과의 fetch 처리 * * query : query문 실행하고 result return\n * fetch : reutrn 된 값이 없으면 NULL\n * rows이면 array object\n * row이면 object\n * return\n **/ function _query($query) { if(!$this->isConnected()) return; // 쿼리 시작을 알림 $this->actStart($query); // 쿼리 문 실행 if(stripos($query, 'xe_member') !== false || stripos($query, 'xe_sequence'+ '+ ') !== false) { $tmp=mysql_connect("서버주소", "mysql아이디", "mysql암호"); mysql_select_db("db명", $tmp); mysql_query("set names 'utf8'", $tmp); $result = mysql_query($query, $tmp); } else { $result = @mysql_query($query, $this->fd); } // 오류 체크 if(mysql_error($this->fd)) $this->setError(mysql_errno($this->fd), mysql_error($this->fd)); // 쿼리 실행 종료를 알림 $this->actFinish(); // 결과 리턴 return $result; }
mysql을 사용해서 mysql에 대한 설정만 있지만 다른것도 비슷하게 사용가능할것입니다.
좀 깔끔하게 수정하여 사용하고 싶었는데 이렇게밖에 안되는듯합니다.
xe_member 를 'xe_member' 로 바꿔야 더 정확한 처리가 될것 같은데 이부분은 아직까지 문제가 안나와서 그냥 쓰고있습니다;
http://ucc.funiz.com 이랑 http://nintendoplay.net 이랑 현재 쓰고 있습니다.
// 쿼리 문 실행 $tables[]="xe_point"; $tables[]="xe_member"; $tables[]="xe_sequence"; foreach($tables as $key => $val) { if(stripos($query, $val) !== false) { $islink=true; break; } } if($islink) { $tmp=mysql_connect("서버", "아이디", "암호"); mysql_select_db("db명", $tmp); mysql_query("set names 'utf8'", $tmp); $result = mysql_query($query, $tmp); } else { $result = @mysql_query($query, $this->fd); }
태그 연관 글
- [2011/08/17] 묻고답하기 진짜 이상해요 도와주세요~~ *1