Rediriger toutes les pages vers une seule page en php no htaccess

Fermé
carterj Messages postés 44 Date d'inscription lundi 4 septembre 2017 Statut Membre Dernière intervention 3 août 2020 - 12 mai 2020 à 15:43
jordane45 Messages postés 38316 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 novembre 2024 - 13 mai 2020 à 00:11
Bonjour,

J'ai un formulaire pour compléter le profil des utilisateurs Je veux que si une entrée n'est pas remplie l'utilisateur ne peut pas quitter la page courante par exemple: même s'il clique sur un menu qui soit redirigé sur la page courante.
j'avais pensé a un if isset mais je sais par ou commencé.

Merci d'avance


Configuration: Windows / Chrome 81.0.4044.138
A voir également:

3 réponses

jordane45 Messages postés 38316 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 novembre 2024 4 705
12 mai 2020 à 16:40
Bonjour,


une entrée n'est pas remplie l'utilisateur ne peut pas quitter la page courante

Tu peux faire ça en Javascript ... en contrôlant que les champs sont remplis avant de valider le submit*

car je suppose qu'il s'agit d'un formulaire html que tu traites en PHP après submit...
Tu peux aussi mettre tes champs en REQUIRED ce qui empêchera son envoi si les champs ne sont pas remplis...
https://www.alsacreations.com/tuto/lire/1391-formulaire-html5-placeholder-required-pattern.html

1
jordane45 Messages postés 38316 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 29 novembre 2024 4 705
13 mai 2020 à 00:11
Ton "menu" .. c'est des liens vers d'autres url ?
Dans ce cas, en Javascript tu peux "bloquer" la fermeture de la page ( du moins, mettre un message d'avertissement)

Un truc du genre
<script language="javascript" type="text/javascript">
var formSubmitting = false;
var setFormSubmitting = function() { formSubmitting = true; };

window.onload = function() {
    window.addEventListener("beforeunload", function (e) {
        if (formSubmitting) {
            return undefined;
        }

        var confirmationMessage = 'It looks like you have been editing something. '
                                + 'If you leave before saving, your changes will be lost.';

        (e || window.event).returnValue = confirmationMessage; //Gecko + IE
        return confirmationMessage; //Gecko + Webkit, Safari, Chrome etc.
    });
};
</script>

Il faudra ajouter du code sur l'event du submit de ton formulaire, qui, si tous les champs sont remplis, met la valeur de forSumiting à true ( en appellant la fonction setFormSubmitting )
un truc du genre
<form method="post" onsubmit="checkFields()"> 

function checkFields(){
  if (... ici tu vérifies que tes champs sont remplis... ){
    setFormSubmitting(); // on passe la valeur à true.
  }
}
1
carterj Messages postés 44 Date d'inscription lundi 4 septembre 2017 Statut Membre Dernière intervention 3 août 2020 1
Modifié le 12 mai 2020 à 17:02
Bonjour,

Merci.


Oui je sais pour le REQUIRED mais je veut que l'utilisateur rempli obligatoirement de ne pas lui laisser le choix d'ignoré et aller a une autre page comme sur la photo si il click sur recherche par exemple, je veux afficher un err message et revenir sur la même page. pourquoi je fait ça parce que sur chaque profil je calcule la distance entre celle visité et celle connecter est je l'affiche, pour sa il faut qu'il rempli le champ pays et ville.
0