웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
주소록 구현 (외부 페이지)
2008.09.15 07:05
예전에 주소록 구현 방식을 올렸었는데, 내용 및 코드를 다시 고쳐서 다시 올립니다.
----------------------------------------------------------------------------------------------------
동문회 사이트를 운영 중인데 주소록 기능이 따로 없어 외부 페이지 방식으로 구현해 보았습니다.
추가 회원 정보인 extra_vars 값을 unserialize를 배열에 집어넣고 정렬하여 정보를 추출하는 방식입니다.
적당한 이름(예: address.php 와 connect.php)으로 저장한 후 외부 페이지로 등록해서 사용하면 됩니다.
----------------------------------------------------------------------------------------------------
<외부 페이지 등록방법>
1. 계정에 address.php / connect.php 업로드
예) /home/userid/public_html/directory/address.php
/home/userid/public_html/directory/connect.php
2. 관리자 페이지 로그인
3. 서비스형 모듈 섹션의 "외부 페이지" 선택
4. 외부 페이지 "생성"
5. 모듈 이름 입력 및 외부 문서 위치에 업로드한 "address.php" 파일의 경로 입력
예) 모듈 이름 : directory
예) 외부 문서 위치 : /home/userid/public_html/directory/address.php
6. 메뉴 관리자 메뉴로 이동
7. 메뉴 생성 선택 후 "연결 url"로 directory 선택
8. directory 메뉴 생성 확인. 끝!
----------------------------------------------------------------------------------------------------
<파일 소스>
1. address.php 파일
connect.php
----------------------------------------------------------------------------------------------------
동문회 사이트를 운영 중인데 주소록 기능이 따로 없어 외부 페이지 방식으로 구현해 보았습니다.
추가 회원 정보인 extra_vars 값을 unserialize를 배열에 집어넣고 정렬하여 정보를 추출하는 방식입니다.
적당한 이름(예: address.php 와 connect.php)으로 저장한 후 외부 페이지로 등록해서 사용하면 됩니다.
----------------------------------------------------------------------------------------------------
<외부 페이지 등록방법>
1. 계정에 address.php / connect.php 업로드
예) /home/userid/public_html/directory/address.php
/home/userid/public_html/directory/connect.php
2. 관리자 페이지 로그인
3. 서비스형 모듈 섹션의 "외부 페이지" 선택
4. 외부 페이지 "생성"
5. 모듈 이름 입력 및 외부 문서 위치에 업로드한 "address.php" 파일의 경로 입력
예) 모듈 이름 : directory
예) 외부 문서 위치 : /home/userid/public_html/directory/address.php
6. 메뉴 관리자 메뉴로 이동
7. 메뉴 생성 선택 후 "연결 url"로 directory 선택
8. directory 메뉴 생성 확인. 끝!
----------------------------------------------------------------------------------------------------
<파일 소스>
1. address.php 파일
<?php ////////////////////////////////////////////////////////// // 로그인 하지 않은 이용자의 정보 접근 차단을 위해 삽입 // 로그인 하지 않은 상태에서 접근 시 에러 표시 (다른 방법으로 개선 필요) ////////////////////////////////////////////////////////// $logged_info = Context::get("logged_info"); if($logged_info) { //echo $logged_info->nick_name."님 로그인 되었습니다"; } else { echo "로그인을 먼저 하십시요"; } ////////////////////////////////////////////////////////// // 접속 정보 ////////////////////////////////////////////////////////// include "/절대경로/connect.php"; ////////////////////////////////////////////////////////// $query = "select * from xe_member where user_id != 'webmaster'"; mysql_query("set names utf8;"); $result = mysql_query($query, $link); $num_results = mysql_num_rows($result); ////////////////////////////////////////////////////////// ?> <p>(총 회원수 : <?php echo $num_results ?>명)</p> <table border='1' cellspacing='0' bordercolorlight='black'> <tr> <td bgcolor="#FFFF00" nowrap>이름</td> <td bgcolor="#FFFF00" nowrap>입학/졸업</td> <td bgcolor="#FFFF00" nowrap>전공</td> <td bgcolor="#FFFF00" nowrap>전자우편</td> <td bgcolor="#FFFF00" nowrap>핸드폰</td> <td bgcolor="#FFFF00" nowrap>회사</td> </tr> <?php $i = 0; while ($data = mysql_fetch_array($result)) { $user_id = $data[user_id]; $user_name = $data[user_name]; $homepage = $data[homepage]; $blog = $data[blog]; $email_address = $data[email_address]; $birthday = $data[birthday]; $last_login = $data[last_login]; $data1 = unserialize($data[extra_vars]); //------------------------------------------------------- // extra_vars 배열 구조 확인 필요 시 실행 // 필드명은 이용자마다 다르므로 아래 print_r($data1) 을 주석제거하여 확인 후 아래 필드명 코드 부분 수정 필요 //------------------------------------------------------- // echo "<pre>"; //print_r($data1); //------------------------------------------------------- // Object 를 Array로 변환 $array = array(); if (is_object($data1)) { $array = get_object_vars($data1); } //------------------------------------------------------- $major = trim($array[major], "\""); $entrance = trim($array[entrance], "\""); $graduation = trim($array[graduation], "\""); $handphone = trim($array[cellphone], "\""); $home_tel = trim($array[home_tel], "\""); $home_address = trim($array[home_address], "\""); $msn = trim($array[msn], "\""); $yahoo = trim($array[yahoo], "\""); $introduction = trim($array[introduction], "\""); $job = trim($array[job], "\""); $company = trim($array[company], "\""); if ($company == NULL) { $company = " "; } $position = trim($array[position], "\""); //------------------------------------------------------- // entrance 항목 순으로 정렬하기 위해 entrance 항목을 배열에 가장 먼저 삽입 //------------------------------------------------------- $list[$i][entrance] = $entrance; $list[$i][user_id] = $user_id; $list[$i][user_name] = $user_name; $list[$i][graduation] = $graduation; $list[$i][major] = $major; $list[$i][email_address] = $email_address; $list[$i][handphone] = $handphone; $list[$i][company] = $company; $list[$i][job] = $job; //////////////////////////////////////////////////////////////////////// $i++; } mysql_free_result($result); // Sort (Order by entrance) sort($list); for ($j = 0; $j < $i; $j++) { $entrance = $list[$j][entrance]; $user_id = $list[$j][user_id]; $user_name = $list[$j][user_name]; $graduation = $list[$j][graduation]; $major = $list[$j][major]; $email_address = $list[$j][email_address]; $handphone = $list[$j][handphone]; $company = $list[$j][company]; $job = $list[$j][job]; if ($entrance % 3 == 0) { echo "<tr> <td nowrap bgcolor=#FFFFCC>$user_name</td> <td bgcolor=#FFFFCC>$entrance/$graduation</td> <td bgcolor=#FFFFCC>$major</td> <td bgcolor=#FFFFCC><small>$email_address</td> <td bgcolor=#FFFFCC>$handphone</td> <td bgcolor=#FFFFCC>$company</td> </tr>"; } else if ($entrance % 3 == 1) { echo "<tr> <td nowrap bgcolor=#CCFFCC>$user_name</td> <td bgcolor=#CCFFCC>$entrance/$graduation</td> <td bgcolor=#CCFFCC>$major</td> <td bgcolor=#CCFFCC><small>$email_address</td> <td bgcolor=#CCFFCC>$handphone</td> <td bgcolor=#CCFFCC>$company</td> </tr>"; } else if ($entrance % 3 == 2) { echo "<tr> <td nowrap bgcolor=#FFCC00>$user_name</td> <td bgcolor=#FFCC00>$entrance/$graduation</td> <td bgcolor=#FFCC00>$major</td> <td bgcolor=#FFCC00><small>$email_address</td> <td bgcolor=#FFCC00>$handphone</td> <td bgcolor=#FFCC00>$company</td> </tr>"; } else { echo "<tr> <td nowrap>$user_name</td> <td >$entrance/$graduation</td> <td >$major</td> <td ><small>$email_address</td> <td >$handphone</td> <td >$company</td> </tr>"; } } ?> </table>
connect.php
<? $mysql_hostname = "localhost"; $mysql_user = "아이디"; $mysql_password = "암호"; $dbname = "DB명"; $tablename = "xe_member"; $link = mysql_connect($mysql_hostname, $mysql_user, $mysql_password); if (!($link)) { echo "Error connecting to [<b>$hostname</b>] host , by user $user. <br> Please check your ID and password."; exit(); } mysql_select_db($dbname, $link); ?>
댓글 17
제목 | 글쓴이 | 날짜 |
---|---|---|
한 페이지(화면)에 두개(2개)의 모듈(게시판 등)을 넣는 법 [6] | 황건순 | 2008.08.25 |
음악넣는 BGM코드 70종류 입니다 [1] | 푸른커튼 | 2008.08.25 |
댓글(코멘트) 입력창에 이미지 넣기 [19] | skyatc | 2008.08.29 |
밑에 페이지 네비게이션 수정 (다음10개, 이전10개등으로) [6] | Clanss | 2008.08.29 |
메인화면에 플래시 쉽게 삽입하는 방법.. [12] | 청개구리00 | 2008.08.30 |
문서 카테고리를 메뉴에 적용하기 위한 레이아웃 수정 팁과 개념토론 [7] | 제베 | 2008.08.31 |
원하는 위치에 구글 (맞춤)검색창 달기 [2] | 다케루 | 2008.09.02 |
각 리스트형 위젯에 페이지 기능을 달자. [10] | 라르게덴 | 2008.09.02 |
[우클릭 및 드레그 방지법] 및 [방지된 홈페이지 해재법] >0< [7] | 이홍석295 | 2008.09.03 |
카멜레온 최근글 위젯 클릭시 새창 팁 | 가랑바람 | 2008.09.04 |
회원 포인트 선물 하기 등 포인트 변경시 바로 적용 방법 | 한꼬마 | 2008.09.06 |
동일서버내 페이지에서 로그인정보 활용하기... [4] | 수로 | 2008.09.06 |
다음카페에 끊김없이 음악나오게 하기 | 푸른커튼 | 2008.09.06 |
등록하시겠습니까? 등록할까요? 안 나오고 바로 글 등록되게 하는 법 [6] | 황건순 | 2008.09.08 |
블로그, 홈페이지 가입시 자동 입력되는 http:// 없애기 [2] | 류영무 | 2008.09.09 |
IP 주소 4자리수 모두 공개하는 방법 [1] | 블루파티 | 2008.09.11 |
에디터 9pt 추가 및 에디터에도 웹폰트 보이게 하기. [13] | 욜리 | 2008.09.11 |
사진 한꺼번에 일괄적으로 올리기 [4] | 안정수650 | 2008.09.12 |
게시판 에디터 폰트 글자(글씨)크기 변경하는 법 | 씨에씨에 | 2008.09.12 |
주소록 구현 (외부 페이지) [17] | CSLab | 2008.09.15 |