2011-03-03 5 views
0

J'ai un simple inclure pour mon nouveau projet. Ce qui se passe est que mon fichier inclus vérifie quelques fonctions et affiche les résultats.PHP Inclure sommeil sur le fichier principal

S'il y a une sorte de erreur Je veux qu'une simple redirection se produise. Le problème que j'ai est que le reste du fichier principal (qui a l'include sur) continue à charger pendant quelques secondes, avant que la redirection puisse être complète.

Y a-t-il un moyen de de dormir le fichier principal pendant que les vérifications sont effectuées?

Merci!

EDIT @ Dan:

Une partie du fichier inclus:

function redirect($url) { 
    if(!headers_sent()) { 
     header('Location: '.$url); 
     exit; 
    } else { 
     echo '<script type="text/javascript">'; 
     echo 'window.location.href="'.$url.'";'; 
     echo '</script>'; 
     echo '<noscript>'; 
     echo '<meta http-equiv="refresh" content="0;url='.$url.'" />'; 
     echo '</noscript>'; 
     exit; 
    } 
} 

$url = "http://www.whatever.com/"; 
redirect($url);  
exit; 

Répondre

1

Utilisez die ou exit pour arrêter l'exécution lorsque vous arrivez au point que vous souhaitez rediriger.

+0

Cela ne semblait pas fonctionner. Toujours chargé le fichier principal avant la redirection. –

+2

Puisqu'il n'est pas possible que l'exécution continue après 'exit', il est maintenant temps pour vous de partager votre code actuel. S'il vous plaît le modifier dans votre question. –

0

que vous incluez PHP avec HTML?

Si vous mettez tout votre code HTML dans des chaînes PHP et ne les affichez pas jusqu'à ce que votre traitement soit terminé, cela devrait fonctionner.

+0

Ou utilisez les fonctions de tampon de sortie. [link] (http://www.php.net/manual/en/ref.outcontrol.php) – Guttsy

0

Les quelques secondes que vous voyez sont en réalité le navigateur qui envoie la demande de redirection et attend une réponse. À moins que le lien entre vous et le client n'ait une latence nulle et que votre serveur puisse répondre instantanément, il y aura toujours une pause pour la redirection.