[web] xe 뎃글 인증코드 달기(작업중)
예전 제로보드 쓸때, 뎃글에 자꾸 이상한글이 달려서..
인증코드를 만들었다.
XE로 가려니.. 이쪽에도 필요해서 좀 보고서 우선 급한대로 추가했다.
예전게시판은 글쓰기 권한은 나밖에 없어서.. 뎃글에만 달았는데..
수정해서 글쓰기에도 넣고, 글쓰기 제한 풀어야 겠다.
수정파일 : modules/board/skin/xe_board/view.document.html
수정위치 : 167줄 쯤.. 다음과 같이 추가 (사실 이건 내가 필요해서 넣은것.. 블로그 형태에서 뎃글쓰기가 지저분해서 열고 닫게 하려다 보니.. index가 필요해서..)
===============
{@$commentIdx++;}
===============
168줄 쯤 다음과 같이 수정 (이것도.. 뎃글쓰기를 열고 닫게 하려다 보니 index가 필요해서..)
===============
<div id=”commentEditor_{$commentIdx}” class=”boardWrite commentEditor” style=”display:none”>
===============
195줄 쯤.. 다음과 같이 수정,추가 (뎃글쓰기 열고 닫게 하려다 보니 index 추가, 인증코드 추가)
===============
<div id=”commentButton_{$commentIdx}” class=”commentButton tRight” style=”display:none”> <– 수정
{$lang->onetime_password} <img src=”/xe/authimg.php” align=”absmiddle” /> <input type=”text” name=”onetime_password” class=”inputTypeText” /> <– 인증코드 추가
<span class=”button {$btn_class}”><input type=”submit” value=”{$lang->cmd_comment_registration}” /></span>
</div>
<div id=”commentOpenButton_{$commentIdx}” class=”commentButton tRight”> <– 이하 추가(뎃글 열기 버튼)
<span class=”button {$btn_class}”><input type=”button” value=”{$lang->cmd_comment_registration}” onClick=”openCommentEditor(‘{$commentIdx}’);” /></span>
</div>
===============
수정파일 : modules/board/board.controller.php
수정위치 : 130줄 쯤.. 다음과 같이 수정 및 추가
===============
$obj = Context::gets(‘document_srl’,’comment_srl’,’parent_srl’,’content’,’password’,’nick_name’,’nick_name’,’member_srl’,’email_address’,’homepage’,’is_secret’,’notify_message’,’onetime_password’); // <– onetime_password 추가
$obj->module_srl = $this->module_srl;
if( isset($obj->onetime_password) && ($obj->onetime_password != $_SESSION[“ssOTP”]) ) return new Object(-1, ‘msg_invalid_onetime_password’); // <– 인증코드 판단하는 줄 추가
===============
수정파일 : modules/board/lang/ko.lang.php
수정위치 : 마지막에 추가
===============
// 인증코드 관련
$lang->onetime_password = ‘인증코드’;
$lang->msg_invalid_onetime_password = ‘인증코드가 올바르지 않습니다’;
===============
수정파일 : modules/board/tpl/filter/insert_comment.xml
수정위치 : <form></form> 과 <parameter></parameter> 사이에 추가
===============
<form>
…
<node target=”onetime_password” required=”true” minlength=”1″ maxlength=”4″ />
</form>
<parameter>
…
<param name=”onetime_password” target=”onetime_password” />
</parameter>
===============
신규파일 : modules/board/skins/xe_board/js/comment.js <– 뎃글쓰기 열고 닫기 위한 javascript
===============
function openCommentEditor(idx)
{
var ce = document.all[“commentEditor_”+idx];
var cb = document.all[“commentButton_”+idx];
var ob = document.all[“commentOpenButton_”+idx];
if(ce&&cb&&ob)
{
ce.style.display = “”;
cb.style.display = “”;
ob.style.display = “none”;
}
}
===============
신규파일 : modules/board/skins/xe_board/images/authcode.php <– 인증코드이미지 생성 파일
===============
<?
define(‘__ZBXE__’, true);
require_once(‘../../../../../config/config.inc.php’);
$oContext = &Context::getInstance();
$oContext->init();
header(“Content-type: image/png”);
$string_a = array(“a”,”b”,”c”,”d”,”e”,”f”,”g”,”h”,”j”,”k”,
“m”,”n”,”p”,”r”,”s”,”t”,”u”,”v”,”w”,”x”,”y”,”z”,
“2”,”3″,”4″,”5″,”6″,”7″,”8″,”9″);
$keys = array_rand($string_a, 4);
foreach($keys as $n=>$v){
$string .= $string_a[$v];
}
$_SESSION[“ssOTP”]=$string;
$im = imagecreatetruecolor(80, 19);
$orange = imagecolorallocate($im, 220, 210, 60);
$px = (imagesx($im) – 7.5 * strlen($string)) / 2;
imagestring($im, 3, $px, 3, $string, $orange);
imagepng($im);
imagedestroy($im);
?>
===============
우선 급한대로 올렸는데..
다 한건지 모르겠다..
나중에 한번 확인해야지..