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

(*-*)浩
Libérer: 2019-12-30 10:22:06
original
2992 Les gens l'ont consulté

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
	]
]
Copier après la connexion

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;
}
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal