2013-07-28 2 views
0

그래서 사이트를 만들고 특정 단어에 대한 필터를 테스트하려고하지만 어떤 언어를 사용하고 어떤 함수를 사용하는지 결정하려고합니다. 예를 들어, 그래서() 함수를 내가 조금 연구를 한 적이과 PHP에서 나는 strpos을 사용할 수 있습니다 : -다른 문자열을 포함하는 문자열을 찾는 PHP 또는 JQuery 함수

if (strpos($checkstring, 'geordie') !== false) { 
    $checkstring = 'invalid name'; 
} 

내가 달성하기 위해 사용될 수있는 괜찮은 JQuery와 기능이 있는지 여부에 관해서는 확실 해요 똑같은 것. 기본적으로 내 친구들이 내 이름이나 닉네임을 사용하지 못하도록 차단하고 싶기 때문에 소문자와 대문자를 포함하여 '지오디'를 비롯한 모든 유사 콘텐츠를 포함 할뿐만 아니라 '지오 르디'또는 그 영향력을 사용하여 과거를 얻고 싶어하지만 원하는 것도 있습니다. 내 완벽한 별명 인 'geordie dave'또는 'geordie ****'또는 'geordie dave is ****'인 변형을 중지하십시오.

나는 이것이 아마도 약간 복잡한 것임을 알고 있지만 아마도 이름 배열을 사용하는 방법이 있어야만합니까?

사용할 함수에 대한 도움이 크면 누구나 나에게 도움이 될 수있는 코드 예제를 줄 수 있다면 도움이 될 것입니다.

+0

감사합니다. 나는 양쪽에서 그것을 할 것이다. 충고에 대한 건배 :) – GeordieDave1980

답변

2

당신은 아마 자바 스크립트와 PHP (클라이언트 측과 서버 측)에서해야합니다. strpos의 javascript eqivalent는 indexOf입니다. javscript 만 사용하면 누군가가 포스트 패킷을 위조 할 수 있으며 서버에서 여전히 허용합니다. 한 곳만 체크인하면 서버 쪽이되지만 사용자 친화적 인 경우 두 곳 모두 선호됩니다.

1

JavaScript에서는 을 사용하여 정확한 문자열을 일치 시키거나 더 복잡한 일치를 위해 RegExp#test(String)을 사용할 수 있습니다.

if (str.indexOf("geordie") !== -1) { 
    // `str` contains "geordie" *exactly* (doesn't catch "Geordie" or similar) 
} 

if (/geordie/i.test(str)) { 
    // `str` contains "geordie", case-insensitive 
} 

그리고 나는거야 두번째 what Alfie said : 클라이언트 요청이 스푸핑 될 수 있기 때문에 그냥 클라이언트에서이 작업을 수행 할 수 없습니다. 클라이언트 측 유효성 검사는 순전히 멋진 사용자 환경을 만들기위한 것입니다. 서버 측 유효성 검사가 항상 필요합니다.

1

$ ststring 변수에 PHP strtolower 함수를 사용해야한다고 생각합니다.