Maison >développement back-end >Problème PHP >Comment utiliser le contrôle PHP pour fermer la page Web actuelle

Comment utiliser le contrôle PHP pour fermer la page Web actuelle

PHPz
PHPzoriginal
2023-03-29 11:31:161106parcourir

Lorsque nous développons un site Web, nous devons souvent implémenter certaines fonctions spéciales. Parmi eux, une exigence courante consiste à contrôler les utilisateurs pour qu'ils ferment les onglets du navigateur ou la totalité de la fenêtre du navigateur. Cet objectif peut être atteint grâce au langage PHP. Dans cet article, nous présenterons comment implémenter cette fonctionnalité en PHP.

1. Utilisez JavaScript pour implémenter la fonction de blocage et de fermeture des pages Web

Avant de commencer à présenter comment utiliser le langage PHP pour bloquer et fermer la fonction des pages Web, permettez-moi d'abord de vous présenter comment utiliser JavaScript pour implémenter la fonction de bloquer et fermer des pages Web.

En JavaScript, nous pouvons utiliser l'événement onbeforeunload pour effectuer les opérations associées. Cet événement est déclenché avant la fermeture de l'onglet ou de la fenêtre du navigateur. Nous pouvons écrire du code pour fonctionner lorsque l'événement est déclenché afin d'obtenir l'effet de blindage et de fermeture.

Ci-dessous, nous démontrons un morceau de code JavaScript pour bloquer et fermer la page Web actuelle :

window.onbeforeunload = function () {
    return "确定要离开当前页面吗?";
};

Dans ce code, nous utilisons l'événement onbeforeunload, et le contenu de la fonction est l'information d'invite. Lorsque le navigateur tente de fermer l'onglet actuel ou la fenêtre entière, le système affichera une boîte de confirmation affichant le contenu textuel ci-dessus. Si l'utilisateur sélectionne OK, la page sera fermée, sinon elle restera sur la page actuelle.

Bien sûr, JavaScript ne peut modifier que le comportement de la page frontale. Pour PHP côté serveur, il a bien d'autres choses à faire. Dans cet article, nous présenterons comment implémenter la fonction de fermeture d'une page Web en PHP.

2. Utilisez PHP pour implémenter la fonction de blocage et de fermeture des pages Web

Pour implémenter la fonction de blocage et de fermeture des pages Web en PHP, nous devons utiliser le mécanisme de session pour y parvenir. Le mécanisme de session est un mécanisme de session basé sur le protocole HTTP, utilisé pour sauvegarder les données entre le client et le serveur. Dans la session, nous pouvons stocker certaines informations, qui pourront être facilement obtenues lors de la prochaine requête.

Voici le code qui utilise PHP pour bloquer la fermeture de la page Web :

session_start();
$_SESSION['showMessage'] = true;

Dans ce code, nous utilisons la fonction session_start() pour ouvrir la session, et utilisons le tableau $_SESSION pour enregistrer certaines variables sur les pages . Ici, nous définissons $_SESSION['showMessage'] sur true, indiquant qu'une boîte de confirmation doit apparaître sur la page suivante.

Ensuite, sur la page suivante, nous devons retirer la valeur de $_SESSION['showMessage'] et déterminer s'il est nécessaire d'afficher la boîte de confirmation. Le code spécifique est le suivant :

session_start();
if (isset($_SESSION['showMessage']) && $_SESSION['showMessage'] === true) {
    echo '<script>alert("确定要离开当前页面吗?");</script>';
    unset($_SESSION['showMessage']);
}

Dans ce code, nous utilisons la fonction isset() pour déterminer si $_SESSION['showMessage'] existe et si sa valeur est vraie. Si tel est le cas, utilisez echo pour afficher le code JavaScript et afficher une boîte de confirmation. Une fois la boîte de confirmation affichée, nous devons également définir la valeur de $_SESSION['showMessage'] sur null pour éviter que plusieurs boîtes de confirmation n'apparaissent.

3. Utilisez JavaScript et PHP pour réaliser la fonction de blocage et de fermeture des pages Web

Dans le développement réel, en raison de la relation de saut complexe entre les pages, nous ne pouvons en aucun cas garantir que les utilisateurs passeront à la page suivante. Par conséquent, nous devons porter des jugements à la fois sur le front-end (JavaScript) et sur le back-end (PHP).

Voici le code qui utilise JavaScript et PHP pour bloquer et fermer la page Web :

Code JavaScript :

window.onbeforeunload = function () {
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET", "close.php", false);
    xmlhttp.send();
    return "确定要离开当前页面吗?";
};

Code PHP :

session_start();
if (isset($_REQUEST['close'])) {
    $_SESSION['showMessage'] = false;
    exit;
}
if (isset($_SESSION['showMessage']) && $_SESSION['showMessage'] === true) {
    echo '<script>alert("确定要离开当前页面吗?");</script>';
    unset($_SESSION['showMessage']);
}

Dans ce code, nous utilisons l'objet XMLHttpRequest pour déclencher une requête Ajax vers le Fichier PHP d'arrière-plan Soumettez pour obtenir l'effet d'exécuter PHP en arrière-plan en JavaScript frontal. Le fichier PHP définira la valeur de $_SESSION['showMessage'] sur false, et sur la page suivante, le code qui fait apparaître la boîte de confirmation ne sera plus exécuté.

Conclusion

Dans cet article, nous avons présenté comment utiliser le langage PHP pour bloquer la fonction de fermeture de la page Web. En utilisant le mécanisme de session, nous pouvons conserver une variable intermédiaire côté serveur pour déterminer si une boîte de confirmation doit apparaître.

Cet article explique également comment utiliser JavaScript et PHP pour implémenter la fonction de blocage et de fermeture de pages Web. En utilisant à la fois le front-end (JavaScript) et le back-end (PHP) pour porter des jugements, nous pouvons mieux garantir la fiabilité de la fonction de blocage et de fermeture des pages Web.

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