디렉토리 생성에 관하여...
링크에 있는 팁으로 회원아이디로 2차도메인용 디렉토리를 생성하려고 합니다. (사실 제가 올린 팁;;)
근데 먼저 홈페이지에서는 분명히 이게 되었는데 이번에는 도무지 안되는군요.
우선 소스부터 보여드리겠습니다.
<?
include_once("./_common.php");
include_once("./_head.php");
include_once("./_common.php");
include_once("./_head.php");
$sub_dir = "$member[mb_id]";
$tmp = @dir("../$sub_dir");
$tmp = @dir("../$sub_dir");
if ($tmp) {
echo "<meta http-equiv=\"refresh\" content=\"0; url=/_center/?mbid=$member[mb_id]\">";
echo "<meta http-equiv=\"refresh\" content=\"0; url=/_center/?mbid=$member[mb_id]\">";
} else {
@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=/_center/?mbid=$member[mb_id]\">") or Error("실패<br><br>완성","");
@fclose($file);
$file=@fopen("../$member[mb_id]/index.php","w") or Error("실패<br><br>완성","");
@fwrite($file,"<meta http-equiv=\"refresh\" content=\"0; url=/_center/?mbid=$member[mb_id]\">") or Error("실패<br><br>완성","");
@fclose($file);
echo "<center>축하드립니다.<br><b>{$member[mb_name]}</b>님의 홈페이지가 만들어졌습니다.<br>";
echo "도메인은 <b style=font-size:15px;color:#888888;>www.홈페이지.com/<span style=color:#333333;>{$member[mb_id]}</span></b>입니다.<br>";
echo "5초 후에 홈페이지도 이동합니다.<p>";
echo "<a href={$g4[path]}/?mbid={$member[mb_id]}>바로 가기</a>";
echo "<meta http-equiv=\"refresh\" content=\"5; url={$g4[path]}/?mbid={$member[mb_id]}\">";
}
echo "도메인은 <b style=font-size:15px;color:#888888;>www.홈페이지.com/<span style=color:#333333;>{$member[mb_id]}</span></b>입니다.<br>";
echo "5초 후에 홈페이지도 이동합니다.<p>";
echo "<a href={$g4[path]}/?mbid={$member[mb_id]}>바로 가기</a>";
echo "<meta http-equiv=\"refresh\" content=\"5; url={$g4[path]}/?mbid={$member[mb_id]}\">";
}
include_once("./_tail.php");
?>
?>
이걸 dir_mk.php로 저장해서 그누보드 디렉토리에 올렸습니다. 그리고 회원이 로그인 상태에서 이 문서를 부르면 자신의 아이디와 같은 디렉토리가 서버에 생깁니다. 즉 www.홈페이지.com/Myid 이런 식이죠.
그런데 그 문서를 부르니까 자꾸 아래와 같은 에러가 뜨는군요.
Fatal error: Call to undefined function: error() in /home1/bglaw8/public_html/_center/dir_mk.php on line 14
여기서 14번째 줄은 아래더군요.
$file=@fopen("../$member[mb_id]/index.php","w") or Error("실패<br><br>완성","");
똑같은 소스로 이전 홈페이지에서는 전혀 이상이 없었는데 도저히 원인을 알 수가 없군요ㅜㅜ
오늘까지가 기한인데 원하신다면 계정까지 공개해드릴 용의가 있으니 맘씨좋은 고수님의 선처를 바라겠습니다.
(흐... 밤새부렀다...)
|
댓글을 작성하시려면 로그인이 필요합니다.
로그인
댓글 15개
상당히 기대되는(?)분의 댓글을 받으셨네요.....에구구......
대단하신 분은 틀림없는것 같네요.....
혹 @mkdir("../$member[mb_id]",0777); 문장을
생성문과 퍼미션문으로 나누어 보시지요....
근데 조언하신 분야가 잘 모르는 분야라 ..^^;;
죄송합니다~ ㅜㅜ
답글달아주신 분들에게는 미리 감사드립니다~~^^
(어쩌면 오전내내 자고 올지도 모르겠;;)
혹시,
서버를 옮기셨거나, php버전업을 하셨다면,,
환경설정에서 allow_url_fopen on/off 와 관련이 있을지도 모르겠습니다.
그럼 그걸 확인해보려면 phpmyadmin인가 하는데서 해야 하는 건지요?
phpinfo();
?>
달랑 위 내용으로 계정에 ***.php 파일로 업로드후 호출해보세요.
올라온 페이지에서 allow_url_fopen 으로 검색해보시면 설정을 확인할실수 있습니다.
allow_url_fopen : Off(Local Value) Off(Master Value)
현재 이렇군요. 이러면 디렉토리 생성을 못하는 건가요?
이걸 가능하게 풀려면 어떻게 해야 될까요?
@fopen 에서 @를 제거하고, 절대경로로 입력후 에러 메시지를 확인해보세요.
$file=fopen("절대경로/$member[mb_id]/index.php","w") or Error("실패<br><br>완성","");
Warning: fopen(http://hompy.com/aaaa/index.php): failed to open stream: no suitable wrapper could be found in /home1/bglaw8/public_html/_center/dir_mk.php on line 14
Fatal error: Call to undefined function: error() in /home1/bglaw8/public_html/_center/dir_mk.php on line 14
이런 메세지가 뜨는군요;;
근데 절대경로가 http://hompy.com/... 이렇게 시작하는것이 맞죠?
아무튼,
fopen() 을 막아놓았다는 것입니다.
서버 환경이 allow_url_fopen : Off 이고,
php버전(4.3.4이상)이 그것을 제대로 체크한다고 보시면 됩니다.
소켓 - fsockopen() 으로 구현하는 방법을 찾아보셔야 할듯 합니다.
팁테크쪽에서 fsockopen, 질답란에서 fopen으로 검색해보시면 도움이되실듯 합니다.
/home1/bglaw8/public_html/.. 이걸로도 해보니까 역시 안되더군요. 근데 다른 사이트도 똑같은 호스팅을 쓰고 있거든요. 거참..
아무튼 신경써주셔서 감사드립니다. 일단 이 문제는 일단락지어야..ㅜㅜ
http://www.sir.co.kr/bbs/tb.php/pl_php/182
코멘트에 유창화님 링크를 추가로 참조하시면 도움이 되실겁니다.