استفاده از recaptcha بدون پکیج

زمان قرارگیری : 25 خرداد 1396
زمان این قسمت : 35:11
برای دسترسی به این دوره نیاز است بصورت نقدی این دوره را خریداری کنید و این دوره بخشی از دوره های اعضای ویژه نمیباشد

تعداد شرکت کنندگان 1181 نفر
قیمت دوره 125000 تومان
وضعیت دوره تکمیل شده
زمان کل دوره 30:19:42
تعداد قسمت‌ها 51
نوع دسترسی نقدی

captcha ها معمولا در نقاطی مثل فرمها استفده میشوند تا بتوانید فرق ربات بودن یا انسان بودن شخص ارسال کننده فرم را بفهمید ، در این بین با پیشرفت بیشتر در حوزه تکنولوژی captcha ها هم بهبود پیدا کرده اند در این بین گوگل یک سیستم به نام reCaptcha را ایجاد کرد تا کاربران بتوانند با دردسر کمتری از captcha ها استفاده کنند . در این جلسه روش استفاده از reCAPTCHA در لاراول را بصورت کامل و بدونه هیچ پیکج اضافی به شما آموزش خواهم داد . 

رایگان 04:34
برای دسترسی به این دوره نیاز است بصورت نقدی این دوره را خریداری کنید و این دوره بخشی از دوره های اعضای ویژه نمیباشد

تعداد شرکت کنندگان 1181 نفر
قیمت دوره 125000 تومان
وضعیت دوره تکمیل شده
زمان کل دوره 30:19:42
تعداد قسمت‌ها 51
نوع دسترسی نقدی

آنلاین
user-avatar
مدرس دوره حسام موسوی

اول داستان، طراح گرافیک بودم و ۲ سالی به عنوان طراح مشغول بودم، بعد به برنامه‌نویسی علاقمند شدم و الان بیشتر از ۱۰ ساله که عاشق کدزنی و چالش‌های پروژه‌های مختلفم. به تدریس علاقه خاصی دارم و دوست دارم دانشی که در این راه بدست آوردم را در اختیار دیگران هم قرار بدم. 

سوالات و گفتگو‌ها

سوالات و گفتگو‌ها

اگر سوال و مشکلی یا حتی بحثی در یکی از حوزه‌های برنامه‌نویسی دارید این بخش به شما کمک ویژه‌ای خواهد کرد

دورهای پیشنهادی

مشاهده همه دوره ها
آموزش پروژه محور لاراول

آموزش پروژه محور لاراول

آموزش لاراول آن هم با پروژه در یک آموزش پروژه محور لاراول یک شانس برای یادگیری بهتر و کاربردی‌تر لاراول محسوب می‌شود که در این دوره قصد اینکار را داری...

ساخت Restful Api با Laravel و Lumen

ساخت Restful Api با Laravel و Lumen

به زبان ساده، APIها (مخفف Application Programming Interface) رابط‌هایی نرم‌افزاری هستند که ارتباط بین نرم‌افزارهای مختلف را پیاده‌سازی می‌کنند. در دنی...

آموزش پکیج نویسی لاراول

آموزش پکیج نویسی لاراول

اگر با لاراول و پکیج ها آشنا باشید مطمئنن میدانید که پکیج ها بخش مهمی در لاراول هستند و به برنامه نویسان و توسعه دهندگان لاراول کمک میکنند تا بتوانن ب...

دسترسی رایگان برای اعضای ویژه
آشنایی با امکانات جدید لاراول 5.2

آشنایی با امکانات جدید لاراول 5.2

لاراول 5.2 بزودی به طور رسمی ارائه میشه اما نسخه develop اون چند وقتی میشه که در اختیار کاربران قرار گرفته در این دوره آموزشی سعی میکنیم که امکانات و...

دیدگاه‌ها و پرسش‌ها

برای ارسال نظر لازم است ابتدا وارد سایت شوید
آفلاین
user-avatar
saeid
2 ماه پیش

سلام استاد خسته نباشید
چرا من dd میگیرم از response برای من خالی بر میگردونه

// ۲۰۲۰۰۶۱۵۰۹۵۹۴۰
// http://localhost:۸۰۰۰/getData
"{}"

و این هم کدهام

 Validator::extend('recaptcha',function ($attribute , $value , $parameters , $validator) {
$client = new Client();

        $response = $client->request('POST', 'https://www.google.com/recaptcha/api/siteverify', [
            'form_params' => [

                'secret' => 'کد',
                'response' => $value,
                'remoteip' => request()->ip()
            ]

        ]);
       $response= json_encode($response->getBody());
       dd($response);
    });`
`Route::post('/getData',function (){
$validator = Validator::make(request()->all(),[
'message' => 'required',
'g-recaptcha-response' => 'required|recaptcha',
]);

if($validator->fails()){
return 'fails';
}
return request('message');
}); <form action="/getData" method="post">
<textarea id="message" name="message" rows="۳" role="۵"></textarea>
@CSRF
<div class="g-recaptcha" data-sitekey="۶LcsHaUZAAAAACCxLkFICk_Nn-E۸۴Ym۴۷jgTfH۶D"></div>
<button type="submit" class="btn btn-primary">send</button>
</form>

ممنون میشم راهنماییم کنین

آنلاین
user-avatar
حسام موسوی
2 ماه پیش

سلام
یعنی هیچی در خروجی نمایش نمیده ؟
نمیشه یه اروری حداقل باس نمایش بده که اقا اوکی نشد

آفلاین
user-avatar
saeid
2 ماه پیش

سلام .شما کهdd گرفتین از response یه سری اطلاعات براتون برگشت داد ولی من فقط این رو نمایش میده
`// ۲۰۲۰۰۶۱۵۰۹۵۹۴۰
// http://localhost:۸۰۰۰/getData

"{}"`
وهیچ اروری ilنمایش نمیده

آنلاین
user-avatar
حسام موسوی
2 ماه پیش

شما اشتباها دارید از json_encode استفاده میکنید در صورتی که در دوره اگر ببینید ما از json_decode استفاده میکنم

آفلاین
user-avatar
saeid
2 ماه پیش

ممنون استاد ببخشید

سلام
من از اولین فیلم آموزشی این دور تا الان فقط فیلم هارو دیدم
خواستم محبت کنید بفرمایید برای اینکه فولدر پروژه که تو فایل های دانلود شده قسمت 18 هست و چجوری میتونم اجرا کنم ؟

من npm و نصب کردم و با زدن این دستور تو CMD مشکلی نداره، و همچنین composer و php هم همینطور.

دستوراتی مثل :
composer install
composer update
npm i
npm run watch
php artisan serve
این ها تو ذهنم هست اما نمیدونم چجوری و با چه ترتیبی اجرا کنم.
گاهی اوقات مشکل دسترسی به نت ( فیلتر ) پیش میاد که نمیدونم واقعا برای فیلتر بودنه یا اینکه چون این ویدئو مال سال 2017 هست برخی از ریپازیتوری ها دیگه وجود ندارند.

موردی هم که الان قبل از وارد کردن این کامنت بهش برخوردم این بوده که یک قسمتی بعد از وارد کردن دستور composer install از من خواست که به یک اکانت git لاگین کنم که چون دستور git و سیستمم نمیشناخت ارور داده و نمیدونم داستانش چیه.

و مورد اخر اینکه به نظرم لطف کنید یک ویدئو کوتاه از نحوه اجرا پروژه هایی که برای دانلود میزارید بزارید خیلی خوب میشه.
و اینکه اگر پیکربندی و کانفیگ برنامه phpstorm فابل export باشه ممنون میشم اونو برام ایمیل کنید.
چون گاها با زند space کلاس هایی که شما تو autocomplete می بینید من نمیبینم.
ممنون و تشکر از این دوره خوبتون.

آنلاین
user-avatar
حسام موسوی
6 ماه پیش

دوتا ترمینال روی پروژه باز میکنید در ترمینال اول دستور زیر

composer install
php artisan serve

در ترمینال دوم دستورات زیر

npm i 
npm run watch

با این دوستور همه پکیج‌ها نصب میشه اما یکی دوتا پکیجی که به شکل دستی نصب کردیم میزبانیشون و اسمشون تغییر کرده

آفلاین
user-avatar
ali2173
5 ماه پیش

سلام ... این قسمت واقعا مفید بود ، دستتون درد نکنه
فقط سوالی که داشتم اینه که در مورد json در دوره php تنها اشاره ای که شده بود این بود که اطلاعات دریافتی از دیتابیس را از طریق json_decode تبدیل شده و به callback function در ajax ارسال میشد.. اینجا من متوجه نشدم چرا با json_decode تبدیل کردین یا getBody چی بود و ... برا همین لطف کنید یه منبعی معرفی کنید برا آموزش در این مورد ممنون میشم

آنلاین
user-avatar
حسام موسوی
5 ماه پیش

ببینید ما با api گوگل داریم کار میکنیم برای اینکه جواب درخواست از گوگل رو بگیریم اول getBody میگیم تا اطلاعات دریافت بشه و بعد چون اطلاعاتش به شکل json هست با تابع json_decode اون اطلاعات رو برای برنامه قابل استفاده میکنیم

آفلاین
user-avatar
محسن
1 سال پیش

سلام استاد وقت بخیر.
استاد در این قسمت من با اینک نیم اسپیس Validator رو یوز میکنم باز هم بهم اررور میده و میگه کلاس Validator رو نمیشناسم.بخاطر چی میتونه باشه

آنلاین
user-avatar
حسام موسوی
1 سال پیش

سلام
شما چه namespace ای رو لینک میکنید ؟

آفلاین
user-avatar
محسن
1 سال پیش

use Illuminate\Support\Facades\Validator;

آنلاین
user-avatar
حسام موسوی
1 سال پیش

غیر طبیعیه که نشناسه . میشه ارورش رو بفرمایید
به این موضوع هم دقت کنید تا نظرهای بعدتون تایید بشه

افرادی که نکته ارسال کد و ارور را رعایت نکنند، نظر آنها ثبت نخواهد شد

آفلاین
user-avatar
محسن
1 سال پیش

وقتی استاد php artisan serve رو میزنم این اررور رو دریافت میکنم

In Container.php line 790:

  Class validator does not exist

اینم اون چیزیه که ارور میگیره

 Validator::extend('recaptcha',function ($attribute,$value,$parameters,$validate)
آنلاین
user-avatar
حسام موسوی
1 سال پیش

مطمئنید در فایلی که دارید این رو استفاده میکنید اومدید نیم اسپیس زیر رو اضافه کردید ؟

use Illuminate\Support\Facades\Validator;
آفلاین
user-avatar
محسن
1 سال پیش

استاد درست شد.
تو قسمت AppServieceProvider تو فیلم مال شما اول boot بعد register که شما کد هاتونو تو boot میزدین ولی مال من برعکسه که انتقال دادم کدهامو به boot درست شد.ممنون استاد

آفلاین
user-avatar
z.mehran
1 سال پیش

سلام
استاد موقع استفاده از recaptcha این ارور رو میده
{#364 ▼
+"success": false
+"error-codes": array:2 [▼
0 => "missing-input-response"
1 => "missing-input-secret"
]
}

آنلاین
user-avatar
حسام موسوی
1 سال پیش

ببخشید دفعه بعد که خواستید ارور و متن کد بفرستید از نکته مورد نظر استفاده کنید
دکمه پیش نمایش رو هم برای این گذاشتیم چک کنید !!!
در مورد ارور هم آیا secret_key رو قرار دادید در کانفیگ قطعا در بخشی از پروسه درست پیش نرفتید

آفلاین
user-avatar
z.mehran
1 سال پیش

استاد باید کدها رو به این صورت قرار داد؟ ''' code '''
من هر طور قرار میدم بازم مشکل داره
توی قسمت AppServiceProvider برای تعریف recaptcha وقتی فقط به value نیاز داریم چرا
attribute و parameters و... رو دریافت میکنیم؟
Validator::extend('recaptcha',function ($attribute,$value,$parameters,$validator)

آنلاین
user-avatar
حسام موسوی
1 سال پیش

کدها رو باید در سه backtike باز و بسته قرار داد ایی که شما قرار دادید بهش میگن کوتیشن !
در مورد سوالتون اول اینکه این یه callback function هست این موارد به این تابع داره پاس داده میشه و هر کدومش برای کاریه برای مثال در validation شما میتونید پارامتر هم ارسال کنید attribute بخاطر نامه
پیشنهاد میکنم یکبار با dd تست کنید تا خودتون ببینید مقادیر رو

آفلاین
user-avatar
Ahmad Behvandi
1 سال پیش

سلام، وقت بخیر، در لاراول 5.8 برای فرم لاگین ریکپچا رو قرار دادم ، همه چیز اوکیه فقط زمانی که تیک کپچا زده نشه هیچ کدوم از ارورها رو نشون نمیده نه ارورهای ایمیل و رمز نه ارور خود کپچا!! ولی اگه تیک کپچا زده بشه ارور سایر فیلدها رو برمیگردونه، جریان چی میتونه باشه؟

آنلاین
user-avatar
حسام موسوی
1 سال پیش

سلام بستگی داره شما چطور اصلا انجامش داده باشید .

آفلاین
user-avatar
Ahmad Behvandi
1 سال پیش

لاگین پیشفرض لاراول توی قالب، از تگ @error استفاده کرده که به فیلد کپچام اضافه کردم و حل شد ، ممنون

آفلاین
user-avatar
heather
1 سال پیش

سلام اقای موسوی ...ممنون از اموزشای بسیار عالیتون
ببخشید چرا من وقتی روی ادرس /logout می زنم به من ارور می ده ولی وقتی میرم داخل ادمین پانل و روی دکمه ی روی header که خروج از حساب هستش.همونی که واسش یک فرمی ساختم کلیک میکنم بدون مشکل کار می کنه؟مال شما اینجوری نیستش

No message
آنلاین
user-avatar
حسام موسوی
1 سال پیش

سلام چه اروری نشون میده ؟

آفلاین
user-avatar
heather
1 سال پیش

سلام اقای موسوی ..
شرمنده مسافرت بودم....
ارور :

Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException
No message
آنلاین
user-avatar
حسام موسوی
1 سال پیش

ببینید در پنل مدیریت ما که فرم گذاشتیم گفتم این متد بشکل post هست حتما در جای دیگه فرم قرار ندادید و فقط گفتید بشکل get بیا logout کن که این ارور پیش اومده در واقعیت یکی از مقدماتی ترین ارور های لاراول هست

آفلاین
user-avatar
soroush
1 سال پیش

سلام.
همه کاراو انجام دادم اما وقتی میخوام لاگین کنم گاهی تیک فعال ریکپچا رو میزنه و میتونم لاگین کنم وکاملا درست انجام میشه روال. و گاهی تیک فعال و نمیزنه برای ریکپچا .معمولا هر ده دقیقه یه بار من ریکپچام تیم تایید میزنه مشکل میخواستم بدونم از کجاست ؟

آنلاین
user-avatar
حسام موسوی
1 سال پیش

سلام مشکل میتونه از گوگل باشه برای اینکه زیاد میزنید تیکو یا به هر دلیل دیگه
رو سرور بره حل میشه

آفلاین
user-avatar
مجید
2 سال پیش

درود...//
سوالی دارم و امیدوارم جواب بدید ..
من زمانی که از دستور php artisan یا هر دستور دیگری استفاده میکنم به مدت چند ثانیه command prompt باز میشه و بسته میشه و اتفاق خاصی نمی افته؟دلیل چی میتونه باشه؟
سپاس

آنلاین
user-avatar
حسام موسوی
2 سال پیش

سلام نمی دونم والا شما بعد از انجام چه کاری این اتفاق براتون می افته
این بخاطر سیستمتون میتونه باشه . برای لاراول نیست

آفلاین
user-avatar
ag7
2 سال پیش

باسلام
میشه راجب ورژن سه هم توضیح بدید و اینکه چطور کد ها رو به ورژن سه تغییر بدیم
باتشکر

آنلاین
user-avatar
حسام موسوی
2 سال پیش

سلام با همون حالتی که ما ورژن 2 رو پیاده سازی کردیم از همون راه شما میتونید 3 رو پیاده سازی کنید برای کسی که دوره رو به پایان رسونده باشه اصلا کاری نداره

آفلاین
user-avatar
آرمین پوررضا
2 سال پیش

سلام مهندس موسوی من بعد آپلود کردن روی هاست ریکپچام خیلی کند میشه
ایا مشکل از ریکپچا هستش یا هاست
هاست به نظر مناسبی گرفتم
از میهن وب هاست هاست لاراولی

آنلاین
user-avatar
حسام موسوی
2 سال پیش

مهین وب هاست سرویس خوبی نیست .
ریکپچا نباید کند باشه . این مروبوط یا به اینترنت شماست یا سرور شما

آفلاین
user-avatar
موثقی
2 سال پیش

سلام استاد خسته نباشید
استاد گوزل request کار نمیکنه اولش کار میکرد ولی نمیدونم چرا این خطارو میده
Call to undefined method Guzzle\Http\Client::request()

ممنون میشم راهنمایی کنید

اینم کد

Validator::extend('recaptcha' , function ($attribute, $value,$parameters,$validator){
$client = new Client();
$response = $client->request('POST', 'https://www.google.com/recaptcha/api/siteverify', [
'form_params' => [
'secret' => config('services.recaptcha.secret'),
'response'=> $value,
'remoteip' => request()->ip()

            ],
        ]);
        $response = json_decode($response->getBody());

        return $response->success;
    });
آنلاین
user-avatar
حسام موسوی
2 سال پیش

سلام درست import نکردید باید use GuzzleHttp; رو فراخونی کنید

آفلاین
user-avatar
aligpr75
2 سال پیش

سلام ببخشید..من تو پروژه موقع لاگین کردن به ارور
count();must be array or an object
بر میخورم...فکر کنم واسه خط زیر باشه..نمیدونم باید چیکار کردم.. سرچ هم کردم ولی نتونستم مشکلمو برطرف کنم..قسمت
logincontroller ارور میده

 public function login(Request $request)
    {
        $this->validateLogin($request);

        // If the class is using the ThrottlesLogins trait, we can automatically throttle
        // the login attempts for this application. We'll key this by the username and
        // the IP address of the client making these requests into this application.
        if ($this->hasTooManyLoginAttempts($request)) {
            $this->fireLockoutEvent($request);

            return $this->sendLockoutResponse($request);
        }

        if (auth()->validate($request->only('email', 'password'))) {
            $user = User::whereEmail($request->input('email'))->first();
            if ($user->active == 0) {
                $checkActiveCode = $user->activationCode()->where('expire', '>=', Carbon::now())->latest()->first();

                if ( count($checkActiveCode) == 1) {
                    if ($checkActiveCode->expire > Carbon::now()) {
                        $this->incrementLoginAttempts($request);
                        return back()->withErrors(['code' => 'ایمیل فعال سازی قبلا به ایمیل شما ارسال شد بعد از 15 دقیقه دوباره برای ارسال ایمیل لاگین کنید']);
                    }
                } else {
                    event(new UserActivation($user));
                }
            }
        }

        if ($this->attemptLogin($request)) {
            return $this->sendLoginResponse($request);
        }

        // If the login attempt was unsuccessful we will increment the number of attempts
        // to login and redirect the user back to the login form. Of courses, when this
        // user surpasses their maximum number of attempts they will get locked out.
        $this->incrementLoginAttempts($request);//5 bar login

        return $this->sendFailedLoginResponse($request);
    }
آنلاین
user-avatar
حسام موسوی
2 سال پیش

در ورژن جدید php بغیر از array و object نمیتونید چیز دیگه ای count کنید بجای count میتونید از isset استفاده کنید یا کلا از چیزی استفاده کنید که چک کنه وجود داره یا خیر