안녕하세요
케이보드 Author 란을 이메일로 수정하고
게시판은 회원가입없이 누구나 작성할수 있습니다.
<? $deny_emails = array(
"차단 이메일 주소 1",
"차단 이메일 주소 2",
"차단 이메일 주소 3",
.
.
.
);
?>
위와 같이 작성된 deny_email.php 파일이 있는데
리스트에 있는 이메일 주소로 글을 작성하려할때
작성불가능하게 하는 방법이 있는지 알고싶습니다
감사합니다 :)
필터를 사용하는 방법은 이미 글이 저장된 후 실행되기 때문에
자바스크립트로 폼 입력값을 체크 하셔야 하겠습니다.
아래처럼 출력하면 PHP 변수를 자바스크립트에서도 사용할 수 있습니다.
<script>var deny_emails = <?php echo json_encode($deny_emails)?></script>
스킨의 editor.php 쪽에 추가해주시면 될 듯합니다.
그리고 스킨의 script.js 파일에 폼 값을 체크하는 자바스크립트 코드를 작성해주시면 되겠습니다.
답변감사합니다
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("게시물 작성이 금지된 메일주소가 본문에 있습니다.");
}
}
위와 비슷한 것인가요?
감사합니다
테스트 해보지는 못했지만 간략하게 답변 남겨드립니다.
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>