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 :

[SQL] vider le cache web


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 159
    Par défaut [SQL] vider le cache web
    bonjour,

    bon ben voila moi aussi hihi je voudrait vider le cache du web pour éviter les doublons dans ma page,
    a chaque fois que je charge ma page la variable que j'ai rempli avant est renvoyer une fois de plus donc dans ma table, pleins de doublon, quelqu'un peut m'aider ?

    merki bcp a VOUS

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Par défaut
    Bonjour,
    d'habitude pour éviter ce genre de désagrément on place un header('Location: page.php?msg=termine'); en fin de traitement. Cela renvoi sur la même page et si la variable $_GET['msg'] est initialisée, on affiche le message, sinon on traite le script.

    Dans le premier cas, appuyez sur F5 autant de fois que vous voulez, rien ne se passera.

    Cordialement,
    DaRiaN.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 159
    Par défaut
    merci pour votre rapidité, j'ai tenté ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    header("Pragma: no-cache");
        header("Expires: 0");
        header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
        header("Cache-Control: no-cache, must-revalidate");
    ce que vous me dite c'est bien de mettre ca :
    ('Location: page.php?msg=termine');
    à la fin de mon code page.php ok c'est ma page et location c'est quoi ?
    et j'utilise la method POST c'est un formulaire je peut utiliser GET ? de toute façon je voi pas trop la différence.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 159
    Par défaut
    ça ne marche pas ta solution après avoir réfléchi ma généré 127 ligne pas super quoi donc ben je ne s'est pac comment fair, c'est bien arrivé a quelqu'un de remplir un champs de formulaire et que la variable ce renvoie automatiquement ?

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Par défaut
    Votre programme doit fonctionner en 3 temps :

    - formulaire
    - traitement
    - résultat

    Et chacun de ces temps doit/peut avoir une page dédiée. Pour éviter de multiplier les pages, en général, on compartimente le code dans une seule page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
      if ($_POST) // si le formulaire a été utilisé
      {
        // traitement
        header('himself.php?msg=msg'); // une fois celui-ci fini on affiche le résultat
      }
      // si le message est initialisé
      else if ($_GET['msg']) echo $msg;
      else
      {
        // autrement on affiche le formulaire
        echo '<form></form>';
      }
    Voilà, maintenant tout le monde gère ça comme il le veut.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 159
    Par défaut
    en faite c'est un forulaire qui rempli une table je rentre un nom et s'ajoute dans ma table sauf que la j'entre un nom et je valide puis si je change de page et que je revien ou si je fait F5 pour recharger et mon formulaire se valide encor une fois et vue que dans la mémoir il y a encor le nom que j'ai rentré ben ca me le rajoute et je n'arrive pas à trouver de solution.

    tout est sur la même page enfin formulaire oui traitement oui et résultat dans ma base.
    une idée ?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 159
    Par défaut
    eu ton code je doit pas bien le comprendre ça ne marche po, on peut m'expliquer?

    c'est quoi message ?
    tu veut dir quoi par traitement ? la page s'appel toute seul et le msg=msg?
    et puis mon formulaire il fait parti de ma page il doit s'affichr tout le temps et pas juste a la 1er utilisation ou saisie.


    hihi c'est dur

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Août 2005
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 514
    Par défaut
    Essayez de séparer votre code :

    Page 1 (formulaire et message) :

    Code page1.php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php if (isset($_GET['msg'])) echo urldecode($_GET['msg'])."<br \>\n"; ?>
    <form name="form1" method="post" action="page2.php">
     <input type="submit" name="Submit" value="Envoyer">
    </form>

    Page 2 (traitement puis retour automatique au formulaire) :

    Code page2.php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
      // traitement mysql
      // création du message d'erreur ou de confirmation
      $msg = urlencode('Le traitement a été un succès');
      // retour à la page précédente pour afficher le résultat
      header('Location: page1.php?msg='.$msg);
    ?>

    Normalement, au retour, votre formulaire est vide et il n'y a aucun risque de doublons, car le traitement est sur une page séparée.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 159
    Par défaut
    ok je vais tester mais bon moi le but est vraiment de le mettre dans ma page pasque si je fait ça pour toute les pages ben je suis pas sortie MERCI bcp je test et puis si ca marche ben je ferais comme ça

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 159
    Par défaut
    cela produit erreur sql Query was empty, ça ma mis la même si je test avec empty du style :

    SI(EMPTY(mavariable))
    ALORS traitement

    donc cela marche toujours pas roo..

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 159
    Par défaut
    HIHIHIHIhihihiHIHIHIHI

    method POST c'est mieu, hihi

    Donc deux page une page1 formulaire qui envoie la variable a l'autre page2 qui est la page traitement qui fait et envoie la requete c'est transparant sur la page 1 et pas de doublon rien

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 159
    Par défaut
    OUPS MERCI DARIAN

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 6
    Par défaut
    Bonsoir à tous,

    je fais remonter ce post, car je rencontre le même problème et rien n'y fait.
    L'organisation de mes scripts est la même, et il s'agit d'ajouter des projets à une liste.
    - on a donc une page html avec le formulaire lorsque la variable $_GET['ajouter'] existe ;
    - lorsque le formulaire est validé, on traite les données postées dans un second script ;
    - ce dernier renvoie à nouveau sur la page html, mais en affichant la liste des projets (il n'y a pas de paramètre 'ajouter' dans l'url) et un lien qui permet d'ajouter un nouveau projet à la liste.
    Le problème, c'est que si je recharge la page après avoir validé le formulaire, le navigateur m'informe que la page contient des données post et si je clique OK, ça me remet un double des infos entrées en base.
    J'ai bien essayé les différentes solutions proposées, mais aucune ne fonctionne. Si quelqu'un a une idée, je lui en serai reconnaissant.
    Merci d'avance

  14. #14
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Tu peux éventuellement utiliser une variable de session...

    ou bien peut-être faire une redirection à la fin de ton script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="refresh" content="0;url=?p=1"/>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Toutes versions] Vider le cache excel des données web pour réactualisation ?
    Par Dan.exe dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 26/08/2019, 15h31
  2. [SQL] Vider une table
    Par philippef dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 22/03/2013, 19h20
  3. Vider le cache SQL pour forcer la lecture des pages
    Par ClearAlgo dans le forum Développement
    Réponses: 4
    Dernier message: 21/02/2012, 18h31
  4. [C#] Vider le cache d'un client
    Par dupin40 dans le forum ASP.NET
    Réponses: 6
    Dernier message: 26/09/2007, 11h21
  5. Vider le cache des archives
    Par Thrystan dans le forum Debian
    Réponses: 4
    Dernier message: 30/06/2005, 10h55

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