Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/04/2011, 00h41   #1
Invité de passage
 
Inscription : mars 2011
Messages : 4
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 4
Points : 0
Points : 0
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 :
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?
wbnet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 01h05   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Tu ne peux pas modifier les en-têtes après avoir fait un affichage.
Tu peux par contre une simple redirection HTML.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 01h28   #3
Membre du Club
 
Inscription : juin 2004
Messages : 30
Détails du profil
Informations forums :
Inscription : juin 2004
Messages : 30
Points : 43
Points : 43
tu peut le faire en javascript

Code :
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>
	';
}
?>
moogli est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 01h47   #4
Membre Expert
 
Inscription : septembre 2010
Messages : 1 242
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 242
Points : 1 564
Points : 1 564
@moogli
Oui mais y'avait une petite erreur au départ :

Code :
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']
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 13h07   #5
Invité de passage
 
Inscription : mars 2011
Messages : 4
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 4
Points : 0
Points : 0
Merci je vais essayer tout ça
wbnet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2011, 13h59   #6
Membre Expert
 
Avatar de gene69
 
Inscription : janvier 2006
Messages : 951
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 : 951
Points : 1 063
Points : 1 063
d'ailleurs header() comme son nom l'indique ne peut pas être utilisé après un écho (du moins sans output_buffer).
__________________
PHP fait nativement la validation d'adresse électronique Vous êtes perdu en PHP? rassurez-vous ici (en)
Utilisez le bouton résolu!
gene69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h04.


 
 
 
 
Partenaires

Hébergement Web