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

EDI, CMS, Outils, Scripts et API PHP Discussion :

Actualiser une page après un "header location"


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 7
    Points : 1
    Points
    1
    Par défaut Actualiser une page après un "header location"
    Bonjour,

    J'utilise sur l'une de mes pages un formulaire qui me permet d'effacer des enregistrement dans une Bd Mysql.

    Dans ce formulaire je rapatrie les événements d'un agenda entre autre les champs "ville" et "date_fin" cela pour permettre d'effacer les événement echus. Je n'ai qu'une ligne dans ce formulaire car je rapatrie l'événement le plus ancien grace à un tri sur "date_fin".
    J'ai un bouton "supprimer" qui appel une autre page qui contient le code php nécéssaire à l'effacement avec la fonction DELETE. Dans cette page j'ai un "Header location" qui me raméne à la page précédente.

    Mais le problème se situe à ce niveau, tout fonctionne correctement l'enregistrement concerné est bien effacé dans la Bd mais lorsque je suis redirigé sur ma 1er page j'ai toujours le même événement dans mon formulaire (qui pourtant n'existe plus dans ma Bd).
    Je pense que cela est du à un problème d'actualisation, mais comment forcer le rafraichissement de cette page après le "Header location" ?

    Merci de vote aide.

    Salutations.

  2. #2
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    salut,
    montre le code de la page qui fais la suppression et le header s il te plait
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Salut,

    Voici le code concerné :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php require_once&#40;'Connections/connexionxxxxx.php'&#41;; ?>
    <?php
    mysql_select_db&#40;"agenda"&#41;;
    include &#40;"acces_mairie_moselle.php"&#41;;
    //RECUPERATION DES DONNEES
    $ville = $row_rsagenda&#91;'ville'&#93;;
    $date_fin = $row_rsagenda&#91;'date_fin'&#93;;
    $query = "DELETE FROM agenda WHERE ville='$ville' AND date_fin='$date_fin'";
    $result=mysql_query&#40;$query&#41;;
    $query="OPTIMIZE TABLE $table_agenda";
    $result=mysql_query&#40;$query&#41;;
    mysql_query&#40;$query&#41; OR die&#40;mysql_error&#40;&#41;&#41;;
    header&#40;"Location&#58;acces_mairie_moselle.php"&#41;;
    ?>
    @+

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 150
    Points : 186
    Points
    186
    Par défaut
    Bonjour,

    Il suffit d'ajouter quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       <meta http-equiv="refresh" content="0;URL=http&#58;//example.com/page.html">
    Ca ne dépend pas de Javascript > même js désactivé ça fonctionne

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Merci pour ta réponse, mais ou dois-je rajouter cette ligne?
    Dans le header location? ou ailleurs?

    Merci

    Salutations.

  6. #6
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Salut

    Dans le <head> de ta page par exemple.
    Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
    C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Au risque de passer pour un blaireau
    j'ai mis cette ligne dans le head de ma page mais cela fait que ma page ne cesse de se charger en permanence.
    J'ai du rater quelque chose!!!

    @+

  8. #8
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Apparemment, ça se passe dans ta page (acces_mairie_moselle.php)
    C'est celle qui contient le formulaire si je comprends bien.
    Et tu dois avoir une variable dans cette page qui maintient l'événement dans ton formulaire.
    Tu peux poster ta source stp ?
    Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
    C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    C'est bien dans la page là que je l'avais mis.

    Je te joint que la partie du code concerné parce qu'il y a plein d'autre truc sur la page et le code va faire 3Km :


    Code qui capte la valeur "ville" de la page d'authentification avant l'accès à la page "acces_mairie_moselle.php"


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?session_start&#40;&#41;;
    if &#40;!isset&#40;$ville&#41;&#41; session_register&#40;"ville"&#41;; 
    if &#40;$statut!="client"&#41;
    &#123;header&#40;"location&#58;login_mairie_moselle.php"&#41;;&#125;
    ?>
    Le code qui rapatrie les valeurs "ville" et "date_fin" de ma Bd "agenda" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php  mysql_select_db&#40;$database_connexionxxxxx, $connexionxxxxx&#41;;
    $query_rsagenda = "SELECT ville, nom, date_fin FROM agenda WHERE ville='$ville' ORDER BY date_fin ASC";
    $rsagenda = mysql_query&#40;$query_rsagenda, $connexionxxxxx&#41; or die&#40;mysql_error&#40;&#41;&#41;;
    $row_rsagenda = mysql_fetch_assoc&#40;$rsagenda&#41;;
    $totalRows_rsagenda = mysql_num_rows&#40;$rsagenda&#41;;
    ?>
    Le 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
    <form action="delete_agenda2.php" name="form3" method="post">
    <table width="100%" border="0">
    <tr>
    <td colspan="4" scope="col"><div align="center">Merci de supprimer tous les &eacute;v&eacute;nements pass&eacute;s </div></td>
    </tr>
    <tr>
    <th scope="row"><div align="left">Date fin</div></th>
    <td><strong>Ville</strong></td>
    <td><strong>Ev&eacute;nement</strong></td>
    <td>&nbsp;</td>
    </tr>
    <tr>
    <th scope="row"><div align="left"><span class="Style2"><?php echo $row_rsagenda&#91;'date_fin'&#93;; ?></span></div></th>
    <td><span class="Style2"><?php echo $row_rsagenda&#91;'ville'&#93;; ?></span></td>
    <td><div align="left"><span class="Style2"><?php echo $row_rsagenda&#91;'nom'&#93;; ?></span></div></td>
    <td>
    <input name="date_fin" type="hidden" id="date_fin" value="<?php echo $_SESSION&#91;'date_fin'&#93;; ?>">
    <input name="ville" type="hidden" id="ville" value="<?php echo $_SESSION&#91;'ville'&#93;; ?>">
    <input name="supprimer" type="submit" id="supprimer" value="Supprimer"></td>
    </tr>
    </table>
    </form>
    Voilà, chez pas si tout ca est bien clair :

    @+

  10. #10
    Membre éprouvé Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Points : 1 019
    Points
    1 019
    Par défaut
    Suggestion :

    Une fois que le delete a été réalisé, essaye (pour test) de modifier l'url de ton header, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header&#40;"Location&#58;acces_mairie_moselle.php?ville=\"\""&#41;;
    De cette façon, ta variable "ville" n'est pas plus identifiée et elle devrait être ignorée lorsque tu relances ta page.

    Il y a autre chose qui m'intrigue dans ta souce, c'est quoi la raison de cet include (include ("acces_mairie_moselle.php") ?
    Ton header renvoie vers (acces_mairie_moselle.php) qui fait déjà l'objet d'un include dans ta source.
    Je t'avoue que je pige pas la philosophie du truc.
    Ce n'est pas parce que les choses sont difficiles qu'on n'ose pas les entreprendre.
    C'est parce qu'on n'ose pas les entreprendre qu'elles sont difficiles.

  11. #11
    Membre habitué
    Inscrit en
    Avril 2005
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 269
    Points : 172
    Points
    172
    Par défaut
    Perso dans la page qui appelle ton script de delete je passe avec la methode Get une url de retour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form action=mapagededelete.php?url_retour=$url>
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $url = 'acces_mairie_moselle.php';
    et dans le header de ta page de delete tu fais au tout debut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <?
     header&#40;'Location&#58; '.$_GET&#91;'url_retour'&#93;&#41;;
    pour te permettre de revenir a ta page et ca prend les changements en compte et ca marche nickel c'est testé lol

    Au pire si la methode get ne te plait pas tu peux l'inclure dans ton post en passant l'url_retour dans un champ caché

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input name=url_retour type=hidden value=$url>
    avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $url =  'acces_mairie_moselle.php';
    et dans la page de ton script de delete c'est tjours pareil sauf que la methode a changée donc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     header&#40;'Location&#58; '.$_POST&#91;'url_retour'&#93;&#41;;

  12. #12
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Re bonjour,

    Je vais essayer vos propositions, merci.

    Pour répondre à "alain31tl" concernant la philosophie de mon code
    Je suis grand débutant devant l'éternel en Php (et en général aussi).
    Etant incapable de construire du code en partant d'une feuille blanche, je grapille à droite et à gauche dans des forums, des bouquins, ou des scripts que je modifie pour essayer d'arriver à ce que je veux. (c'est pas gagné )

    Ceci explique surement pourquoi il y a parfois des bouts de code qui n'on rien à faire là. Mais comme sa marche (défois), ne sachant pas vraiment à quoi ca sert, ben je le laisse.

    Mais dans ce cas précis, je crois que c'est parceque la page "delete.php" n'est pas une page en soit, dans la mesure ou elle ne contient que le code de DELETE qui s'execute par rapport à des variables issues de la page précédente entre autre "acces_mairie_moselle.php" (d'ou l'include).

    Enfin, je crois.

    @+

  13. #13
    Membre habitué
    Inscrit en
    Avril 2005
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 269
    Points : 172
    Points
    172
    Par défaut
    Ou la en effet le include('moselle...') n'a rien a faire dans ta page delete.php
    les variables que tu recupère faut les passées avec une methodes Get ou Post et les recupere comme cela

    $_GET['lenomdetavariable'] ou $_POST['lenomdetavariable']

    car si ton include ne te fais pas buguer et bien perso je suis un moine tibétains qui eleve des chevres dans le larzac... mdr
    ou bien ta page moselle truc muche est bizaremment gaulés
    Hesite pas si tu as un soucis avec ton script la car c'est vachement gérable je suis en train de faire le sit de la societe de mon pere et j'utilise pas mal ce systeme ...

  14. #14
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 7
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    J'ai essayé de supprimer la ligne "include" mais sa provoque une erreur sur la page.
    Je pense que cette ligne est nécessaire parce que je n'utilise pas Post ou Get mais une SESSION pour passer les valeurs d'une page à l'autre.

    Le problème du Get c'est qu'on voit les valeurs passer dans l'URL du navigateur, et pour le GET et le POST je ne sais pas si on peut faire durer les variables au delà d'un passage d'une page à l'autre.
    Je m'explique, si je passe $ville dans l'url je récupére bien $ville sur la page suivante, mais si sur cette page j'actualise je perd $ville. A moins que quelque chose permette de faire durer cette variable?

    @+

  15. #15
    Membre éprouvé
    Inscrit en
    Juillet 2004
    Messages
    1 027
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 027
    Points : 1 164
    Points
    1 164
    Par défaut
    Le problème du Get c'est qu'on voit les valeurs passer dans l'URL du navigateur, et pour le GET et le POST je ne sais pas si on peut faire durer les variables au delà d'un passage d'une page à l'autre.
    Bof c'est pas grave de voir les variables dans l'url. internet existe depuis quelques temps deja et les gens y sont habitués.... Ne reste plus que les %ù!&&2#"µ7_ moter de recherche fainenant au possible, mais c'est une autre histoire.

    Pour ce qui est de la durée de vie d'une variable c'est à toi de le définir... Et non pas laisser la session s'en occuper jusqu'à ce qu'elle se déperisse.

    Je m'explique, si je passe $ville dans l'url je récupére bien $ville sur la page suivante, mais si sur cette page j'actualise je perd $ville
    Tu utilies du POST ? Je pense qu'ici tu en fais une mauvaise utilisation, repasse en get.

    bye

    PS : Utilises ces différentes possiblités mis à ta disposition à bon escient et n'essaie pas de les travestir tu vas te compliquer la vie plus qu'autre chose ! Et surtout cela ne sert à rien de perdre intuilement son temps dans de vain efforts, mieux vaut perdre ce temps entre amis

  16. #16
    Membre habitué
    Inscrit en
    Avril 2005
    Messages
    269
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 269
    Points : 172
    Points
    172
    Par défaut
    C'est pas tres bons de mettre des variables dans ta session car tu va tellement en mettre que tu ne va meme plus savoir lesquels sont detruites et lesquelles ne le sont pas

    La meilleure methode a mon avis c'est GET c'est pas grave qu'on le boit dans lurl si tu trimballe des variables de login ou des pass ou des variables confidentielles il est preferables de les passées en POST mais sinon reste en GET . tout les site de vente en ligne ou autres s'en servent comme tu peux le voir dans l'url lorsque tu te balade dessus.

    Les variables de sessions je les gardes "perso" uniquement pour les variables de login etc... une session utilisateurs toutes les autres e me sert de GET sauf les donnée que je ne veux pas visible

    VOila

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/07/2014, 10h35
  2. actualiser une page apres un click sur un lien
    Par diengkals dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 30/05/2012, 19h11
  3. afficher une page après actualisation
    Par vives67410 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/11/2007, 11h24
  4. Actualiser une page après validation form
    Par toffff dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/04/2007, 19h48

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