เล่นง่ายๆ กับเช็คว่า ip, e-email หรือ username ที่สมัครสมาชิกเข้ามาเป็น spammer หรือไม่?
ช่วงนี้เจอเรื่องปวดหัวเกี่ยวกับ spam ใน forum เยอะมาก ตอนนี้เลยใช้วิธีง่ายๆ ไปก่อนผ่าน http://www.stopforumspam.com ก็กันได้ในระดับนึง แต่ว่ามี API Limit อาจจะต้องหาวิธีอื่นๆ แก้ไขเฉพาะหน้ากันต่อไป คิดว่าน่าจะพอไหวอยู่
- function is_forumspam_objectsIntoArray($arrObjData, $arrSkipIndices = array()) {
- $arrData = array();
- // if input is object, convert into array
- if (is_object($arrObjData)) {
- $arrObjData = get_object_vars($arrObjData);
- }
- if (is_array($arrObjData)) {
- foreach ($arrObjData as $index => $value) {
- if (is_object($value) || is_array($value)) {
- $value = is_forumspam_objectsIntoArray($value, $arrSkipIndices);
- }
- if (in_array($index, $arrSkipIndices)) {
- continue;
- }
- $arrData[$index] = $value;
- }
- }
- return $arrData;
- }
- /**
- http://www.stopforumspam.com/api?ip=91.186.18.61
- http://www.stopforumspam.com/api?email=g2fsehis5e@mail.ru
- http://www.stopforumspam.com/api?username=MariFoogwoogy
- **/
- function is_forumspam($var) {
- $var['email'] = urlencode($var['email']);
- $q = 'username='.$var['username'].'&email='.$var['email'].'&ip='.$var['ip'];
- $xmlUrl = "http://www.stopforumspam.com/api?".$q."&f=xmldom";
- $xmlStr = file_get_contents($xmlUrl);
- $xmlObj = simplexml_load_string($xmlStr);
- $arrXml = is_forumspam_objectsIntoArray($xmlObj);
- if($arrXml['ip']['appears'] == 1)
- return true;
- if($arrXml['email']['appears'] == 1)
- return true;
- if($arrXml['username']['appears'] == 1)
- return true;
- return false;
- }
อ้างอิงจาก http://www.stopforumspam.com
ThaiThinkPad User Community เปิดแล้วครับ
หลังจากเสียงเรียกร้องมาจากหลาย ๆ ท่านทั้งจากใน Twitter หรือในเว็บ Blognone ตอนนี้ผม Setup ตัวเว็บและจดในชื่อ http://www.thaithinkpad.com โดยเป็นลักษณะของ Forum ครับ เพื่อน ๆ พี่ ๆ น้อง ๆ ทุกท่านเข้าไปใช้งานพูดคุยเกี่ยวกับเรื่อง Lenovo/IBM ThinkPad รวมถึง non-ThinkPad อย่าง 3000 Series หรือ ideaPad ได้ที่นั้นได้เลย ซึ่งผมจะเอาข้อมูลหลาย ๆ ส่วนที่ผมโพสไว้ใน entry ใน Blog ผมไปใส่ด้วย และด้านคำถามต่าง ๆ ก็ไปตอบในนั้นแทนครับ