sms 기능 추가후 관리자가 게시판에 올라온 글에 답변을 달면 관리자 권한이 풀리는 이유가 뭘까요? ㅠ ㅠ 정보
sms 기능 추가후 관리자가 게시판에 올라온 글에 답변을 달면 관리자 권한이 풀리는 이유가 뭘까요? ㅠ ㅠ본문
카페24의 sms 호스팅 이용해서
게시판에 새글이 올라오면 관리자의 휴대폰으로 새글알림을 하게 만들었는데요.
write_update.skin.php를 추가했더니 잘 되네요.
문제는 새글 등록되었다고 문자는 잘 오는데
그 글에 답변 버튼을 클릭해서 답변을 달고 나면 관리자 기능이 풀려버리면서
다른 비밀글을 읽을수가 없어요 ㅠ ㅠ
억지로 관리자 페이지로 들어가서 다시 해당 게시판으로 가지 않는한 방법이 없어요.
그래서 sms 기능을 추가한 write_update.skin.php 파일을 삭제해 버리면 답변 글 쓴 후에도 제대로 관리자 기능이 되면서 다른 비밀글을 관리자가 읽을 수 있네요.
어떤 상황인지 이해하시라고 화면을 캡쳐해서 이미지로 쭉 만들어어요.
문자가 관리자에게 제대로 가지만 답변글 달고 난 이후에는 관리자 권한이 풀려버리게 만드는 write_update.skin.php 의 소스는 아래와 같아요.
//-------------------------------------------------------------------------
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// 자신만의 코드를 넣어주세요.
if($w != 'u') { // 글작성시 문자보내고 수정시에는 문자 안보냄
$sms_url = "http://sslsms.cafe24.com/sms_sender.php"; // 전송요청 URL
// $sms_url = "https://sslsms.cafe24.com/sms_sender.php"; // HTTPS 전송요청 URL
$sms['user_id'] = base64_encode(""); //SMS 아이디.
$sms['secure'] = base64_encode("") ;//인증키
$sms['msg'] = base64_encode("바른이 상담게시판에 새글이 올라왔습니다."); // 메세지
$sms['rphone'] = base64_encode("관리자휴대폰 번호"); // 받는사람 전화번호, 여러명일때 ,구분
$sms['sphone1'] = base64_encode("000"); // 보내는사람 전화 앞번호
$sms['sphone2'] = base64_encode("000"); // 보내는사람 전화 중간번호
$sms['sphone3'] = base64_encode("000"); // 보내는사람 전화 뒷번호
$sms['rdate'] = base64_encode(""); // 예약날짜
$sms['rtime'] = base64_encode(""); // 예약시간
$sms['mode'] = base64_encode("1"); // base64 사용시 반드시 모드값을 1로 주셔야 합니다.
$sms['testflag'] = base64_encode(""); // 테스트일경우:Y, 아닐경우:NULL
$sms['destination'] = base64_encode("");
$returnurl = "http://dentalwhite.cafe24.com/bbs/board.php?bo_table=$bo_table"; // 메세지 전송후 이동할 페이지
$sms['repeatFlag'] = base64_encode(""); // 반복설정
$sms['repeatNum'] = base64_encode(""); // 반복횟수
$sms['repeatTime'] = base64_encode(""); // 반복시간
$nointeractive = "1"; // 성공시 대화상자(alert)를 사용 (0:사용, 1:사용안함)
$host_info = explode("/", $sms_url);
$host = $host_info[2];
$path = $host_info[3]."/".$host_info[4];
srand((double)microtime()*1000000);
$boundary = "---------------------".substr(md5(rand(0,32000)),0,10);
//print_r($sms);
// 헤더 생성
$header = "POST /".$path ." HTTP/1.0\r\n";
$header .= "Host: ".$host."\r\n";
$header .= "Content-type: multipart/form-data, boundary=".$boundary."\r\n";
// 본문 생성
foreach($sms AS $index => $value){
$data .="--$boundary\r\n";
$data .= "Content-Disposition: form-data; name=\"".$index."\"\r\n";
$data .= "\r\n".$value."\r\n";
$data .="--$boundary\r\n";
}
$header .= "Content-length: " . strlen($data) . "\r\n\r\n";
$fp = fsockopen($host, 80);
if ($fp) {
fputs($fp, $header.$data);
$rsp = '';
while(!feof($fp)) {
$rsp .= fgets($fp,8192);
}
fclose($fp);
$msg = explode("\r\n\r\n",trim($rsp));
$rMsg = explode(",", $msg[1]);
$Result= $rMsg[0]; //발송결과
$Count= $rMsg[1]; //잔여건수
//발송결과 알림
if($Result=="success") {
$alert = "성공";
$alert .= " 잔여건수는 ".$Count."건 입니다.";
}
else if($Result=="reserved") {
$alert = "성공적으로 예약되었습니다.";
$alert .= " 잔여건수는 ".$Count."건 입니다.";
}
else if($Result=="3205") {
$alert = "잘못된 번호형식입니다.";
}
else if($Result=="0044") {
$alert = "스팸문자는발송되지 않습니다.";
}
else {
$alert = "[Error]".$Result;
}
}
else {
$alert = "Connection Failed";
}
if($nointeractive=="1" && ($Result!="success" && $Result!="Test Success!" && $Result!="reserved") ) {
echo "<script>alert('".$alert ."')</script>";
}
else if($nointeractive!="1") {
echo "<script>alert('".$alert ."')</script>";
}
echo "<script>location.href='".$returnurl."';</script>";
}
?>
//-------------------------------------------------------------------------
어떤 부분때문에 답변을 달고 나면 관리자의 권한이 풀려버리는지 고수님들의 의견이 절실하네요 ㅠ ㅠ
게시판에 새글이 올라오면 관리자의 휴대폰으로 새글알림을 하게 만들었는데요.
write_update.skin.php를 추가했더니 잘 되네요.
문제는 새글 등록되었다고 문자는 잘 오는데
그 글에 답변 버튼을 클릭해서 답변을 달고 나면 관리자 기능이 풀려버리면서
다른 비밀글을 읽을수가 없어요 ㅠ ㅠ
억지로 관리자 페이지로 들어가서 다시 해당 게시판으로 가지 않는한 방법이 없어요.
그래서 sms 기능을 추가한 write_update.skin.php 파일을 삭제해 버리면 답변 글 쓴 후에도 제대로 관리자 기능이 되면서 다른 비밀글을 관리자가 읽을 수 있네요.
어떤 상황인지 이해하시라고 화면을 캡쳐해서 이미지로 쭉 만들어어요.
문자가 관리자에게 제대로 가지만 답변글 달고 난 이후에는 관리자 권한이 풀려버리게 만드는 write_update.skin.php 의 소스는 아래와 같아요.
//-------------------------------------------------------------------------
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// 자신만의 코드를 넣어주세요.
if($w != 'u') { // 글작성시 문자보내고 수정시에는 문자 안보냄
$sms_url = "http://sslsms.cafe24.com/sms_sender.php"; // 전송요청 URL
// $sms_url = "https://sslsms.cafe24.com/sms_sender.php"; // HTTPS 전송요청 URL
$sms['user_id'] = base64_encode(""); //SMS 아이디.
$sms['secure'] = base64_encode("") ;//인증키
$sms['msg'] = base64_encode("바른이 상담게시판에 새글이 올라왔습니다."); // 메세지
$sms['rphone'] = base64_encode("관리자휴대폰 번호"); // 받는사람 전화번호, 여러명일때 ,구분
$sms['sphone1'] = base64_encode("000"); // 보내는사람 전화 앞번호
$sms['sphone2'] = base64_encode("000"); // 보내는사람 전화 중간번호
$sms['sphone3'] = base64_encode("000"); // 보내는사람 전화 뒷번호
$sms['rdate'] = base64_encode(""); // 예약날짜
$sms['rtime'] = base64_encode(""); // 예약시간
$sms['mode'] = base64_encode("1"); // base64 사용시 반드시 모드값을 1로 주셔야 합니다.
$sms['testflag'] = base64_encode(""); // 테스트일경우:Y, 아닐경우:NULL
$sms['destination'] = base64_encode("");
$returnurl = "http://dentalwhite.cafe24.com/bbs/board.php?bo_table=$bo_table"; // 메세지 전송후 이동할 페이지
$sms['repeatFlag'] = base64_encode(""); // 반복설정
$sms['repeatNum'] = base64_encode(""); // 반복횟수
$sms['repeatTime'] = base64_encode(""); // 반복시간
$nointeractive = "1"; // 성공시 대화상자(alert)를 사용 (0:사용, 1:사용안함)
$host_info = explode("/", $sms_url);
$host = $host_info[2];
$path = $host_info[3]."/".$host_info[4];
srand((double)microtime()*1000000);
$boundary = "---------------------".substr(md5(rand(0,32000)),0,10);
//print_r($sms);
// 헤더 생성
$header = "POST /".$path ." HTTP/1.0\r\n";
$header .= "Host: ".$host."\r\n";
$header .= "Content-type: multipart/form-data, boundary=".$boundary."\r\n";
// 본문 생성
foreach($sms AS $index => $value){
$data .="--$boundary\r\n";
$data .= "Content-Disposition: form-data; name=\"".$index."\"\r\n";
$data .= "\r\n".$value."\r\n";
$data .="--$boundary\r\n";
}
$header .= "Content-length: " . strlen($data) . "\r\n\r\n";
$fp = fsockopen($host, 80);
if ($fp) {
fputs($fp, $header.$data);
$rsp = '';
while(!feof($fp)) {
$rsp .= fgets($fp,8192);
}
fclose($fp);
$msg = explode("\r\n\r\n",trim($rsp));
$rMsg = explode(",", $msg[1]);
$Result= $rMsg[0]; //발송결과
$Count= $rMsg[1]; //잔여건수
//발송결과 알림
if($Result=="success") {
$alert = "성공";
$alert .= " 잔여건수는 ".$Count."건 입니다.";
}
else if($Result=="reserved") {
$alert = "성공적으로 예약되었습니다.";
$alert .= " 잔여건수는 ".$Count."건 입니다.";
}
else if($Result=="3205") {
$alert = "잘못된 번호형식입니다.";
}
else if($Result=="0044") {
$alert = "스팸문자는발송되지 않습니다.";
}
else {
$alert = "[Error]".$Result;
}
}
else {
$alert = "Connection Failed";
}
if($nointeractive=="1" && ($Result!="success" && $Result!="Test Success!" && $Result!="reserved") ) {
echo "<script>alert('".$alert ."')</script>";
}
else if($nointeractive!="1") {
echo "<script>alert('".$alert ."')</script>";
}
echo "<script>location.href='".$returnurl."';</script>";
}
?>
//-------------------------------------------------------------------------
어떤 부분때문에 답변을 달고 나면 관리자의 권한이 풀려버리는지 고수님들의 의견이 절실하네요 ㅠ ㅠ
댓글 전체
$returnurl 때문입니다
접속 주소와 다르면 세션을 공유하지 못하기때문 입니다
http://dentalwhite.cafe24.com <-- 이부분을 사이트 접속주소로 바꿔보세요
접속 주소와 다르면 세션을 공유하지 못하기때문 입니다
http://dentalwhite.cafe24.com <-- 이부분을 사이트 접속주소로 바꿔보세요
균이님! 너무 감사해요 ㅠ ㅠ
오랫동안 해결 못한걸 균이님 덕분에 하루만에 해결했네요.
너~~~~~무 감사합니다!!!
오랫동안 해결 못한걸 균이님 덕분에 하루만에 해결했네요.
너~~~~~무 감사합니다!!!