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 :

Faire patienter puis exécuter une fonction


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 4
    Par défaut Faire patienter puis exécuter une fonction
    Bonsoir à tous,

    Je cherche un moyen pour afficher un echo, puis après 3 secondes, exécuter la fonction header().

    Par exemple, un membre change son mot de passe dans son profil : il valide, on envoie un get "modified" qui correspond à plusieurs actions.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if(isset($_GET['action']) == "modified")
    {
    	session_destroy();
    	print "La modification a bien été prise en compte,
    	veuillez patienter nous allons vous rediriger
    	vers la page de connexion.";
    	sleep(3);
    	header("Location:login.php");
    }
    Bien sûr ce code ne marche pas tout à fait car le chargement de la page prend bien 3 secondes mais au final on ne voit pas le message.

    Je cherche donc un moyen d'effectuer chacune des actions à tour de rôle (contrairement à l'exemple qui envoie tout d'un coup) :

    1) session_destroy(); + print "Message...";
    2) sleep(3) > laisse le temps de lire le message
    3) header(...) > boum redirection

    Une idée?

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu ne peux pas modifier les en-têtes après avoir fait un affichage.
    Tu peux par contre une simple redirection HTML.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éprouvé Avatar de moogli
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 58
    Par défaut
    tu peut le faire en javascript

    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
    <?php
    session_start();
    if(isset($_GET['action']) == "modified")
    {
    	session_destroy();
    	print "La modification a bien été prise en compte,
    	veuillez patienter nous allons vous rediriger
    	vers la page de connexion.";
    	echo '
    	<script type="text/javascript">
    		function bouge() {
    		document.location.href = "login.php"
    		}
    		window.setTimeout("bouge()",5000);
    	</script>
    	';
    }
    ?>

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 420
    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 420
    Par défaut
    @moogli
    Oui mais y'avait une petite erreur au départ :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $_GET['action'] = "toto";
    if(isset($_GET['action']) == "modified")
    {
    echo 'get_action = '.$_GET['action'];
    }
    fonctionne quelque soit la valeur définie de $_GET['action']

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 4
    Par défaut
    Merci je vais essayer tout ça

  6. #6
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    d'ailleurs header() comme son nom l'indique ne peut pas être utilisé après un écho (du moins sans output_buffer).

Discussions similaires

  1. [Débutant]Comment exécuter une fonction tous les jours
    Par pseudomh dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 21/06/2006, 17h10
  2. Exécuter une fonction sur le onchange d'un select
    Par Lung dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 20/06/2006, 16h05
  3. Réponses: 5
    Dernier message: 28/04/2006, 15h40
  4. Est-il possible d'exécuter une fonction à partir de fichier
    Par magic8392 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 16/09/2005, 14h59
  5. [VB.NET] Exécuter une fonction VB sur un Datagrid
    Par MiJack dans le forum Windows Forms
    Réponses: 3
    Dernier message: 24/09/2004, 15h45

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