{"id":14987348,"url":"https://github.com/datamweb/codeigniter-multi-captcha","last_synced_at":"2025-04-12T00:01:59.201Z","repository":{"id":56962816,"uuid":"454951679","full_name":"datamweb/codeigniter-multi-captcha","owner":"datamweb","description":"Multi captcha package for CodeIgniter 4.x. Support Arcaptcha(a free and professional Iranian product),Bibot(a free Iranian product),Recaptcha(an googel product) and hCaptcha.Comes with rate limiting support.","archived":false,"fork":false,"pushed_at":"2023-03-29T22:55:42.000Z","size":22327,"stargazers_count":18,"open_issues_count":0,"forks_count":3,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-04-23T18:34:57.688Z","etag":null,"topics":["arcaptcha","bibot","ci4","codeigniter","codeigniter4","codeigniter4puzzlecaptcha","hcaptcha","puzzlecaptcha","puzzlecaptchaforci4","recaptcha-v2"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/datamweb.png","metadata":{"files":{"readme":"README.fa-IR.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-02T22:08:41.000Z","updated_at":"2024-03-26T03:49:05.000Z","dependencies_parsed_at":"2024-09-11T20:54:56.917Z","dependency_job_id":"c7e529cd-af12-4ffb-9de6-8a829fc513a5","html_url":"https://github.com/datamweb/codeigniter-multi-captcha","commit_stats":{"total_commits":70,"total_committers":2,"mean_commits":35.0,"dds":0.09999999999999998,"last_synced_commit":"85134643a5b55da1308c7e1d29ad1edb67a36bec"},"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datamweb%2Fcodeigniter-multi-captcha","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datamweb%2Fcodeigniter-multi-captcha/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datamweb%2Fcodeigniter-multi-captcha/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datamweb%2Fcodeigniter-multi-captcha/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/datamweb","download_url":"https://codeload.github.com/datamweb/codeigniter-multi-captcha/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248497805,"owners_count":21113984,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["arcaptcha","bibot","ci4","codeigniter","codeigniter4","codeigniter4puzzlecaptcha","hcaptcha","puzzlecaptcha","puzzlecaptchaforci4","recaptcha-v2"],"created_at":"2024-09-24T14:14:29.172Z","updated_at":"2025-04-12T00:01:59.115Z","avatar_url":"https://github.com/datamweb.png","language":"PHP","readme":"[English](./README.md) | فارسی\n# پکیج CI Multi Captcha(CIMC)\nاین پکیج برای فریم ورک کُدایگنایتر نسخه 4 به بالا قابل استفاده است. این پکیج از چهار سرویس کپچا پشتیبانی میکند،شامل سرویس آرکپچا(سرویس حرفه ای کپچا،شامل حدس تصویر،پازل و ... ساخت ایران)، بی بات(سرویس کپچای پازلی ساخت ایران)، ریکپچا(ساخت گوگل) و اچ کپچا. استفاده کننده از این پکیج میتواند مشخص کند که از کدام کپچا استفاده شود و یا مشخص کند که به صورت تصادفی یک کپچا انتخاب شود.این پکیج از محدودیت نرخ فعالیت نیز پشتیبانی می کند.\n\n![Demo CIMC](https://github.com/datamweb/my-repository-files/blob/main/codeigniter-multi-captcha/image/demo_cimc-fa-IR.gif)\n\n# آموزش تصویری نصب و راه اندازی\nما اینجا آموزش های مربوط به راه اندازی، نصب و نحوه استفاده صحیح از این پکیج را قرار میدهیم.برای اطلاع از روش صحیح استفاده از این پکیج لطفا اقدام به تماشایی ویدیو های آپلود شده کنید.\n[ویدیوهای آموزشی در آپارات](https://www.aparat.com/playlist/1509312)\n# روش نصب بر روی فریم ورک کُدایگنایتر\n### روش اول : نصب با کامپوزر\nبهترین روش نصب استفاده از کامپوزر است.با فرض اینکه کامپوزر بر روی سیستم شما نصب است از دستور زیر استفاده کنید::\n\n```console\ncomposer require datamweb/codeigniter-multi-captcha:dev-main\n```\n\n### روش دوم: نصب به صورت دستی\nابتدا آخرین نسخه از پکیج را از [دانلود](https://github.com/datamweb/codeigniter-multi-captcha/releases) دریافت کنید.\nسپس فایل فشرده دانلود شده را در مسیر ```app/ThirdParty``` اکسترکت کنید.\nاکنون به مسیر ```app/Config``` بروید. و مورد زیر را در فایل ```Autoload.php``` اضافه کنید و فایل را ذخیره کنید.\n\n```php\n    public $psr4 = [\n\t//Add this line\n        'Datamweb\\CIMC' \t        =\u003e APPPATH . 'ThirdParty\\CIMultiCaptcha',\n    ];\n```\n\nدر گام بعد به مسیر ```app/Config``` بروید در فایل ```Validation.php``` مقادیر زیر را اضافه کنید.\n\n```php\n    public $ruleSets = [\n        // Add this line\n        '\\Datamweb\\CIMC\\Validation\\RulesCIMC',\n    ];\n    public $templates = [\n        // Add this line\n        'CIMC_ERRORS_LIST'      =\u003e 'Datamweb\\CIMC\\Validation\\Views\\_list.php',\n        // Add this line\n        'CIMC_ERRORS_SINGLE'    =\u003e 'Datamweb\\CIMC\\Validation\\Views\\_single.php',\n    ];  \n```\n\nدر مرحله بعد, به مسیر ```app/Config``` بروید ومقادیر زیر را به فایل ```Filters.php``` اضافه کنید..\nیاداشت:: این ویژگی از نسخه  V1.0.2pre-alpha به بعد پشتیبانی میشود. شما با این ویژگی میتوانید محدودیت نرخ فعالیت را فعال کنید. پارامتر های محدودیت نرخ فعالیت از طریق فایل  ```app/ThirdParty/CIMultiCaptcha/Config/MultiCaptchaCIConfig.php``` قابل ویرایش است..\nRate Limiting می تواند تاثیر عملکرد بات های مخرب بر روی وبسایت و یا برنامه ها را متوقف کند. حملاتی که توسط Rate Limiting متوقف می شوند، شامل حملات Brute force ،DoS ، DDoS و Web scraping هستند. در ضمن Rate Limiting می تواند از فعالیت بیش از حد API ها که لزوما به دلیل فعالیت بات ها نیست، جلوگیری کند..\n[اطلاعات بیشتر در مورد محدودیت نرخ فعالیت](https://arcaptcha.ir/blog/rate-limiting-%DA%86%DB%8C%D8%B3%D8%AA%D8%9F).\n\n```php\n    public $aliases = [\n        //add for mix rate limit and captcha\n        'rate_limit_by_captcha' =\u003e \\Datamweb\\CIMC\\Filters\\RateLimitByCaptcha::class,\n    ];\n    public $filters = [\n        //add for mix rate limit and captcha in all url\n        'rate_limit_by_captcha' =\u003e ['before' =\u003e ['/*']]\n    ];\n    \n```\nپیشنمایشی از محدودیت نرخ فعالیت :: number_of_action : 5 ,captcha_name: hcaptcha\n\n![پیشنمایش محدودیت نرخ فعالیت](https://github.com/datamweb/my-repository-files/blob/main/codeigniter-multi-captcha/image/ratelimiting-fa-IR.gif)\n\nبه صورت پیش فرض محدودیت های نرخ فعالیت در فایل  ```MultiCaptchaCIConfig.php``` به صورت زیر تنظیم شده است.شما میتوانید نسبت به لغو این ویژگی ویا تغییر پرامترها اقدام کنید.\n\n```php\n    public $rateLimit=[\n        'rate_limit_on'                         =\u003e   true,                              //(true | false)\n        'number_of_action'                      =\u003e   25,                                //number of tokens the bucket holds\n        'refill_period'                         =\u003e   HOUR,                              //amount of time it takes the bucket to refill (SECOND |MINUTE|HOUR|DAY|WEEK|MONTH|YEAR|DECADE)\n        'captcha_name'                          =\u003e   'recaptcha',                       //The name of the captcha used on the Rate Limit page. (arcaptcha|recaptcha|hcaptcha|bibot)\n        'rate_limit_view'                       =\u003e   'Datamweb\\CIMC\\Views\\rate_limit',           //The view of used on the Rate Limit page.\n    ];  \n```\n\n# فایل پیکر بندی پکیج\nپیش از استفاده از این پکیج شما نیازمند دریافت دو کلید اختصاصی از هر یک از سرویس دهنده های کپچا هستید.به منظور دریافت کلید ها شما باید نسبت به ثبت نام در هر یک از سرویس دهنده های کپچا و نسبت به دریافت کلید ها اقدام کنید. برای دریافت کلید های سرویس آرکپچا به آدرس [ثبت نام آرکپچا]( https://arcaptcha.ir/sign-up)\n ، برای دریافت کلید های بی بات به آدرس [ثبت نام بی بات](https://bibot.ir/panel/user/signup/)\n ، برای دریافت کلید های ریکپچا به آدرس [ثبت نام ریکپچا](https://www.google.com/recaptcha/admin/create) و برای دریافت کلیدهای اچ کپچا به آدرس [ثبت نام اچ کپچا]( https://hcaptcha.com/?r=e4b628e9c617)\n بروید.مراحل ثبت نام را طی و نسبت به ثبت دامنه وب سایت خود و دریافت کلید ها اقدام کنید.\n\n  سپس به مسیر ```app/ThirdParty/CIMultiCaptcha/Config``` بروید و مقادیر کلید های```site_key``` و ```secret_key``` مربوطه را در فایل ```MultiCaptchaCIConfig.php``` جایگزین کنید.\n  \nدر صورت نیاز به تغییر رنگ،تم،اندازه و ... از طریق همین فایل اقدام کنید.\nدر خصوص زبان کپچا، پکیج به صورت پیشفرض هر زبانی که در فریم ورک تنظیم شده باشد را مد نظر قرار میدهد و کپچا را با همان زبان نمایش میدهد.\nدر صورتی که نیاز به تنظیم سفارشی زبان کپچا دارید از طریق همین فایل مقادیر```lang``` را تنظیم کنید.نکته مهم در این خصوص دو سرویس دهنده ایرانی (آرکپچا و بی بات) تنها از دو زبان فارسی(fa) و انگلیسی (en) پشتیبانی میکنند، این محدودیت مربوط به سرویس دهنده های کپچا میباشند نه پکیج\n\n\n\n# روش استفاده از (CIMC)\nبه طور کلی نحوه استفاده از این پکیج به دو صورت خواهد بود. روش اول انتخاب سرویس توسط برنامه نویس انجام شود،برای مثال برنامه نویس قصد دارد فقط از سرویس ریکپچا استفاده کند بنابراین باید طبق نمودار زیر مسیر آبی رنگ را طی کند.مورد بعدی برنامه نویس در مشخص کردن سرویس نقشی ندارد و سیستم به صورت تصادفی یکی از سرویس ها را انتخاب میکند، برای این کار باید مسیر مشکی رنگ را طی کنید.\n```mermaid\n  flowchart LR;\n      A[CI MULTI CHAPTCHA]--\u003eB{\"انتخاب کپچا توسط برنامه نویس؟\"};\n      classDef c-Rc color:#022e1f,fill:#1a73e8;\n      classDef c-Hc color:#022e1f,fill:#22c5c7;\n      classDef c-Ac color:#022e1f,fill:#867ee2;\n      classDef c-Bc color:#022e1f,fill:#ccc;\n      classDef black color:#fff,fill:#000;\n      B--بله--\u003eC[\"چطور استفاده کنم؟\"]:::black;\n      \n      C--\u003eU[\"ریکپچا را انتخاب میکنم\"]:::c-Rc;\n      U--Views--\u003eQ[\"echo CIMC_JS('recaptcha');\\n echo CIMC_ERROR(); \\n echo CIMC_HTML(['captcha_name'=\u003e'recaptcha']);\"]:::c-Rc;\n      U--Controller--\u003eW[\"CIMC_FIELD('recaptcha) =\u003e CIMC_RULE(),\"]:::c-Rc;\n     \n      C--\u003eH[\"اچ کپچا را انتخاب میکنم\"]:::c-Hc;\n      H--Views--\u003eJ[\"echo CIMC_JS('hcaptcha');\\n echo CIMC_ERROR(); \\n echo CIMC_HTML(['captcha_name'=\u003e'hcaptcha']);\"]:::c-Hc;\n      H--Controller--\u003eG[\"CIMC_FIELD('hcaptcha) =\u003e CIMC_RULE(),\"]:::c-Hc;  \n\n      C--\u003eI[آرکپچا را انتخاب میکنم]:::c-Ac;\n      I--Views--\u003eO[\"echo CIMC_JS('arcaptcha');\\n echo CIMC_ERROR(); \\n echo CIMC_HTML(['captcha_name'=\u003e'arcaptcha']);\"]:::c-Ac;\n      I--Controller--\u003eP[\"CIMC_FIELD('arcaptcha) =\u003e CIMC_RULE(),\"]:::c-Ac;\n      \n      C--\u003eX[\"بی بات را انتخاب میکنم\"]:::c-Bc;\n      X--Views--\u003eV[\"echo CIMC_JS('bibot');\\n echo CIMC_ERROR(); \\n echo CIMC_HTML(['captcha_name'=\u003e'bibot']);\"]:::c-Bc;\n      X--Controller--\u003eN[\"CIMC_FIELD('bibot) =\u003e CIMC_RULE(),\"]:::c-Bc;\n      \n      B--خیر--\u003eD[\"چطور استفاده کنم؟\"]:::black;\n      D---Views:::black--\u003eF[\"echo CIMC_JS('randomcaptcha');\\n echo CIMC_ERROR();\\n echo CIMC_HTML(['captcha_name'=\u003e'randomcaptcha']);\"]:::black; \n      D---Controller:::black--\u003eT[\"CIMC_FIELD('archaptcha,recaptcha,bibot') =\u003e CIMC_RULE(),\"]:::black; \n```\n# برای بهتر شدن\nاین پکیج به صورت منبع باز ارائه شده است.در صورتی که نیاز به گفتگو ،مطرح کردن ایده و ... دارید از طریق [گفتگو](https://github.com/datamweb/CodeIgniter-Multi-Captcha/discussions) اقدام کنید.همچنین در صورت وجود باگ، لطفا از طریق [گزارش باگ](https://github.com/datamweb/CodeIgniter-Multi-Captcha/issues) اقدام به ثبت موضوع کنید ما قطعا پاسخگوی شما خواهیم بود.\nدر صورتی که برنامه نویس هستید لطفا برای بهتر شدن نسبت به مشارکت در کد نویسی از طریق [توسعه پکیج](https://github.com/datamweb/CodeIgniter-Multi-Captcha/pulls) اقدام کنید. ما برای بهتر شدن به تک تک شما نیازمندیم.\n\n# حمایت مالی\nنقطه آغازپروژه های منبع باز و دلیل ایجاد انها معمولا نیاز،علاقه و عشق توسعه دهنده به پروژه است. معمولا انتظار درآمدی خاص از آنها وجود ندارد. حقیقت این است که با توجه به پروژه مورد نظر ممکن است ساعت ها،روزها و شاید هم سالها زمان سپری شود تا سر آخر پروژه مورد نظر به مطلوبیت عام برسد و یا شکست بخورد، آنچه در اینجا مهم است زمان و تخصصی است که توسط توسعه دهندگان آنها بدون چشم داشت مالی صرف شده است . در کشور عزیزمان ایران این موضوع باب نشده است که نسبت به پرداخت هزینه استفاده از نرم افزارها،اپلیکیشنها و ... اقدام کنیم،با این حال در صورتی که تمایل به حمایت مالی داشته باشید میتوانید از لینک زیر نسبت به پرداخت وجه به صورت آنلاین اقدام کنید.پیشاپیش از شما ممنونم.\n[حمایت مالی از طریق پی](https://me.pay.ir/datamweb)\n\n[حمایت مالی از طریق زرین پال](https://zarinp.al/datamweb)\n\n\n\n\n\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatamweb%2Fcodeigniter-multi-captcha","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatamweb%2Fcodeigniter-multi-captcha","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatamweb%2Fcodeigniter-multi-captcha/lists"}