Question

Je veux détecter si le navigateur est actualisé ou non avec PHP, et si le navigateur est actualisé, quel code PHP doit être exécuté.

Était-ce utile?

La solution

Si la page a été actualisée, vous vous attendez à ce que deux demandes se succèdent pour la même URL (chemin, nom de fichier, chaîne de requête) et le même contenu de formulaire (le cas échéant) (données POST). Cela pourrait être beaucoup de données, il serait donc préférable de les hacher. Alors ...


<?php
session_start();

//The second parameter on print_r returns the result to a variable rather than displaying it
$RequestSignature = md5(

Si la page a été actualisée, vous vous attendez à ce que deux demandes se succèdent pour la même URL (chemin, nom de fichier, chaîne de requête) et le même contenu de formulaire (le cas échéant) (données POST). Cela pourrait être beaucoup de données, il serait donc préférable de les hacher. Alors ...

<*>

Dans une situation AJAX, vous devez faire attention aux fichiers dans lesquels vous insérez ce code afin de ne pas mettre à jour la signature LastRequest pour les scripts appelés asynchrones.

SERVER['REQUEST_URI'].

Si la page a été actualisée, vous vous attendez à ce que deux demandes se succèdent pour la même URL (chemin, nom de fichier, chaîne de requête) et le même contenu de formulaire (le cas échéant) (données POST). Cela pourrait être beaucoup de données, il serait donc préférable de les hacher. Alors ...

<*>

Dans une situation AJAX, vous devez faire attention aux fichiers dans lesquels vous insérez ce code afin de ne pas mettre à jour la signature LastRequest pour les scripts appelés asynchrones.

SERVER['QUERY_STRING'].print_r(

Si la page a été actualisée, vous vous attendez à ce que deux demandes se succèdent pour la même URL (chemin, nom de fichier, chaîne de requête) et le même contenu de formulaire (le cas échéant) (données POST). Cela pourrait être beaucoup de données, il serait donc préférable de les hacher. Alors ...

<*>

Dans une situation AJAX, vous devez faire attention aux fichiers dans lesquels vous insérez ce code afin de ne pas mettre à jour la signature LastRequest pour les scripts appelés asynchrones.

POST, true)); if (

Si la page a été actualisée, vous vous attendez à ce que deux demandes se succèdent pour la même URL (chemin, nom de fichier, chaîne de requête) et le même contenu de formulaire (le cas échéant) (données POST). Cela pourrait être beaucoup de données, il serait donc préférable de les hacher. Alors ...

<*>

Dans une situation AJAX, vous devez faire attention aux fichiers dans lesquels vous insérez ce code afin de ne pas mettre à jour la signature LastRequest pour les scripts appelés asynchrones.

SESSION['LastRequest'] == $RequestSignature) { echo 'This is a refresh.'; } else { echo 'This is a new request.';

Si la page a été actualisée, vous vous attendez à ce que deux demandes se succèdent pour la même URL (chemin, nom de fichier, chaîne de requête) et le même contenu de formulaire (le cas échéant) (données POST). Cela pourrait être beaucoup de données, il serait donc préférable de les hacher. Alors ...

<*>

Dans une situation AJAX, vous devez faire attention aux fichiers dans lesquels vous insérez ce code afin de ne pas mettre à jour la signature LastRequest pour les scripts appelés asynchrones.

SESSION['LastRequest'] = $RequestSignature; }

Dans une situation AJAX, vous devez faire attention aux fichiers dans lesquels vous insérez ce code afin de ne pas mettre à jour la signature LastRequest pour les scripts appelés asynchrones.

Autres conseils

Lorsque l'utilisateur appuie sur le bouton d'actualisation, le navigateur inclut un en-tête supplémentaire qui apparaît dans le tableau $ _SERVER.

Testez le bouton d'actualisation en utilisant les éléments suivants:

    $refreshButtonPressed = isset(

Lorsque l'utilisateur appuie sur le bouton d'actualisation, le navigateur inclut un en-tête supplémentaire qui apparaît dans le tableau $ _SERVER.

Testez le bouton d'actualisation en utilisant les éléments suivants:

<*>SERVER['HTTP_CACHE_CONTROL']) &&

Lorsque l'utilisateur appuie sur le bouton d'actualisation, le navigateur inclut un en-tête supplémentaire qui apparaît dans le tableau $ _SERVER.

Testez le bouton d'actualisation en utilisant les éléments suivants:

<*>SERVER['HTTP_CACHE_CONTROL'] === 'max-age=0';
<?php

    session_start();
    if (!isset(<*>SESSION["visits"]))
        <*>SESSION["visits"] = 0;
    <*>SESSION["visits"] = <*>SESSION["visits"] + 1;

    if (<*>SESSION["visits"] > 1)
    {
        echo "You hit the refresh button!";
    }
    else
    {
        echo "This is my site";
    }

    // To clear out the visits session var:
    // unset(<*>SESSION["visits"]);

?>

Si vous voulez dire que vous voulez faire la distinction entre le moment où un utilisateur accède à la page et le moment où il recharge la page, vérifiez le référant. En php, il s’agit de: $ _SERVER [" HTTP_REFERER "]. Voir si elle est égale à la page que votre script est en cours d'exécution. Il se peut que le client ne fournisse pas ces informations. Si cela se produit, vous pouvez définir un cookie ou une variable de session afin de suivre la dernière page demandée.

Pour éviter le traitement des formulaires en double lorsqu'un utilisateur appuie sur le bouton d'actualisation ou de retour du navigateur, vous devez utiliser une variable de session id d'instance de page et une entrée de formulaire masquée contenant cette variable. lorsque les deux ne correspondent pas, l'utilisateur a actualisé la page et vous ne devez pas retraiter le formulaire. pour plus de détails, voir:

https://www.spotlesswebdesign.com/blog.php?id=11

Si quelqu'un actualise une page, la même demande sera envoyée comme la précédente. Donc, vous devriez vérifier si la demande actuelle est la même que la dernière. Cela peut être fait comme suit:

session_start();

$pageRefreshed = false;
if (isset(

Si quelqu'un actualise une page, la même demande sera envoyée comme la précédente. Donc, vous devriez vérifier si la demande actuelle est la même que la dernière. Cela peut être fait comme suit:

<*>

Je ne l’ai pas testée, mais cela devrait fonctionner.

SESSION['LAST_REQUEST']) &&

Si quelqu'un actualise une page, la même demande sera envoyée comme la précédente. Donc, vous devriez vérifier si la demande actuelle est la même que la dernière. Cela peut être fait comme suit:

<*>

Je ne l’ai pas testée, mais cela devrait fonctionner.

SERVER['REQUEST_URI'] ===

Si quelqu'un actualise une page, la même demande sera envoyée comme la précédente. Donc, vous devriez vérifier si la demande actuelle est la même que la dernière. Cela peut être fait comme suit:

<*>

Je ne l’ai pas testée, mais cela devrait fonctionner.

SESSION['LAST_REQUEST']['REQUEST_URI']) { if (isset(

Si quelqu'un actualise une page, la même demande sera envoyée comme la précédente. Donc, vous devriez vérifier si la demande actuelle est la même que la dernière. Cela peut être fait comme suit:

<*>

Je ne l’ai pas testée, mais cela devrait fonctionner.

SERVER['HTTP_REFERER'])) { // check if the last request’s referrer is the same as the current $pageRefreshed =

Si quelqu'un actualise une page, la même demande sera envoyée comme la précédente. Donc, vous devriez vérifier si la demande actuelle est la même que la dernière. Cela peut être fait comme suit:

<*>

Je ne l’ai pas testée, mais cela devrait fonctionner.

SERVER['HTTP_REFERER'] ===

Si quelqu'un actualise une page, la même demande sera envoyée comme la précédente. Donc, vous devriez vérifier si la demande actuelle est la même que la dernière. Cela peut être fait comme suit:

<*>

Je ne l’ai pas testée, mais cela devrait fonctionner.

SESSION['LAST_REQUEST']['HTTP_REFERER']; } else { // check if the last request didn’t have a referrer either $pageRefreshed =

Si quelqu'un actualise une page, la même demande sera envoyée comme la précédente. Donc, vous devriez vérifier si la demande actuelle est la même que la dernière. Cela peut être fait comme suit:

<*>

Je ne l’ai pas testée, mais cela devrait fonctionner.

SERVER['HTTP_REFERER'] === null; } } // set current request as "last request"

Si quelqu'un actualise une page, la même demande sera envoyée comme la précédente. Donc, vous devriez vérifier si la demande actuelle est la même que la dernière. Cela peut être fait comme suit:

<*>

Je ne l’ai pas testée, mais cela devrait fonctionner.

SERVER['LAST_REQUEST'] = array( 'REQUEST_URI' =>

Si quelqu'un actualise une page, la même demande sera envoyée comme la précédente. Donc, vous devriez vérifier si la demande actuelle est la même que la dernière. Cela peut être fait comme suit:

<*>

Je ne l’ai pas testée, mais cela devrait fonctionner.

SERVER['REQUEST_URI'], 'HTTP_REFERER' => isset(

Si quelqu'un actualise une page, la même demande sera envoyée comme la précédente. Donc, vous devriez vérifier si la demande actuelle est la même que la dernière. Cela peut être fait comme suit:

<*>

Je ne l’ai pas testée, mais cela devrait fonctionner.

SERVER['HTTP_REFERER']) ?

Si quelqu'un actualise une page, la même demande sera envoyée comme la précédente. Donc, vous devriez vérifier si la demande actuelle est la même que la dernière. Cela peut être fait comme suit:

<*>

Je ne l’ai pas testée, mais cela devrait fonctionner.

SERVER['HTTP_REFERER'] : null );

Je ne l’ai pas testée, mais cela devrait fonctionner.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top