v2.5.2
Giriş yap

Filtre Sistemi (Veritabanli)

tia
674 defa görüntülendi ve 1 kişi tarafından değerlendirildi

Filtre Sistemi

Hepinize merhaba arkadaşlar. Benim istediğim veritabanımda bulunan kelimeleri cekip kontrol ettirerek yazdırmak bunu şu fonksiyon ile başardım ;

<?php
    function clear($veri)
{
    global $dbh;


    $filter = $dbh->prepare('SELECT * FROM cms_filter');
    $filter->execute();
    $getword = $filter->fetchAll(PDO::FETCH_COLUMN, 1);
    

    $changefilter = $dbh->prepare('SELECT * FROM cms_filter');
    $changefilter->execute();
    $getchange = $changefilter->fetchAll(PDO::FETCH_COLUMN, 2);

    $degisecek = $getword;
    $yeniler = $getchange;
    return str_replace($degisecek,$yeniler,$veri);
}
?>

Bu yapmis oldugum fonksiyon ile gelip o yazilan yaziyi ya da texti degistirebiliyordum. Ama benim istedigim eger veritabanimda varsa o kelime POST edilen cümleyi hatalı şekilde döndürtmek. Nasil yapariz ?

tia
1396 gün önce

Tesekkurler @makifgokce hocam ise yaradi ancak bir sorun oluştu OOP olarak veri ekledigim icin foreach kullaninca diger alertleri alamiyorum.

Ornegin ;

<?php 
public static function CreateComment()
	{
		global $dbh, $lang;

		if (isset($_POST['addcomment'])) {

			$k = $dbh->prepare("SELECT * FROM cms_filter");
			$k->execute();

			foreach ($k as $row) {

				$content = $_POST['comment'];

				$result = $dbh->prepare('SELECT * FROM comment_cms ORDER BY id DESC LIMIT 1');
				$result->execute();
				$res = $result->fetch(PDO::FETCH_ASSOC);

				if (stristr($content, $row['word']) == true) {
					Html::error($lang["false"] . $lang["notAvailable"]);
				} else {
				if ($res['authorid'] !== User::userData('id')) {

					Html::errorSucces($lang["true"] . $lang["succesComment"]);

					$comment = $dbh->prepare('INSERT INTO comment_cms SET
					content = :content,
					authorid = :auid,
					newsid = :newsid,
					verify = :verify,
					date = :date
			');
					$comment->execute(array(
						":content" => $content,
						":auid" => User::userData('id'),
						":newsid" => $_GET['newsid'],
						":verify" => 1,
						":date" => time()
					));
				}
				 else {
					Html::error($lang["false"] . $lang["spamming"]);
				}
			}
		}
			Yonlendir('haber?newsid=' . $_GET['newsid'], 4);
		}
	}
?>

Bu benim OOP de yazmis oldugum bir sinif yorum eklenmesi icin. Dediklerinizi yaptim yorum ekleniyor ancak == true'yse o istedigim hatayi verdiriyorum burasi da gayet guzel ancak eger son yorumu o atmışsa yani yaptığım sisteme göre son yorumu atmışsa o kişi spam olarak algılandı mesajıda geliyor 2 si birden geliyor bunun onune nasil gecerim? Yani eger == true'yse sadece o mesaj gosterilmesini yapabilir miyim ?
// Ek olarak POST edilen veri yasakli kelime icerse veya direkt olarak yasakli kelime olsa bile alert gelmesine ramen paylasiliyor.