Author
Message
Kaan

Administrators

Online status

678 posts

#699   2015-01-18 12:28 GMT        
Seditio 121 Yeni Konu Güvenlik Kodu Uygulaması

Seditio 121 için yeni konu açma bölümünde Spam konuları engellemek için hazırlamış olduğum güvenlik kodu uygulaması.

Öncelikle system/core/forums/forums.newtopic.inc.php yi açıyorum alttaki adımları uyguluyoruz.
Kod:
ttakini bul.
[code]$vote = sed_import('vote','G
9;INT');[/code]
Altına Ekle
[code]$key = sed_import('key','P','TXT',;
$fak = sed_import('fak','P','TXT',;[/code]
Alttakini bul
[code]$newprvtopic = (!$fs_allowprvtopics) ? 0 : $newprvtopic;[/code]
Altına Ekle
[code]$sqlk = sed_sql_query("SELECT COUNT(*) FROM $db_forum_topics WHERE ft_title='".sed_sql_prep($newtopictitle)."'");
$res1 = sed_sql_result($sqlk,0,"COUNT(*)");
$error_string .= ($res1>0) ? "Aynı Konu zaten var Konu Açmadan önce arama Yapınız.<br />" : '';
$error_string .= (mb_strlen($newtopictitle)<5) ? "Başlık çok kısa yada boş bıraktınız.<br />" : '';
$error_string .= (mb_strlen($newmsg)<10) ? "Mesajınız çok kısa yada boş bıraktınız.<br />" : '';
$error_string .= (mb_strlen($key)< 5) ? "Güvenlik Kodu Yanlış Lütfen Kontrol edin.<br />" : '';
if (empty($error_string) && !empty($newmsg) && !empty($newtopictitle) && !empty($key))
{[/code]
Alttakini bul
[code]sed_shield_update(45, "New topic");
header("Location: forums.php?m=posts&q=$q&n=last#bottom");
exit;
}
}[/code]
Altına Ekle
[code]}[/code]
Alttakini bul
[code]$mskin = sed_skinfile(array('forums', 'newtopic', $fs_category, $s));
$t = new XTemplate($mskin);[/code]
Altına Ekle
[code]for ($i = 1; $i <= 5; $i++)
{ $antispam_key [] = rand(1,9); }
$antispam_fak = array_reverse($antispam_key);
$antispam_key = implode ('.', $antispam_key);
$antispam_fak = implode ('.', $antispam_fak);
$antispam .= "&nbsp; <strong>".$antispam_key."</strong> &nbsp;";
$antispam .= "<input type="text" class="text" name="key" value="" size="8" maxlength="8" />";
$antispam .= "<input type="hidden" name="fak" value="".$antispam_fak."" /></div>";
if (!empty($error_string))
{
$t->assign("FORUMS_NEWTOPIC_ERROR_BODY",$error_string);
$t->parse("MAIN.FORUMS_NEWTOPIC_ERROR");
}
[/code]
Alttakini bul
[code]
"FORUMS_NEWTOPIC_PAGETITLE" => $toptitle ,[/code]
Altına Ekle
[code]"FORUMS_NEWTOPIC_ANTISPAM" => $antispam,[/code]

Skins/skinname/forums.newtopic.tpl yi aç alttakini bul
[code]<form action="{FORUMS_NEWTOPIC_SEND}" method="post" name="newtopic">[/code]
Üstüne Ekle
[code]<!-- BEGIN: FORUMS_NEWTOPIC_ERROR -->
<div class="error">
{FORUMS_NEWTOPIC_ERROR_BODY}
</div>
<!-- END: FORUMS_NEWTOPIC_ERROR -->[/code]
Alttakini bul
[code]<tr>
<td style="text-align:center;">
<input type="submit" value="{PHP.skinlang.forumsnewtopic.Submit}">
</td>
</tr>[/code]
Üstüne Ekle
[code]<tr>
<td>Güvenlik Kodu: {FORUMS_NEWTOPIC_ANTISPAM}</td>
</tr>[/code]
İşlem Tamamdır. iyi günlerde kullanın.

Not: Bu uygulama Sadece Seditio 121 için hazırlanmıştır Seditio diğer versiyonlarında farklılık gösterebilir.
Seditio 171'de zaten güvenlik önlemi mevcut böyle bir uygulamaya gerek yoktur.


Bunlara baktınızmı?
Forumlar için önceki ve sonraki konu yapma
Seditio 175+ Forum Hide Link
Seditio Veritabanı Yönetimi
Kişiliğim, hayatım hakkında konuşabilirsiniz. Fikir yürüte bilirsiniz. Beni öyle böyle sanabilirsiniz. Ama emin olamazsınız. Sizin hakkımdaki yorumlarınız, sanmalarınız benim gerçek de ne olduğumu değiştirmez. Baktığım yeri söyleye bilirsiniz ama ne gördüğümü ASLA...