IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Comment forcer la ré-exécution d'un script par programme ?


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2015
    Messages : 17
    Points : 9
    Points
    9
    Par défaut Comment forcer la ré-exécution d'un script par programme ?
    Bonjour à tou(te)s,

    j'ai besoin d'utiliser la fonction "CTRL F5" sur PC ou "Schift Cmde R" sur Mac pour forcer la ré-exécution d'un script. En effet je propose dans un script, une liste en provenance d'une base mysql et le navigateur ne "voit" pas qu'il y a une modif et qu'il faut recharger (ou vider le CACHE).
    Sur PC le "CTRL F5" fonctionne mais la manip n'est ps géniale..., sur Mac dernière version OS le "Schift Cmde R" ne fonctionne pas !

    Question: existe-t-il un code ou une fonction que je pourrais mettre dans mon script pour faire l’équivalent ?

    merci de votre aide, comme d'habitude...!

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Les données récupérée dans une base et affichée par PHp ne sont pas mise en cache par défaut et donc Ctrl+F5 n'a pas d'impact la dessus.
    Il faudrait avant tout que tu comprennes ou se fait la mise en cache pour la supprimer ou la modifier.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2015
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    Merci, mais je ne sais pas....!
    ce que je vois c'est que F5 seul ne marche pas et que CTRL F5 marche.
    Cela dit je suis totalement incompétent sur la question de savoir pourquoi le "refresh" ne se fait pas.

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    On peut pas deviner à ta place ce que fait ton code

    Tu peux forcer un rafraichissement en javascript :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="javascript: location.reload(true);">Recharger</a>
    Mais ce n'est que masquer le problème , pas le résoudre.
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2015
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    Merci pour cette piste.
    Ceci dit comment puis-je comprendre ce qui se passe ?
    Où dois-je chercher ?
    Pour présenter ma liste de choix j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    echo ("<form action='CreationPlanche2.php' method='post'>
            <p>
              <input type='hidden' name='MotDePasse' value='$MotDePasse'>
               <input type='hidden' name='Titre' VALUE='$TitreSansSlashes'>
            </p>");
    les éléments de la liste sont compris dans
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <option> Titre </option>

    Ce sont les titres qui proviennent de la base de données.

    Qd on crée un nouveau titre pour le voir dans la liste il faut faire le CTRL F5
    Voilà !
    Qu'en penses-tu ?

  6. #6
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Un simple rafraichissement via F5 ne suffit pas ?

    Note : affiche le code complet de ta page qui affiche ce qui ne marche pas , là on comprend pas grand chose à ce que tu fais
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2015
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    Voilà comment j'affiche le contenu de la base

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    mysqli_select_db($mysql_link,"$DB");
    $query = "SELECT * from planches WHERE degre = '$GradeTenue' and createur = '$Nom' AND statut = 'A' ";
    //                  Acquisition des lignes
    if (! $mysql_result=mysqli_query( $mysql_link,$query))
    {
    echo ("<p align=center><font size=2 face='Verdana, Arial, Helvetica, sans-serif' color='$CouleurTexte'>
    <b>L''accès aux planches n''a pas abouti</b></font></p>");
    }
    else
    //            fin de la lecture
    $rows = mysqli_num_rows($mysql_result);
    if ($rows == 0)
    {
    $Titre = "Pas de titre";
    echo ("<option> $Titre");
    echo ('</select>');
    echo ('</font></p>');
    PS: le F5 ne suffit pas à faire e refresh

  8. #8
    Membre du Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Août 2018
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Août 2018
    Messages : 40
    Points : 44
    Points
    44
    Par défaut
    une solution que j'utilise pour résoudre les problemes de cache si j ai bien compris le probleme ;
    est de coller un timestamp en variable get : qui ,ne sert a rien comme variable , mais qui sert a forcer le navigateur a ne pas passer par le cache , vu qu as chaque appel il y as changement de variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $timestp=time();
    echo ("<form action='CreationPlanche2.php?timestampbidon=$timestp' method='post'>
    <p>
    <input type='hidden' name='MotDePasse' value='$MotDePasse'>
    <input type='hidden' name='Titre' VALUE='$TitreSansSlashes'>
    </p>");
    les éléments de la liste sont compris dans
    <option> Titre </option>

  9. #9
    Membre du Club
    Homme Profil pro
    Architecte réseau
    Inscrit en
    Août 2018
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Architecte réseau

    Informations forums :
    Inscription : Août 2018
    Messages : 40
    Points : 44
    Points
    44
    Par défaut
    j ajoute une petite précision , l 'avantage du get est de détecter aussi les problèmes de favoris : et de faire un renvoi en douceur vers la premiere page de formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    <?php
    if ($_GET"timestampbidon"!==null AND is_numeric($_GET"timestampbidon") AND (time()-$_GET"timestampbidon")>3600*6)
        //si le timestamp est de format timestamp mais qu'il  est vieux(> 6heures)  il  y as toute les chance que l'internaute 
        //ai mise la page "CreationPlanche2.php?timestampbidon=xxxxxxx" en  favori , 
        //dans ce cas on fait un redirect  sans message d'erreur vers la page  principale :
        {
            header("Refresh:0; url=ma_page_principale.php");exit;
        }
     
    if ($_POST"valeur1"===null OR $_POST"valeur2"===null)
        {
         //cette  fois on affiche une erreur =
    echo <<<EOF
    <html>
    <head>
    <meta http-equiv="refresh" content="5;ma_page_principale.com">
    </head>
    <body>
    erreur  un des champs est vide ; vous allez etre redirigé vers la page principale dans 5 secondes
    </body>
    </html>
    EOF;
     
    exit;
     
        }
    //sinon  on continue le php 
     
    ?>

    après si il commence a avoir beaucoup de page qui utilisent des formulaires ; il serra peu etre plus simple de passer directement en session php.


    sinon on peu jouer aussi avec les meta html : j'ai essayé mais perso ca ma vite saoulé .

    http://www.i18nguy.com/markup/metatags.html

    car j ai jamais obtenu le même résultat sur plusieurs navigateurs différents récent ou pas , : bref je suis vite passé a ma solution qui marche a ma connaissance partout.

  10. #10
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Quelle sont les entête qu'il y'a sur ta page ?
    Le code que tu nous montre pour l'affichage n'a aucune notion de cache.

    Tu passerais pas par un proxy pour afficher tes pages qui ferais lui du cache ?
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2015
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2015
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    - Non il n'y a pas de proxy

    - mais j'utilise les sessions

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    session_cache_limiter('private');
    session_start();
    je passe des paramètres entre les pages successives....

    - ta solution : <a href="javascript: location.reload(true);">Recharger</a>,
    marche très bien.
    Merci pour tout

Discussions similaires

  1. [Interface] Comment modifier Offset d'une graphe style Bar par programme
    Par Xavier dans le forum C++Builder
    Réponses: 0
    Dernier message: 04/10/2019, 06h04
  2. Réponses: 2
    Dernier message: 21/12/2015, 08h59
  3. Réponses: 2
    Dernier message: 07/06/2008, 16h53
  4. [javascript] comment interrompre l'exécution d'un script?
    Par r0d dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 09/11/2006, 13h01
  5. comment forcer l'exécution des macros pour une seule base ?
    Par tristan_sauvage dans le forum Access
    Réponses: 4
    Dernier message: 21/08/2006, 11h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo