웹마스터 팁

예전에 주소록 구현 방식을 올렸었는데, 내용 및 코드를 다시 고쳐서 다시 올립니다.

----------------------------------------------------------------------------------------------------

동문회 사이트를 운영 중인데 주소록 기능이 따로 없어 외부 페이지 방식으로 구현해 보았습니다.

추가 회원 정보인 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 = "&nbsp;";
        }
        $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);
?>

제목 글쓴이 날짜
한글, 영문, 숫자, 특수문자 체크하는 함수 ByteCMC 2014.03.07
중국대륙 IP 차단방법 [5] 낮은자 2014.03.07
[초보]자신의 컴퓨터에 서버설치 [2] file 낮은자 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