안녕하세요
케이보드 Author 란을 이메일로 수정하고
게시판은 회원가입없이 누구나 작성할수 있습니다.
<? $deny_emails = array(
"차단 이메일 주소 1",
"차단 이메일 주소 2",
"차단 이메일 주소 3",
.
.
.
);
?>
위와 같이 작성된 deny_email.php 파일이 있는데
리스트에 있는 이메일 주소로 글을 작성하려할때
작성불가능하게 하는 방법이 있는지 알고싶습니다
감사합니다 :)
테스트 해보지는 못했지만 간략하게 답변 남겨드립니다.
FTP로 접속해서 스킨의 script.js 파일을 수정해주셔야 합니다.
아래 코드의 굵게 표시된 부분을 추가해주시겠어요?
function kboard_editor_execute(form){
jQuery.fn.exists = function(){
return this.length>0;
};
if(!jQuery('input[name=title]', form).val()){
alert(kboard_localize.please_enter_a_title);
jQuery('input[name=title]', form).focus();
return false;
}
else if(jQuery('input[name=member_display]', form).eq(1).exists() && !jQuery('input[name=member_display]', form).eq(1).val()){
alert(kboard_localize.please_enter_a_author);
jQuery('[name=member_display]', form).eq(1).focus();
return false;
}
else if(jQuery('input[name=member_display]', form).eq(1).exists() && deny_emails.indexOf(jQuery('input[name=member_display]', form).eq(1).val()) >= 0){
alert('입력하신 이메일은 사용할 수 없습니다.');
jQuery('[name=member_display]', form).eq(1).focus();
return false;
}
else if(jQuery('input[name=password]', form).exists() && !jQuery('input[name=password]', form).val()){
alert(kboard_localize.please_enter_a_password);
jQuery('input[name=password]', form).focus();
return false;
}
else if(jQuery('input[name=captcha]', form).exists() && !jQuery('input[name=captcha]', form).val()){
alert(kboard_localize.please_enter_the_CAPTCHA_code);
jQuery('input[name=captcha]', form).focus();
return false;
}
return true;
}
그리고 editor.php 파일에서 아래처럼 $deny_emails PHP 변수도 미리 출력해주셔야 합니다.
<script>var deny_emails = <?php echo json_encode($deny_emails)?></script>
<script type="text/javascript" src="<?php echo $skin_path?>/script.js"></script>
답변감사합니다
script.js 폼값 체크하는 코드에 대해 좀더 알려주실수 있을까요
너무 초보라 검색으로 찾아서 시도해도 작동이 제대로 되지 않습니다 ㅜㅜ
이전에 사용하던 제로보드 게시판에서 아래의 코드를 찾았는데
//메일란과 본문에 특정 이메일 필터링
if($id!=yes)
{ include "deny_emails.php";
foreach($deny_emails as $mail_temp) {
if(eregi($mail_temp,$email)) Error("게시물 작성이 금지된 메일주소입니다.");
else if(eregi($mail_temp,$memo)) Error("게시물 작성이 금지된 메일주소가 본문에 있습니다.");
}
}
위와 비슷한 것인가요?
감사합니다
필터를 사용하는 방법은 이미 글이 저장된 후 실행되기 때문에
자바스크립트로 폼 입력값을 체크 하셔야 하겠습니다.
아래처럼 출력하면 PHP 변수를 자바스크립트에서도 사용할 수 있습니다.
<script>var deny_emails = <?php echo json_encode($deny_emails)?></script>
스킨의 editor.php 쪽에 추가해주시면 될 듯합니다.
그리고 스킨의 script.js 파일에 폼 값을 체크하는 자바스크립트 코드를 작성해주시면 되겠습니다.