![]() |
|
|
#1 |
|
Administrator
Join Date: Dec 2002
Location: Internet
Posts: 7,788
|
مرجع اصلی این مطلب اینجاست:
http://james.seng.cc/archives/000145.html و خلاصه کلیه حقوق این اسکریپت مال نویسنده اش است. نمونه اون هم میتونید توی وبلاگ خودش و در قسمت Comment ها ببینید: http://james.seng.cc/ برای وارد کردن نظر جدید، لازمه یک کد گرافیکی رو تایپ کنید. که خب هر روباتی قادر به انجام این کار نیست و روبات خیلی باهوشی لازم داره. فایل ها رو از اینجا دریافت کنید. البته بهتره لینک مرجع اصلی رو چک کنید شاید نسخه جدیدی ارائه شده باشه. این راهنما رو برای نسخه 0.1c دارم مینویسم. قبلا از فایلهایی که ویرایش میکنید برای اطمینان BackUp بگیرید. Permission کلیه فایلهایی که Upload میکنید باید 755 شود. نحوه نصب اون برای MT 2.x و MT 3.x تقریبا متفاوت است که هر کدوم جداگونه توضیح داده خواهد شد. نصب برای MT 2.x 1. لازم است که GD.pm روی سرور نصب باشد. این یک Extension Library برای Perl است که بر روی سرورهای پرشین تولز نصب است. 2. یک دایرکتوری به عنوان cache برای این پلاگین باید ساخته بشه تا کدهایی که نمایش می دهد به طور موقتی Save کند. بهتره که این دایرکتوری بیرون از public_html باشد تا دسترسی روی وب به آن ممکن نباشد. Permission این دایرکتوری باید 755 یا 775 یا 777 باشد تا قابلیت Write داشته باشد. بعد از ساختن این دایرکتوری (به هر نامی که میخواهید) لازم است فایل SCode.pm را که همراه مجموعه دانلود کرده این باز کرده و نام این دایرکتوری را در ابتدای فایل اصلاح کنید: Code:
my $tmpdir = "/tmp/"; Code:
my $tmpdir = "/home/username/scode/"; Code:
my $scode_length = 6; فایل را پس از اتمام تغییرات ذخیره کنید 3. فایل SCode.pm را در شاخه /lib/MT آپلود کنید. 4. فایل mt-scode.cgi را کنار بقیه فایلهای مووبل تایپ در شاخه اصلی آن آپلود کنید. (کنار فایل mt.cgi) 5. فایل scode.pl را در شاخه plugins آپلود کنید. اگر این شاخه را ندارید در کنار mt.cgi (شاخه اصلی مووبل تایپ) بسازید 6.فایل Comments.pm را که در lib/MT/App قرار دارد باز کنید و تغییرات زیر را وارد کنید. این سه خط را پیدا کنید: Code:
if (!$q->param('text')) {
return $app->handle_error($app->translate("Comment text is required."));
}
Code:
# SecurityCode hack start
#
require MT::SCode;
my $code = $q->param('code');
my $scode = $q->param('scode');
my $sscode = MT::SCode::scode_get($code);
if ($scode ne $sscode) {
return $app->handle_error($app->translate(
"Wrong or missing Security Code."));
}
MT::SCode::scode_delete($code);
MT::SCode::scode_create($code);
#
# Security hack ends
Code:
my $comment = MT::Comment->new; $comment->ip($app->remote_ip); Individual Entry Template Comment Listing Template Comment Preview Template Comment Error Template در تمپلیتهای فوق، درست قبل از خط زیر: Code:
<input type="submit" Code:
<!-- Security Code Check --> <input type="hidden" id="code" name="code" value="<$MTSecurityCode$>" /> <img border="0" src="<$MTCGIPath$><$MTSecurityImage$>?code=<$MTSecurityCode$>"><br /> <input tabindex=3 id="scode" name="scode" /><br /><br /> <!-- end of Security Code Check --> 8. اگر از MTBlackList استفاده میکنید، یا باید آن را غیر فعال کنید یا اینکه کدهای مرحله 6 را به فایل MTBlPost.pm که در شاخه plugins قرار دارد اضافه کنید. 9. تمام شد. یه تستی بکنید ببینید نتیجه چی شده. نصب برای MT3.x ابتدا 9 مرحله فوق را انجام دهید. 10. فایل lib/MT/Template/Context.pm را باز کنید و دنبال عبارت بگردید: Code:
sub: _hdlr_comment_fields Code:
sub _hdlr_comment_fields {
my ($ctx, $args, $cond) = @_;
Code:
# Security code validation require MT::SCode; # <-- new addition srand int (time/10)+$$; my $securitycode = int rand(MT::SCode::scode_tmp()); $securitycode++; MT::SCode::scode_create($securitycode); # End Security code hack Code:
<MT_TRANS phrase="Remember me?"> <input type="radio" id="remember" name="bakecookie" /> Code:
<!-- Security Code Check --> <input type="hidden" id="code" name="code" value="$securitycode" /> <label for="scode">Security Code:</label><br /> <img border="0" alt="Please enter the security code you see here" src="$path/mt-scode.cgi?code=$securitycode" /><br /> <input tabindex="3" id="scode" name="scode" /><br /><br /> <!-- end of Security Code Check --> Code:
<MT_TRANS phrase="Remember me?"> <input type="radio" id="remember" name="bakecookie" /> Code:
<!-- Security Code Check --> <input type="hidden" id="code" name="code" value="$securitycode" /> <label for="scode">Security Code:</label><br /> <img border="0" alt="Please enter the security code you see here" src="$path/mt-scode.cgi?code=$securitycode" /><br /> <input tabindex="3" id="scode" name="scode" /><br /><br /> <!-- end of Security Code Check --> تنظیمات بیشتر: برای تغییر رنگ کدهای تولید شده فایل mt-scode.cgi را باز کرده و متغیرهای Code:
$c_background, $c_border, $c_line , $c_code اگر روزانه افراد زیادی برای شما نظر می دهند تعداد کدهای تولید شده را در فایل SCode.pm عوض کنید: Code:
my $scode_maxtmp = 50; موفق باشید.
__________________
سعی می کنم جواب بدم: احسان at پرشین تولز dot کام
میزبانی| ثبت دومین | سرور اختصاصی | طراحی وب | هاستینگ |
|
|
|
![]() |
| امکانات بيشتر | |
| نحوه نمايش | |
|
|