웹마스터 팁
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
제목 | 글쓴이 | 날짜 |
---|---|---|
한글, 영문, 숫자, 특수문자 체크하는 함수 | ByteCMC | 2014.03.07 |
중국대륙 IP 차단방법 [5] | 낮은자 | 2014.03.07 |
[초보]자신의 컴퓨터에 서버설치
[2]
![]() | 낮은자 | 2014.03.07 |
[jQuery] 클릭하면 내용이 사라지는 방법 | 낮은자 | 2014.03.07 |
날짜를 출력하는 간단한 소스입니다 | 낮은자 | 2014.03.07 |
게시판 접속시에 첫(제일 최근) 게시물이 보여지게 하기 [16] | foret | 2014.03.08 |
게시판에 대해 닉네임,이름 등의 정렬을 추가하는 방법 [1] | sejin7940 | 2014.03.09 |
xp어플 개발시 사진 회원 바로잡아 주는 함수 | 웹빌드 | 2014.03.09 |
홈페이지 주소창 상세 링크 안보이게 설정 | 헤이즈디자인 | 2014.03.09 |
사이트접속시 모바일기기 접속이면 설정한 페이지로 이동시키기 | 홈피닥터 | 2014.03.09 |
XE 어플 개발시 키보드위에 입력창 올리기 [4] | 웹빌드 | 2014.03.11 |
폰갭 처리시 뒤로가기 종료 처리 방법 | 웹빌드 | 2014.03.11 |
관리자 비밀번호 분실시 phpmyadmin을 이용하여 재설정하는 방법 [6] | elancer | 2014.03.11 |
XE 업로드 먹통시 1.7.8 버전 - 추가로 질문포함. [1] | artsmi.myid.net | 2014.03.12 |
css3를 이용한 button 입니다. | Ansi™ | 2014.03.13 |
모바일 웹 팁 | natureweb | 2014.03.13 |
아이피, 도메인 차단하는 방법 | ByteCMC | 2014.03.16 |
호환성보기 명령어 모음 | 다큰왕자 | 2014.03.17 |
|웹폰트(네이버 맑은 고딕, 나눔고딕) 적용하기 [1] | 다큰왕자 | 2014.03.18 |
XE 앱 개발시 키보드 포커스 관리 | StyleRoot | 2014.03.19 |