2014-03-19 2 views
0

10 만 개 이상의 스팸 계정이 만들어진 WordPress 사이트에서 작업하고 있습니다. 다른 유형도 있지만 그 중 많은 유형이 숫자로 시작하는 사용자 이름을 가진 것 같습니다.첫 번째 인덱스의 값이 숫자인지 확인

에 사용자 이름이 숫자로 시작하는 모든 사용자에게 MYSQL 쿼리가 있는지 묻고 싶습니다.

이 질문에 대한 확장은 해당 사용자가 users 테이블에서만 삭제 될 필요가 있는지 또는 사용자 - 메타 또는 다른 테이블에서 삭제되어야하는지 여부입니다.

도움을 주시면 감사하겠습니다.

SELECT * FROM wp_users WHERE user_login LIKE 'put_number_here%' OR user_nicename LIKE LIKE 'put_number_here%' OR display_name LIKE 'put_number_here%' 

이 수를 시작으로 put_number_here를 교체하고 계속 :

+0

보안 강화를 위해 펜스 플러그인을 사용해야합니다. – amaster

+0

감사합니다. si captcha를 사용했지만 여전히 문제가 지속되는 것 같습니다 :). (또한 buddypress 등록을 사용하여) –

+0

내 WP 사이트 중 하나에 비슷한 문제가 있었는데, 실제로 단순히 등록 페이지에 htaccess 암호를 넣으므로 특별히 허용하지 않는 한 사용자를 등록하지 않았 으면합니다. 아무도 등록하지 않더라도 정말로 신경 쓰지 않는다면 그냥 생각해보십시오. – amaster

답변

0

그래, 쿼리는 사용자가 선택 아래에, 당신은 단지 그것을 시간의 몇 가지를 실행하는 데 필요한 거의 모든 것을 MySQL의 쿼리 (물론)가 .

그런 다음, 해당 사용자가 합법적 아니라는 것을 보장 한 후, 당신은 거의 같은 쿼리를 삭제할 수 있습니다 :

DELETE FROM wp_users WHERE user_login LIKE 'put_number_here%' OR user_nicename LIKE LIKE 'put_number_here%' OR display_name LIKE 'put_number_here%' 

편집 : 여기 는 검사 사용자 정의 함수 인 경우에서 주어진 값 필드는 숫자입니다.

CREATE FUNCTION ISNUMERIC(myVal VARCHAR(1024)) 
RETURNS TINYINT(1) DETERMINISTIC 
RETURN myVal REGEXP '^(-|\\+)?([0-9]+\\.[0-9]*|[0-9]*\\.[0-9]+|[0-9]+)$'; 
+0

감사합니다. 첫 번째 매개 변수가 숫자인지 확인하기위한 일반적인 쿼리 (예 : mysql 함수)가 있습니다. –

+0

아니, 자신 만의 함수 (소위 UDF)를 만들어야합니다. 내 대답을 편집하십시오. – bodi0

+0

확인. 고맙습니다. 답으로 표시됩니다. 또한 새로운 사용자에 대해 어떤 wp 테이블이 정보를 보유하고 있는지 알 수 있습니다. 그들은 단지 users & user_meta 테이블입니까? –

관련 문제