Maison >cadre php >YII >Comment empêcher la soumission répétée de formulaires dans yii2

Comment empêcher la soumission répétée de formulaires dans yii2

(*-*)浩
(*-*)浩original
2019-12-30 10:22:062987parcourir

Comment empêcher la soumission répétée de formulaires dans yii2

yii2 utilise csrf pour empêcher les soumissions répétées de formulaires

Tout d'abord, par défaut, le csrf de yii2 vérification La vérification du jeton est enregistrée via des cookies. Pour éviter la soumission répétée de formulaires, vous devez d'abord changer cette méthode en session.

Vous pouvez y parvenir en modifiant la configuration du projet , le jeton CSRF enregistré dans la session ne sera pas rafraîchi ou effacé avant de saisir la prochaine demande de requête , et l'endroit pour vérifier le csrf est dans la méthode beforeAction du contrôleur. Le code source de yiiwebController est le suivant

'components' => [
	'request' => [
		'enableCsrfCookie' => false
	]
]

Bien sûr, il n'est pas nécessaire de changer le code source. D'accord, créez donc un nouveau contrôleur. et héritez de ce contrôleur pour implémenter la méthode beforeAction

/**
* @inheritdoc
*/
public function beforeAction($action)
{
	if (parent::beforeAction($action)) {
		if ($this->enableCsrfValidation && Yii::$app->getErrorHandler()->exception === null && !Yii::$app->getRequest()->validateCsrfToken()) {
			throw new BadRequestHttpException(Yii::t('yii', 'Unable to verify your data submission.'));
		}
		return true;
	}
 
	return false;
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Comment configurer yii2Article suivant:Comment configurer yii2