작성자(이름)에 특수문자를 못쓰게 하려합니다

작성자(이름)에 특수문자를 못쓰게 하려합니다

QA

작성자(이름)에 특수문자를 못쓰게 하려합니다

본문

안녕하세요?

 

작성자(이름)에 특수문자 ? 등을 못쓰게 하려합니다.

어디를 수정해야 하는 지요?

특수문자를 넣으니까 검색이 되지 않는 문제가 있습니다.

 

$str_content = cut_str(str_replace('?', '', strip_tags($list[$i]['wr_content'])),46); 


이렇게 하면 ?가 삭제가 된다고 하는데...


아니면 다음의 것을 응용해서 어디에다 넣어야 하는지요?

write.skin.php에 넣어봤더니 문제가 생기네요...ㅜㅜ

if (preg_match('/[ \{\}\[\]\/?.,;:|\)*~`!^\-_+┼<>@\#$%&\'\"\\\(\=]/gi', $변수)){

alert("특수문자는 입력하실 수 없습니다.​");

}


문법이 너무 약헤서...좋은 방법 좀 알려 주십시오~

감사합니다. 

좋은 밤 되십시오~^^)

이 질문에 댓글 쓰기 :

답변 5

저거는 bbs/write_update.php 안에서 처리가능

 

if ($w == '' || $w == 'r') {

    if ($member['mb_id']) {
        $mb_id = $member['mb_id'];
        $wr_name = addslashes(clean_xss_tags($board['bo_use_name'] ? $member['mb_name'] : $member['mb_nick']));
        $wr_password = $member['mb_password'];
        $wr_email = addslashes($member['mb_email']);
        $wr_homepage = addslashes(clean_xss_tags($member['mb_homepage']));
    } else {
        $mb_id = '';
        // 비회원의 경우 이름이 누락되는 경우가 있음
        $wr_name = clean_xss_tags(trim($_POST['wr_name']));
        if (!$wr_name)
            alert('이름은 필히 입력하셔야 합니다.');
        $wr_password = get_encrypt_string($wr_password);
        $wr_email = get_email_address(trim($_POST['wr_email']));
        $wr_homepage = clean_xss_tags($wr_homepage);
    }

 

 

이소스 다음이나 전에 넣어야 이상적이라 생각되네요 

작성자명에 영문자,한글,숫자,언더스코어(_) 외 특수문자,공백 등을 허용하지 않을 경우

아래 처럼 간단히 처리할 수도 있겠습니다 ㅎ

 


<?php
$a = "abc한글";
 
if(preg_match("/[^a-zA-Z0-9ㄱ-ㅎ가-힣_]/",$a))
	echo "There are special characters";
else echo "OK!";
?>

저 나 네이비칼라님이 써주신소스는 참고하라는것이지 저걸 넣어서 작동된다는 보장은 없써요

말하자면 질문하시는분이 원하시는 것은 답변자가 어떤소스를 딱주면 그걸 어느곳에 넣으면 

작동되는걸 원하시는거 같은데요 

그거는 질문자의 환경을 알아야 만들수잇는거구요

이런일을 하려면 최소한 ftp 정보 를 알아야 만들어드릴수있는 내용입니다

지금 여기에 질문을 하신거는  다변자가 어떤 힌트를 주면 그걸 가지구 적용하는거자나요

 

제가 위치를 알려드려고 네이비칼라님이 소스를 주셔지만 그걸 가지구 변형을 해야하는거죠

에를 들면 

1  홈페이지에 게시판이 한개가 아니자나요 제가 말하는 위치에 소스를 집어넣으면 

되지만 여기서 문제점이 발생핮 모든 게시판에 적용이된다는 문제점 

2 그리고 네이비칼라님이 주신소스는 적확한 소스지만 질무하신분이 저소스를 가져다가 가공을 하셔야되요

 

if(preg_match("/[^a-zA-Z0-9ㄱ-ㅎ가-힣_]/",$name)){

      alert("특수문자는 입력하실 수 없습니다.​");

} 

이런식으로

 

감사합니다.
'열린이글'님의 말씀처럼 가공을 하여서 넣고 있습니다.
그런데 문법이 약해서 자꾸 에러가 납니다.
모든 게시판은 아니고 질문답변 게시판에만 사용하려 합니다.
좋은 하루 되십시오~^^)

bbs/write_update.php 안에서 처리가능 안에 

안에서 

echo $bo_table;

exit;

이러게 하면 게시판 table 정보가 나오는데요

101 정도에 아래와 같은 소스가있는데요

@include_once($board_skin_path.'/write_update.head.skin.php');

이거 및에 이러게 넣으면 될거같아요

if($table=='테이블명'){

if(preg_match("/[^a-zA-Z0-9ㄱ-ㅎ가-힣_]/",$name)){

      alert("특수문자는 입력하실 수 없습니다.​");

} 

}

이런식으로 하면 될듯하네요

 

해당 스킨 write.skin.php 에 다음과 같이 해서 글자수 제한 위로 놓으니까 작동을 합니다. 

 

//특수문자 사용금지 

$(document).ready(function(){ 

$("#wr_name").on("keyup", function(){//작성자 이면 wr_name으로 내용이면 wr_content

reg = /[~!@\#$%^&*\()\-=+_']/gi; 

var temp=$(this).val(); 

if(reg.test(temp)){ 

alert("특수문자는 입력할 수 없습니다."); 

$(this).val(temp.replace(re,"")); 

}); 

}); 

 

<?php if($write_min || $write_max) { ?> 

 // 글자수 제한 

답변을 작성하시기 전에 로그인 해주세요.
전체 10
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT