2010-09-08 3 views
0

Je voudrais faire geler mon script PHP à l'écran pendant au moins 5 secondes avant de le charger dans le script suivant. J'ai essayé "Sleep()" mais ce n'est pas la fonction que je recherche car elle ne fait que mettre en pause le script qui "va" être chargé.Comment figer un script PHP pendant quelques secondes?

Voici mes codes:

echo "Welcome ",$_SESSION['username']."<br>"; 
    echo "Click here to Logout : ".'<br><a href="logout.php">Logout</a>'; 

    sleep(10); 

    header("Location: http://192.168.11.32/phploginserver/test.php"); 

    echo '<script type="text/javascript">window.location="test.php"</script>';  
} 

Je voudrais l'echo'to une autre page » à être retardée pendant au moins 5 secondes avant leur chargement afin que mes utilisateurs peuvent voir leur nom d'utilisateur avant d'être automatiquement redirigé vers la page suivante.

Répondre

0

Vous ne pouvez pas geler le script PHP à l'écran. Simplement parce qu'il n'y a pas de scripts PHP à l'écran. Mais simplement HTML, rendu par le navigateur.

Un tel gel considéré comme une mauvaise pratique et ne sont pas utilisés de nos jours.
Soit afficher un message, si c'est vraiment important, soit amener l'utilisateur à la destination immédiatement (de préférence).
Vous pouvez utiliser certains conseils alimentés par AJAX, comme le fait stackoverflow.

afin que mes utilisateurs peuvent voir leur nom d'utilisateur

Ne savent-ils déjà?
Ne peuvent-ils pas le voir sur la page suivante?
Et si un utilisateur était dérangé et ne remarquait pas ce message?

+2

Je fais juste quelques pentesting ici. Vous pouvez vous détendre un peu monsieur. – JavaNoob

+0

@Java quel est le point de tester la technologie inutile et obsolète? Ce n'est pas le moment de se détendre, car vous ne connaissez pas les bases. Apprendre fort et au fil du temps, vous pouvez atteindre un certain respect. –

+1

Eh bien j'ai eu à tester afin d'apprendre la même chose pour la célèbre citation "bidouiller pour apprendre au lieu d'apprendre à pirater" de toute façon je suppose que votre réponse était bonne. Il semble que personne d'autre ne sait comment le faire correctement. – JavaNoob

0
$time = new DateTime(); 
$newtime = $time->Modify("+5 seconds"); 



while($newtime > (new DateTime())) 
    { 
    // Do nothing 
    } 
+0

Vous pouvez simplement utiliser pause (5); pour une version plus courte de vos codes. – JavaNoob

0

Vous pouvez utiliser un paramètre supplémentaire avec l'en-tête php pour le retarder. Comme ceci:

header('Refresh: 10; url=http://192.168.11.32/phploginserver/test.php');