PDA

View Full Version : فیلتر مجموعه ای از کلمات



dddd10
جمعه 13 شهریور 1394, 22:23 عصر
شب همگی به خوبی...
کمی در مورد ساختار این موضوعی که مطرح کردم لطفا توضیح بدین. با تابع مربوطه آشنایی دارم اما میخوام یک سری کلمه درون جدول قرار بدم که اگر شخصی هنگام وارد کردن کامنت از اون کلمات استفاده کرد فیلتر بشن. متشکر

mr.javad15
جمعه 13 شهریور 1394, 22:45 عصر
میتونی یه ارایه از کلمات مورد نظرت رو درست کنی
و بعد با استفاده از تابع str_replace (http://php.net/manual/en/function.str-replace.php)اون ها به **** تبدیل کنی

dddd10
جمعه 13 شهریور 1394, 23:42 عصر
آقا جواد با مثال توضیح میدی؟
جایی خوندم str_ireplace بهتر هست چون str_replate به کوچکی و بزرگی توجه میکنه که در مورد اون یکی صدق نمیکنه

dddd10
شنبه 14 شهریور 1394, 13:37 عصر
سلام
منتظر کمک هاتون هستم
لطفا بگین چیکار کنم. میخوام یک جدول مخصوص کلمات غیرمجاز باشه

morteza_naderloo
شنبه 14 شهریور 1394, 14:00 عصر
با سلام
دوست عزیز میتونی از این استفاده کنی


function badChars($string,$replaceWith){
$bad_char=array('test0','test1','test2','test3');
return str_replace($bad_char,$replaceWith,$string);
}

echo badChars('iran saraye man ast test0 va shayad test1','***');


رشته و چیزی که میخوای جایگزین کنیو به تابع میفرستی
کلماتی هم که میخوای فیلتر بشه داخل ارایه bad_char بزار

dddd10
شنبه 14 شهریور 1394, 18:09 عصر
اقا مصطفی میخوام کلمات را داخل دیتابیس وارد کنم و از اونجا فراخوانی بشن( دستی نزارم داخل آرایه ) چجوری از دیتابیس وارد آرایه کنم ؟

parsboy
یک شنبه 15 شهریور 1394, 11:53 صبح
اقا مصطفی میخوام کلمات را داخل دیتابیس وارد کنم و از اونجا فراخوانی بشن( دستی نزارم داخل آرایه ) چجوری از دیتابیس وارد آرایه کنم ؟
باسلام
شما به دو روش میتونید از دیتا ها یا ورودی هاتون جلوگیری کنید یا اینکه همان طور که دوستمون گفت تمامی عبارات را درون یک black list به شکل یک آرایه بزارید یا اینکه از جداول خودتون در دیتابیس اطلاعات رو بخونید سپس اون ها رو validate کنید . اگر تعداد عبارات کم است از همون black list در format آرایه استفاده کنید

dddd10
سه شنبه 17 شهریور 1394, 14:45 عصر
سلام
لطفا روش دوم را اموزش بدین. مشکل با روش دومه

parsboy
چهارشنبه 18 شهریور 1394, 12:04 عصر
سلام
لطفا روش دوم را اموزش بدین. مشکل با روش دومه
شما یک جدول به اسم black list ایجاد کنید که شامل دو فیلد id,name باشد مقادیری که میخواین فیلتر بشه رو بریزید داخل این جدول و موقع ثبت کردن یا نمایش اطلاعاتتون اون هارو بررسی کنید که اگر شامل اون black list بود نمایش داده نشوند.

dddd10
پنج شنبه 19 شهریور 1394, 23:25 عصر
لطفا کدشو بنویسید، تقریبا فهمیدم چطوری هست اما موقع انجام دادن نمیتونم

<?phpif(isset($_POST['comment_hid'])){$post_id = intval($_GET['id']);$name = $_POST['name'];//$date = date();$email = $_POST['email'];$subject = $_POST['subject'];$comment = $_POST['comment'];
if($_SESSION['user'] == ''){ if(){ $insert_comment = mysql_query("INSERT INTO `comment` VALUES('','".$post_id."','".mktime()."','".$name."','".$email."','".$subject."','".$comment."')"); header("Location: content.php?id=".$_GET['id']); } }else{ $insert_comment = mysql_query("INSERT INTO `comment` VALUES('','".$post_id."','".mktime()."','".$_SESSION['user']."','".$email."','".$subject."','".$comment."')"); header("Location: content.php?id=".$_GET['id']); }}
?>

dddd10
دوشنبه 23 شهریور 1394, 20:31 عصر
آپدیت....
:لبخندساده:

dddd10
پنج شنبه 26 شهریور 1394, 09:46 صبح
هنوز به جواب نرسیدم

Unique
جمعه 27 شهریور 1394, 22:10 عصر
دوست عزیز شما کار عجیبی نمیخوای انجام بدی. شما باید قبل از Insert کردن کامنت بیای و بررسی کنی توی متنش یکسری کلمه از پیش مشخص شده هست یا نه که با همون replace کردن یا اخطار به کاربر میشه جلوش را گرفت این کلمات را بهتره بریزین توی آرایه و بررسی کنید. حالا اگه نمیخواین کلمات را توی کد برنامه بزنید یک جدول blacklist درست کنید که هر ردیف شامل یک کلمه بشه و وقتی میخواین چک کنین یک select بزنین روی جدول و همه رکورد ها را بریزین توی یک ارایه و بقیه مسئله هم که حله.