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...
TheRaskol

Members

Online status

70 posts

#700   2015-01-19 15:30 GMT        
böyle bir hata alıyorum kaan
Kod:
e]Parse error: syntax error, unexpected T_STRING in /home/uodevelo/public_html/system/core/forums/forums.newtopic.inc.php on line 2
e]
Kod:
e]$antispam .= "<input type="text" class="text" name="key" value="" size="8" maxlength="8" />"
e]


Kaan

Administrators

Online status

678 posts

#701   2015-01-19 21:10 GMT        
Böyle dene bende bir sorun yoktu test ettimde ekledim.
Kod:
]$antispam .= '<input type="text" class="text" name="key" value="" size="8" maxlength="8" />'
]


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...
TheRaskol

Members

Online status

70 posts

#702   2015-01-20 16:12 GMT        
Teşekkür ederim kaan bu şekilde oldu.

Peki konulara cevap yazarken nasıl uygulayabiliriz?


Kaan

Administrators

Online status

678 posts

#703   2015-01-20 21:21 GMT        
Konulara cevap yazarken gerek yok seditio güvenliğini açman yeterli.


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...
G-Defender

Moderators

Online status

38 posts

#753   2015-02-14 00:12 GMT        
Abi burada bir sorun var, 3 defa üst üste hata yazıyor,

Mesajınız çok kısa, yada boş bıraktınız.
Güvenlik Kodu Yanlış Lütfen Kontrol edin.
Mesajınız çok kısa, yada boş bıraktınız.
Güvenlik Kodu Yanlış Lütfen Kontrol edin.
Mesajınız çok kısa, yada boş bıraktınız.
Güvenlik Kodu Yanlış Lütfen Kontrol edin.

Neden böyle yapıyor?

son mesaj 7 dakika önce

Abi şimdi deniyim dedim güvenlik kodunu yanlış yazıncada konu açıyor

son mesaj 8 dakika önce

Kod:
abi bunu kaldırınca mesaj kısmı düzeldi,

[code]<!-- BEGIN: FORUMS_NEWTOPIC_ERROR -->
<div class="error">
{FORUMS_NEWTOPIC_ERROR_BODY}
t;/div>
<!-- END: FORUMS_NEWTOPIC_ERROR -->[/code]

Zaten bu varmış newtopic tpl'da ama şöyle bir sorun var güvenlik kodu yanlış yazsanda açıyor konuyu?

[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]


Böyle ekledim herhangi bir sorun var mı?


Ultima Online Sphere ve RunUO Bilgi Platformu
Site : http://www.ultima-tr.com/anasayfa/

Bu mesaj G-Defender tarafından 2015-02-14 00:27 GMT, 4095 Gün önce düzenlendi.
Kaan

Administrators

Online status

678 posts

#755   2015-02-14 10:46 GMT        
Süs olsun diye yapmadık bu özelliği güvenlik kodu yanlışken konu açmaz sen yanlış yapmışsındır.


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...
G-Defender

Moderators

Online status

38 posts

#756   2015-02-14 18:21 GMT        
$error_string .= (mb_strlen($key)< 5) ? "Güvenlik Kodu Yanlış Kontrol edin.<br />" : ''

Kaan abi eminmisin burada 5 den aşşasa yanliş diyo kontrol edermisin?

son mesaj 2 saat 1 dakika

Güvenlik kodu yanlış kısmını düzelttim kaan abi unuttuğun yerleri ekliyim,
Kod:
[/b]

[code]$error_string .= (mb_strlen($key)< 5) ? "Güvenlik Kodu Yanlış Lütfen Kontrol edin.<br />&quo
: '';[/code]

Bunu bulup aşağıdaki ile değişin,

[code] $error_string .= (mb_strlen($key)< 5) || ($key != $fak) ? "Güvenlik Kodu Yanlış Lütfen Kontrol edin.<br />" : '';[/code]

Daha sonra aşağıdaki kısmı böyle yapın,

[code]for ($i = 1; $i <= 5; $i++){$antispam_key [] = rand(1,9);}
$antispam_fak = array_reverse($antispam_key);
$antispam_keys = implode ('', $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 class="text" type="hidden" name="fak" value="'.$antispam_keys.'" /></div>';[/code]

Bu kadar güvenlik kodu yanlış yazdığımız zaman artık konu açılmaz hata verir.


Ultima Online Sphere ve RunUO Bilgi Platformu
Site : http://www.ultima-tr.com/anasayfa/

Bu mesaj G-Defender tarafından 2015-02-14 20:23 GMT, 4094 Gün önce düzenlendi.