회원 아이디명으로 디렉토리 만들기
링크의 phpschool에서 본 팁을 그누에 맞게 고쳤습니다. (아주 조금;;;)
포탈의 블로그나 미니홈피처럼 회원아이디명으로 디렉토리를 만들어서 2차도메인으로 부여해줄 때 쓰면 되겠습니다. 이걸 몰라서 그동안 ftp에서 수동으로 폴더를 만든 다음 파일을 엎로드했습니다 -_-;; (진작 알았더라면..)
제가 하는 방법은 말그대로 초보수준이니 고수님들의 조언도 적극 환영입니다.
<?
include_once("./_common.php");
@mkdir("../$member[mb_id]",0777);
$file=@fopen("../$member[mb_id]/index.php","w") or Error("실패<br><br>완성","");
@fwrite($file,"<meta http-equiv=\"refresh\" content=\"0; url=/g4/?mbid=$member[mb_id]\">") or Error("실패<br><br>완성","");
@fclose($file);
?>
이걸 그누보드 디렉토리에 적당한 이름으로 저장합니다. (예 : mk_dir.php)
그리고 아무 회원의 아이디로 로그인 한 후 웹에서 http://도메인/g4/mk_dir.php 를 주소창에 넣고 띄웁니다. 그냥 홈피상에 저 주소를 링크를 걸고 클릭하게 해도 되겠죠.
이제 서버상에 그 회원아이디명의 폴더가 생깁니다. 그리고 그 폴더안에는 index.php라는 파일이 들어있는데 파일안의 내용은 이렇습니다.
<meta http-equiv="refresh" content="0; url=/g4/?mbid=userID">
위 소스의 네번째 줄이 그 내용이죠.
즉 www.도메인/userID 로 접속하면 www.도메인/g4/?mbid=userID 로 포워딩시키는 겁니다.
이걸 적절하게 창조적(?)으로 응용하면 다양한 방법이 나올 거 같네요. 특정레벨 이상인 회원들만 2차도메인을 가질 수 있게 한다든지.....
포탈의 블로그나 미니홈피처럼 회원아이디명으로 디렉토리를 만들어서 2차도메인으로 부여해줄 때 쓰면 되겠습니다. 이걸 몰라서 그동안 ftp에서 수동으로 폴더를 만든 다음 파일을 엎로드했습니다 -_-;; (진작 알았더라면..)
제가 하는 방법은 말그대로 초보수준이니 고수님들의 조언도 적극 환영입니다.
<?
include_once("./_common.php");
@mkdir("../$member[mb_id]",0777);
$file=@fopen("../$member[mb_id]/index.php","w") or Error("실패<br><br>완성","");
@fwrite($file,"<meta http-equiv=\"refresh\" content=\"0; url=/g4/?mbid=$member[mb_id]\">") or Error("실패<br><br>완성","");
@fclose($file);
?>
이걸 그누보드 디렉토리에 적당한 이름으로 저장합니다. (예 : mk_dir.php)
그리고 아무 회원의 아이디로 로그인 한 후 웹에서 http://도메인/g4/mk_dir.php 를 주소창에 넣고 띄웁니다. 그냥 홈피상에 저 주소를 링크를 걸고 클릭하게 해도 되겠죠.
이제 서버상에 그 회원아이디명의 폴더가 생깁니다. 그리고 그 폴더안에는 index.php라는 파일이 들어있는데 파일안의 내용은 이렇습니다.
<meta http-equiv="refresh" content="0; url=/g4/?mbid=userID">
위 소스의 네번째 줄이 그 내용이죠.
즉 www.도메인/userID 로 접속하면 www.도메인/g4/?mbid=userID 로 포워딩시키는 겁니다.
이걸 적절하게 창조적(?)으로 응용하면 다양한 방법이 나올 거 같네요. 특정레벨 이상인 회원들만 2차도메인을 가질 수 있게 한다든지.....
|
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기
댓글 23개
위 내용을 관리자 화면에서 정의를 해주고
해당 생성 디렉토리 내에는 기본적인 인덱스 화일을 넣어주고 회원 로그인시 디렉토리 존재 유무를 판단해서
있다면 바로가기 링크를 생성하는 것도 좋을듯 합니다....
이게 사실 지금 제가 찾고 있는 팁이거든요^^;;
혹시 알고 계시면 좀......
$dirname ="$g4[path]/{$member[mb_id]}/";//요기서 {}으로 감싸주어야 하는지는 미 검증됨
if ($dirname) { //디렉토리가 있다면
어쩌구 저쩌구~~~ 달나라 별나라 콩깍지
} else {
미주알 ~~~~~~~
}
?>
하면 되지 않을 까 싶습니다.
아니면 adm/admin.lib.php의 get_skin_dir 를 참조해 보시는 것도~~~
아래 내용을 올리시고 한 번 해 보세요....^^ 제 계정에서는 검증이 되었지만...혹시나....
<?
// 상대 경로
$g4_path = ".";
include_once("$g4_path/_common.php");
$sub_dir = "$member[mb_id]";
$tmp = @dir("$g4[path]/$sub_dir");
if($tmp) {
echo "하하하하하호호호호호~!";
//alert("YOU WIN");
} else {
alert("DIE");
}
?>
여기에서 $tmp 는 오브젝트로서 존재 유무만 파악을 합니다. 이동하시려면 opendir()를
이용하셔야 할듯 합니다.
그누보드와 동위선상에 있는 디렉토리들을 검색하려면 어떻게 해야 될까요?
$tmp = @dir("$g4[path]/$sub_dir"); // 이 부분을 수정해야 할 듯 한데...
제가 상대경로에 대한 개념이 아직 안 잡혀서;;;
이 좋은 팁으로 인해 뭔가가 하나 느낌이 팍팍 오는데 아마도 지금은 손 댈수가 없고
메모만 해 놓고 추후 검토해 보아야 겠습니다.
어쩌면 2차도메인(?) 활용에 큰 도움이 되겠습니다....^^
이 함수도 한번 활용해 보세요 ^^
근데 file_exists -- 파일이 있는지 체크... 이게 디렉토리에도 해당이 될까요?
dir_exists -- 이렇게 하면 될런지....
dir : 디렉토리를 읽기위한 가상의 오브젝트입니다...
(PHP 3, PHP 4, PHP 5)
is_dir -- Tells whether the filename is a directory
Description
bool is_dir ( string filename )
Returns TRUE if the filename exists and is a directory. If filename is a relative filename, it will be checked relative to the current working directory.
문제는.. 루트가 정말.. 어지럽겠군요 ㅎㅎㅎ
아하 그래서.. 그렇군요..
xxxx.co.kr 이라면
home.xxxx.co.kr 의 도메인을 만들어서.. 그 하부 디렉토리로 셋팅을 하면 되겠군요..
그러면.. 루트로 심플하고 그래서 그렇구나.. 왜 이런 생각을 안했지 ^^;;
mod_rewrite를 쓰면.. 음... 하여간.. 둘다 알아두는것도..
버츄얼 디렉토리로 알고 있습니다만...후후후^^;;
만약 방을 만든다면 참고는 해보십시요...^^;;
$is_blog_dir=dirname("$g4[path]/$member[mb_id]");
echo"회원디렉토리1: $is_blog_dir<br>";
$is_blog_base=basename("$g4[path]/$member[mb_id]");
echo"회원디렉토리2: $is_blog_base<br>";
$is_blog_index=basename("$g4[path]/{$member[mb_id]}/index.php");
echo"회원인덱스: $is_blog_index<br>";
index.php는 어디서 설정을 해주는지......
조금 더 알려주시면 안되겠는지요?
디렉토리가 50만개가 생성되겠곤요 :)
손보아서 해당 하는 페이지가 없으면
그 페이지 이름에 따라 새로운 곳으로
보내는 것을 보았습니다
대개는 홈으로 보내지만
이런 에러가 뜨는데 어떻게 해야 하나요?