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

Langage PHP Discussion :

Recharger ma page après exécution du code


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 571
    Points : 803
    Points
    803
    Par défaut Recharger ma page après exécution du code
    Bonjour,
    Dans une application, je souhaite recharger une page après traitement.
    Si je fais un header('Location: mapage.php');, j'obtiens un magnifique "trop de redirections".
    Si je fais un require_once('mapage.php'), ma page n'est pas trouvé, alors que le nom de fichier est correct (cf. ci-dessus)
    Comment faire?

  2. #2
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 339
    Points : 5 724
    Points
    5 724
    Billets dans le blog
    1
    Par défaut
    Bonsoir,

    je ne comprends pas le rapport entre ce besoin de recharger et ton header ou ton require_once, mais il se peut que la fonction javascript reload te soit utile...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  3. #3
    Membre actif
    Homme Profil pro
    Webmaster - Développeur/intégrateur web
    Inscrit en
    Septembre 2011
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Jura (Franche Comté)

    Informations professionnelles :
    Activité : Webmaster - Développeur/intégrateur web
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2011
    Messages : 210
    Points : 246
    Points
    246
    Par défaut
    Bonjour,

    Effectivement, "header" et "require_once" n'ont pas du tout la même utilité, il y a peut être confusion...

    Pour le problème avec "header('Location: mapage.php')" :
    la page est redirigée "en boucle", probablement parce que la condition qui déclenche la redirection est toujours VRAI, il faudrait reprendre les paramètres de cette condition.

    Pour le problème avec "require_once('mapage.php')" :
    "require_once" n'est pas prévu pour afficher des pages, mais pour inclure un fichier PHP dans un autre fichier PHP.
    Si PHP affiche une erreur pour indiquer que le fichier n'a pas été trouvé, il faudrait revoir le chemin de ce fichier. À titre personnel, j'utilise systématiquement des chemins absolus dans ce type de fonction.
    Si vous avez besoin d'une librairie permettant de gérer facilement les fichiers et les dossiers en PHP... ou si vous êtes juste curieux(se) :
    https://github.com/moDevsome/moFilesManager

    N'hésitez pas à me faire un retour

  4. #4
    Membre du Club
    Femme Profil pro
    particulier
    Inscrit en
    Juillet 2020
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : particulier

    Informations forums :
    Inscription : Juillet 2020
    Messages : 51
    Points : 59
    Points
    59
    Par défaut
    Bonjour,

    Et pourquoi en modifiant
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="refresh" content="durée;URL=adresse-de-destination">
    avec "durée" en secondes, 0 dans ton cas et $PHP_SELF ?

  5. #5
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Le plus simple serait de nous dire pourquoi et dans quel contexte tu veux faire cela pour que l'on te donne la meilleur solution.

  6. #6
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Bonsoir,

    Dans une application, je souhaite recharger une page après traitement.
    Tout dépend si cette page est autre que celle en cours.

    Si c'est ta page en cours un simple btn submit sous <form> suffit.

    DS7

  7. #7
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 339
    Points : 5 724
    Points
    5 724
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Droïde Système7 Voir le message

    Si c'est ta page en cours un simple btn submit sous <form> suffit.

    DS7
    Sauf que je crois avoir compris que ça devait se faire sans action utilisateur...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  8. #8
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Laurent, en ce cas en bas de son code, il peut obtenir la simulation d'un click sur un btn submit.

    Mais pour l'instant, nous sommes tous devenus Madame Irma

    DS7

  9. #9
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 339
    Points : 5 724
    Points
    5 724
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Droïde Système7 Voir le message
    en bas de son code, il peut obtenir la simulation d'un click sur un btn submit.
    Merci de me dire comment ; ça m'intéresse.
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  10. #10
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Merci de me dire comment ; ça m'intéresse.
    Laurent, si seulement PHP le pouvait !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
                            .../...
    				// Finalement simuler un click sur btn submit
    				// Lancer JS HORS PHP
    		?>
    				<script type="text/javascript">
    					//	alert('toto !');	
    					var myform = document.getElementById("myform");
    					myform.submit();
    				</script>
    		<?php			
    		}	
     
    myform est le nom de la <form>
    DS7

  11. #11
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 571
    Points : 803
    Points
    803
    Par défaut
    Bonjour et merci à tous.
    Absent quelques jours, vous avez du vous demander pourquoi je pose une question et ne donne plus signe de vie.
    Je précise mon problème.
    Je veux faire une sélection de codes NAF en cinq étapes (Section, division, groupe, classe et sous-classe):
    J'ai 3 fichiers:
    1) Le fichier de contrôle 'customerActivities.php' (premier fichier) qui prépare le formulaire avec une liste d'options de toutes les sections (premier niveau).
    2) J'ai un formulaire (second fichier vue 'formActivities.php') qui au départ affiche une liste d'options pour le choix de la section.
    3) Lorsque je sélectionne une section dans la liste, un script JavaScript soumet automatiquement le formulaire au fichier de traitement (troisième fichier 'formActivitiesHandler.php'). Ce fichier génère alors la liste des seules divisions qui appartiennent à la section choisie (deuxième niveau) et ajoute au formulaire 2) la liste des divisions de la section choisie (premier appel header('Location:...').
    4) Lorsque l'utilisateur sélectionne une division, on reprend le processus à l'étape 3) pour le choix du groupe et ainsi de suite jusqu'au cinquième niveau d'où un deuxième, un troisième et jusqu'à cinq appels au header('Location:...').

    Il me semble que les fichiers 'customerActivities.php' et 'formActivitiesHandler.php' devraient être fondu en un seul.

    A noter pour information que ce processus s'inscrit dans une page mère qui comprend d'autres fonctionnalités et que le header renvoie à cette page mère.

  12. #12
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 339
    Points : 5 724
    Points
    5 724
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    selon moi, ce problème est complètement différent du besoin exprimé au post #1...

    Tu sembles avoir déjà fait quelque chose mais tu ne donnes aucun détail. Je pense utile que tu donnes le code...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  13. #13
    Membre du Club Avatar de RinaBK
    Femme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2021
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2021
    Messages : 92
    Points : 64
    Points
    64
    Par défaut
    Ce que je ne comprends pas, c’est que tu cherches à inclure des fichiers sur ta page ou à rediriger l’utilisateur sur une autre page ? Car c’est deux choses bien différentes.

    Bon, je précise que je n’ai pas trop compris ce que tu cherches à faire, mais si je comprends bien ton problème, tu te retrouves avec trop de redirection, car tu obliges le code de passer de fichier en fichier non-stop. Je pense que pour éviter cela, tu devrais peut-être casser l’automatisme en obligeant de cliquer sur un bouton pour soumettre par exemple le formulaire. Ou du moins quelque chose qui évitera que ton code se retrouve avec trop de redirection à faire pour que les fichiers s’exécutent. OU utiliser des class() et des function() qui sont appelées au lieu d’appeler des fichiers.
    • On dit que le ridicule ne tue pas; On dit aussi que ce qui nous tue pas, nous rends plus fort; Alors pourquoi ne pas dire : Le ridicule nous rends plus fort !
    • On reproche aux gens de parler d'eux-même; C'est pourtant le sujet qu'ils traitent le mieux !

  14. #14
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Utilises ajax, ce sera beaucoup plus optimisé et convivial pour les utilisateurs.

    En première intention tu fais afficher en php toutes les sections. Ensuite quand on clique sur une section tu déclenches une requête ajax qui renverra les options correspondantes à cette section, et quand on clique sur une option tu déclenches une requête ajax qui renverra les divisions correspondantes, etc. Tu peux faire autant de niveaux que tu veux avec cette méthode sans avoir à rafraichir ta page. Et en plus ce sera optimisé puisque justement il n'y a pas a recharger des pages complètes, mais simplement de modifier le DOM avec javascript.

    Si tu veux tout faire en php , ça sera beaucoup moins convivial puisqu'il faudra x rafraichissements avant d'avoir le résultat. Cela dit si tu met ta redirection à l'intérieur dune condition post il n'y aura qu'une redirection à chaque fois:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (isset($_POST['section']))
    {
    //...
    header('Location...
     
    }
    Sion il existe aussi la possibilité de tout charger en php (si les données ne sont pas très nombreuses) et ensuite de faire les listes en javascript sans passer par ajax. Un exemple ici.

    Je te conseillerais plutôt d'utiliser Ajax, car ce sera plus simple niveau code, et surtout c'est une technique qui pourra te resservir dans de nombreux cas très différents. Ajax est un complément idéal pour php qu'il est bon de connaître.

  15. #15
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 339
    Points : 5 724
    Points
    5 724
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par ABCIWEB Voir le message

    Je te conseillerais plutôt d'utiliser Ajax, car ce sera plus simple niveau code, et surtout c'est une technique qui pourra te resservir dans de nombreux cas très différents. Ajax est un complément idéal pour php qu'il est bon de connaître.
    Moi qui ne maitrise pas Ajax, j'aurais fait ça avec une bdd MySQL et donc pour les contenus des listes, on les obtiendrais avec des requêtes SQL. C'est pas jouable ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  16. #16
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Si c'est jouable mais pas agréable pour l'utilisateur, et aussi plus long puisqu'il y aura plusieurs pages à afficher. Mais oui dans l'ancien monde c'était faisable uniquement en php et on utilisait souvent des variables de session pour mémoriser les variables de page en page.

  17. #17
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 339
    Points : 5 724
    Points
    5 724
    Billets dans le blog
    1
    Par défaut
    J'aime bien "l'ancien monde" C'est pas gentil de me traiter de vieux (même si c'est bientôt le cas).

    Pourquoi c'est moins bien pour l'utilisateur ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  18. #18
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    J'aime bien "l'ancien monde"
    Pourquoi c'est moins bien pour l'utilisateur ?
    Cela fait plus d'une dizaine d'années qu'on utilise Ajax, et plus généralement javascript comme complément de php. Et en informatique ça fait beaucoup surtout quand cela apporte notablement plus de fonctionnalités. Autant un utilisateur ne voit pas le passage entre mysql et pdo autant javascript permet plus de choses et plus rapidement. Et je te l'ai déjà dit pourquoi c'était mieux, parce que c'est plus rapide car il n'y a pas besoin de recharger toute la page.

    Parfois cela permet de faire des choses qu'on aurait pas pu faire autrement comme ce module d'upload Ajax/Php qui permet de surpasser les limitations serveur "upload_max_filesize", "post_max_size" et "max_file_uploads", en découpant si besoin le fichier en plusieurs fragments et en recompilant le fichier complet côté serveur. L'autre avantage en plus de n'avoir pas de limite de taille ni de nombre c'est que cela permet d'afficher de nombreuses informations en temps réel, progression, temps restant, prévisualisation des photos si le fichier est une image..., et d'autres fonctionnalités comme le recadrage des photos avant upload, la reprise d'un fichier arrêté en cour d'upload en utilisant la sauvegarde effectuée, la possibilité de modifier l'affichage du formulaire en fonction du retour des informations en temps réel, etc.

    Toutes ces fonctionnalités ne seraient pas possibles avec un script 100% php, idem pour les diapobox ou l'agrandissement d'image pour voir le détail d'un produit. Donc c'est à la fois des fonctionnalités parfois indispensables mais aussi des fonctionnalités qui améliorent la fluidité comme dans la création d'un panier d'achat dans un site ecommerce, ou encore comme dans le cas présent qui concerne des listes liées. L'utilisation de javascript/Ajax marque donc clairement un changement majeur, qui favorise l'interactivité et la fluidité et c'est pour cette raison que l'on parle de WEB 2.0 comparé au WEB 1.0 où l'on utilisait peu ou pas cette technologie.

  19. #19
    Membre éclairé
    Homme Profil pro
    Ingénieur en électrotechnique retraité
    Inscrit en
    Décembre 2008
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur en électrotechnique retraité

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 571
    Points : 803
    Points
    803
    Par défaut
    Merci pour vos réponses.
    J'utilise assez régulièrement JavaScript par contre les quelques essais que j'ai fait avec Ajax m'ont dissuadé d'utiliser cette technique.
    Actuellement mes listes sont alimentées par des requêtes MySQL et mon formulaire est automatiquement soumis chaque fois que l'utilisateur sélectionne une option dans une des listes.
    Je suis en train de complètement réécrire mon code PHP de traitement du formulaire. Si j'ai encore des difficultés, je vous donnerai mon code.

  20. #20
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 339
    Points : 5 724
    Points
    5 724
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par moimp Voir le message
    J'utilise assez régulièrement JavaScript par contre les quelques essais que j'ai fait avec Ajax m'ont dissuadé d'utiliser cette technique.
    je suis dans le même cas mais le discours de ABCIWEB me convainc qu'il faudrait y revenir...Par contre, je m'interroge : on doit gérer des listes de données dont la longueur est inconnue à priori. Avec SQL, un SELECT puis un fetch (PDO), je vois bien, mais autrement...Bon faut croire que c'est possible...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Recharger la page après fonction php
    Par leroidje dans le forum Langage
    Réponses: 3
    Dernier message: 08/10/2009, 17h31
  2. [javascript/html] Recharger une page après choix dans liste
    Par pitchoblack dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 20/04/2008, 17h58
  3. Réponses: 6
    Dernier message: 19/02/2008, 12h45
  4. [javascript/php]Recharger une page après choix dans liste déroulante
    Par eyango dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/01/2008, 14h34
  5. Rechargement de page après envoi de fichier
    Par marieR dans le forum Struts 1
    Réponses: 11
    Dernier message: 30/01/2007, 15h40

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