PDA

View Full Version : سوال: مشکل bad request در yii



desatir7316
پنج شنبه 09 خرداد 1398, 07:41 صبح
سلام خسته نباشید
یه سایت با yii2 advanced طراحی کردم
توی لوکال مشکلی نداره ولی روی هاست می خوام قسمت backend لاگین کنم، error 400 bad request می ده
البته قسمت front end لاگین نداره

سرچ کردم گفتن که باید csrf رو مساوی false قرار بدم، این کار هم انجام دادم، موقع لاگین، ارور نمی ده ولی مدام صفحه لاگین رو نشون می ده

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

desatir7316
پنج شنبه 09 خرداد 1398, 21:16 عصر
دوستان yii کار! هیچ کس نیست؟

دوستان من مشکل رو حل کردم، به این صورت که csrf های سمت front و back رو مثل هم گذاشتم. دیگه ارور نمی ده
ولی الان موقع لاگین، مدام روی صفحه لاگین می مونه و مثل اینه که هیچ سشن و کوکی ست نمی شه

می شه کمک کنید؟

desatir7316
جمعه 10 خرداد 1398, 09:11 صبح
کسی نیست؟ قبلا اینجا خیلی فعال بود

plague
شنبه 11 خرداد 1398, 11:13 صبح
یه زمانی مدیر اینجا با yii کار میکرد و خیلی حرف و تبلیغش رو انجام میدادن
چند نفر از بچه های اینجا هم تحت تاثیر تبلیغات رفتن دنبال یادگیریش و اینجا رو فعلا کرده بودن
ولی خب اینا یه حباب دست کرده بودن برا خودشون اینجا که کمی گمراه کننده بود و چیزی که اینجا میدیدی فرق میکرد با دنیای بیرون
حقیقت اینه که با وجود کیفیت بالای yii شکست سختی از لاراول خورد و عملا لاراول شد فریم ورک استاندارد بازار و به نظر من ضرر کردن کسانی که رفتن دنبال yii

اون دوست مدیرمون از اینجا رفت و بقیه هم بعد مدتی رفتن سراغ لاراول و یجوایی نسلشون منقرض شد

مهرداد سیف زاده
یک شنبه 12 خرداد 1398, 03:29 صبح
csrf رو بهتر هست که disable نکنید. و بهتر هست مشکل bad request رو حل کنید
زمانی که دیتای ورودی از نوع post باشه خودکار yii اون ها رو از فیلتر csrf عبور میده که باید توکن داشته باشن
راه حل بهتر در همون action که این ارور رو میده شما csrf رو disable کنید
تکه کد زیر رو در Controller مربوطه و بجای myaction اسم اکشن خودتون رو بنویسید

/** * @inheritdoc
*/
public function beforeAction($action) {
if ($action->id == 'myaction') {
$this->enableCsrfValidation = false;
}


return parent::beforeAction($action);
}

desatir7316
یک شنبه 12 خرداد 1398, 23:02 عصر
csrf رو بهتر هست که disable نکنید. و بهتر هست مشکل bad request رو حل کنید
زمانی که دیتای ورودی از نوع post باشه خودکار yii اون ها رو از فیلتر csrf عبور میده که باید توکن داشته باشن
راه حل بهتر در همون action که این ارور رو میده شما csrf رو disable کنید
تکه کد زیر رو در Controller مربوطه و بجای myaction اسم اکشن خودتون رو بنویسید

/** * @inheritdoc
*/
public function beforeAction($action) {
if ($action->id == 'myaction') {
$this->enableCsrfValidation = false;
}


return parent::beforeAction($action);
}





ممنون من این کار رو انجام دادم ولی بازم مشکل حل نشد.
فکر کنم مشکل از سشن هست. سشن رو توی دیتابیس ذخیره کردم ببینم به چه صورته، به ازای هر بار درخواست لاگین، 8 تا رکورد توی دیتابیس ذخیره می کنه. ولی توی لوکال اینطوری نیست

به نظرتون مشکل کجاست؟ روی یه هاست دیگه هم تست کردم،اونم به همین شکل بود

desatir7316
یک شنبه 12 خرداد 1398, 23:03 عصر
یه زمانی مدیر اینجا با yii کار میکرد و خیلی حرف و تبلیغش رو انجام میدادن
چند نفر از بچه های اینجا هم تحت تاثیر تبلیغات رفتن دنبال یادگیریش و اینجا رو فعلا کرده بودن
ولی خب اینا یه حباب دست کرده بودن برا خودشون اینجا که کمی گمراه کننده بود و چیزی که اینجا میدیدی فرق میکرد با دنیای بیرون
حقیقت اینه که با وجود کیفیت بالای yii شکست سختی از لاراول خورد و عملا لاراول شد فریم ورک استاندارد بازار و به نظر من ضرر کردن کسانی که رفتن دنبال yii

اون دوست مدیرمون از اینجا رفت و بقیه هم بعد مدتی رفتن سراغ لاراول و یجوایی نسلشون منقرض شد

چه ربطی به سوال من داره
هرکی هر کجا می خواد بره

مهرداد سیف زاده
دوشنبه 13 خرداد 1398, 12:55 عصر
آرگومان های ارسالی رو چک کردید؟ احتمالا route ای نننوشتید که مشکل رو ایجاد کرده باشه؟
یا حتی controller رو implement کرده باشید و تغییری درش داده باشید
چون در حالت عادی یک کد yii رو روی هر هاستی میشه نصب و استفاده کرد
یا حتی یه تستی با پروژه خالی انجام بدید. یعنی فقط هسته yii و بدون هیچ اضافات خاصی