bonsoir à tous,
j'ai besoin de bloquer le rafraichissement d'une page via la touche F5 et le bouton actualisé des navigateur.

J'en ai besoin pour éviter que des personnes me recharges des formulaire, car par moment en cas de raffraichissement il pourrait bénéficier de bonus, ou doublerai des informations.
J'ai parcourue un peu le net et réguliérement on parle en PHP de jouer avec la variable de session, mais elle est déja occupé par un forum, et honnetement cette variable et moi sommes pas copains.

Coté Jquery j'ai trouvé ça

// slight update to account for browsers not supporting e.which
function disableF5(e) { if ((e.which || e.keyCode) == 116) e.preventDefault(); };
// To disable f5
    /* jQuery < 1.7 */
$(document).bind("keydown", disableF5);
/* OR jQuery >= 1.7 */
$(document).on("keydown", disableF5);

// To re-enable f5
    /* jQuery < 1.7 */
$(document).unbind("keydown", disableF5);
/* OR jQuery >= 1.7 */
$(document).off("keydown", disableF5);

celà bloque bien la touche F5, mais pas le bouton du navigateur.

Aurriez vous une idées.

Merci d'avance Flo

2 réponses


Lartak
Réponse acceptée

Tu auras beau bloquer le raffraichissement de la page via le bouton F5, voir même trouver un moyen pour le bouton actualiser (refresh) du navigateur, comment feras tu pour éviter que l'utilisateur mette son curseur dans la barre d'adresse du navigateur et qu'il appui sur la touche Entrée (Enter) ?
Fais donc plutôt des vérifications côté php, avec un genre de token en input et la session par exemple, surtout que si l'utilisateur désactive le javascript via le navigateur, il pourra contourner ton système, ce qui ne pourra pas être le cas pour le php.

tu peut pas bloquer le bouton du navigateur, tous du moins je pense, c'est trop intrusif dans le navigateur de l'utilisateur. Une meilleur securité en PHP serais une bien meilleur solution a mon avis