Maison  >  Article  >  développement back-end  >  Comment résoudre le problème selon lequel PHP ne peut pas accéder directement à la page d'accueil

Comment résoudre le problème selon lequel PHP ne peut pas accéder directement à la page d'accueil

PHPz
PHPzoriginal
2023-04-12 14:44:31542parcourir

PHP, en tant que langage de programmation, n'est en aucun cas parfait. Bien qu’il soit puissant, nous rencontrons parfois encore quelques problèmes. L’un d’eux est que PHP ne peut pas accéder directement à la page d’accueil.

Lorsque nous utilisons PHP pour développer un site Web, nous avons généralement une page d'accueil (index.php). Lorsqu'ils accèdent à un site Web, les utilisateurs accèdent généralement à la page d'accueil en saisissant l'URL. Par exemple, lorsque nous visitons foo.com, nous accédons généralement à foo.com/index.php.

Mais parfois, nous devons accéder directement à la page d'accueil au lieu de passer d'abord à index.php, puis à la page d'accueil. Pour le moment, nous allons essayer d'utiliser du code PHP pour implémenter cette fonction, par exemple :

header('Location: http://foo.com');

Cependant, lorsque nous exécutons ce code, nous constatons que la page ne peut pas accéder à la page d'accueil. Pourquoi est-ce ?

La raison est que lorsque nous utilisons la fonction header() pour sauter, nous ne devons rien sortir avant la fonction header(). Sinon, la fonction header() signalera une erreur, empêchant le saut de page.

Par exemple, le code suivant empêchera la fonction header() de fonctionner correctement :

echo 'Hello, World!';
header('Location: http://foo.com');

Parce que « Hello, World ! » a été affiché avant d'appeler la fonction header(), la fonction header() ne fonctionnera pas correctement. .

Alors, comment résoudre ce problème ?

Tout d’abord, nous devons nous assurer que rien n’est affiché avant d’appeler la fonction header(). Ceci peut être réalisé en plaçant le code PHP avant le HTML ou en utilisant des fonctions OB pour mettre en cache la sortie. Par exemple, le code suivant peut fonctionner normalement :

ob_start();
echo 'Hello, World!';
ob_end_clean();
header('Location: http://foo.com');

Deuxièmement, nous pouvons ajouter un code de saut à index.php pour rediriger l'utilisateur vers la page d'accueil. Par exemple :

if ($_SERVER['SCRIPT_FILENAME'] === __FILE__) {
    header('Location: http://foo.com');
    exit;
}

Ce code déterminera si le fichier actuel est directement accessible et redirigera l'utilisateur vers la page d'accueil. Notez que l'instruction exit doit être ajoutée, sinon le code suivant continuera à être exécuté.

En bref, bien que PHP ne puisse pas accéder directement à la page d'accueil, nous pouvons réaliser cette fonction grâce à certaines techniques. Il est important de s'assurer que rien n'est affiché avant la fonction header() pour éviter les erreurs.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn