何日も過ごした後、専門家から助けを得ようとしています。 XX-アクションをコントローラに送信しFORMDATA: 私はyii2ログインページのリダイレクトがキャンセルされた状態でループする
class InvitationsController extends Controller
{
public function beforeAction($action)
{ $array=array('index','imageupload','template','category','subcategory','slug','chooseanotherdesign');
if(!in_array($action->id, $array))
{
if (\Yii::$app->getUser()->isGuest &&
\Yii::$app->getRequest()->url !== Url::to(\Yii::$app->getUser()->loginUrl)
) {
\Yii::$app->getResponse()->redirect(\Yii::$app->getUser()->loginUrl,FALSE);
}
}
return parent::beforeAction($action);
}
public function actionGenerateevent(){
$redirectUrl="";
if(Yii::$app->request->post()){
unset(Yii::$app->session['copyinvitation']);
unset(Yii::$app->session['eventform']);
Yii::$app->session['eventform']=Yii::$app->request->post();
}
if (!Yii::$app->user->isGuest)
{
$eventid=$this->invitation->savecontinue(Yii::$app->session['eventform']);
$eventdata=$this->invitation->getEventById($eventid);
$refurl=Yii::$app->session['eventform']['refererurl'];
$aa['Events']=$eventdata;
$aa['refererurl']=$refurl;
Yii::$app->session['eventform']=$aa;
$redirectUrl = Yii::$app->urlManager->createAbsoluteUrl(['invitations/event/'.$eventdata['event_token']]);
return $this->redirect($redirectUrl);
}
}
}
マイワークフロー STEP1、
この
は私のコントローラクラスで、唯一のChromeブラウザでの私のyii2アプリケーションにログインリダイレクトで立ち往生しています step2:ユーザーログインの場合は、さらに処理を進めます Else セッションに値を保存しようとしているときに、ページをログインにリダイレクトしようとしています手順3:ログインに成功した後、同じxx-actionに戻ります
このワークフローはFirefoxでうまくいきますが、クロムはログインページを通過しない不規則ループになっています。 スクリーンショットを添付して参照してください
この問題を解決するのを手伝ってください。
実際にはbeforeaction()関数を呼び出していますので、$ redirectUrl = ""は必要ありません。 あなたは正しいですが、このアクションでフォームを送信しているので問題が発生しているため、最初のactionGenerateevent()に問題があります。今私はそれを修正した。どうもありがとうございます。 – user3535066
@ user3535066私は助けてうれしいです!私の答えに印をつけてください。高槻 – slinstj