Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 27/01/2019, à 22:21

Anard

PHP : header HTTP renvoie une page blanche

Bonjour,

Je suis en train de mettre en place un site web.
Pour le moment uniquement en local le temps de mettre toutes les redirections nécessaires et de vérifier que tout fonctionne.
Pour le moment, j'ai un htaccess avec les commandes ErrorDocument suivies de quelques redirections du ModRewrite.
J'ai essayé d'aller vers une page inexistante et ma page d'erreur 404 est correctement affichée.

Maintenant, avant de pouvoir mettre mes premières pages en ligne, je voudrais pouvoir imposer une erreur 503 sur les page encore en construction.
Sur ces pages, j'indique donc :

<?php
header('HTTP/1.1 503');
header("Retry-After: 86400"); // 86400s = 1j
?>

Malheureusement, ça ne fonctionne pas, je n'obtiens qu'une page blanche.
Si je fais ceci, ça fonctionne, mais c'est moins propre...

header('Location: erreur503.html');

J'ai essayé d'envoyer plutôt HTTP/1.1 404 pour vérifier, puisqu'une erreur 404 non-envoyée depuis header fonctionne. Eh bien ça fait pareil : une page blanche.
J'ai été vérifier dans Firefox dans Développement Web -> Réseau et il voit bien le statut que je lui demande dans les deux cas.
Juste, il ne redirige plus vers mon ErrorDocument...

Savez-vous ce qui se passe ?

Au final, j'aimerais mettre un code du style

<?php
$developpers_ips = array('xxx.xxx.xxx.xxx', 'yyy.yyy.yyy.yyy');
if (!in_array($_SERVER['REMOTE_ADDR'], $developpers_ips)) {
    header('HTTP/1.1 503');
    header("Retry-After: 86400"); // 86400s = 1j
    exit();
} ?>
<!DOCTYPE html>
//// PAGE EN DEVELOPPEMENT

Je ne sais pas si ça pourrait fonctionner, mais déjà, j'aimerais juste qu'il m'affiche mon ErrorDocument plutôt qu'une page blanche quand je lui renvoie une erreur par php...

Merci pour votre aide.

Dernière modification par Anard (Le 27/01/2019, à 22:29)


"iMack" : GA-H97M-D3H, Intel i5 4460, 16Go DDR3, Intel HD4600, SSD 256+120 / Bootloader Clover - macOS Mojave / Gentoo-Xfce
"Portable" : HP Pavilion DV3500, Intel T6400, 4Go, HDD 500Go / Grub2 - Gentoo-Xfce

Hors ligne

#2 Le 28/01/2019, à 00:38

HP

Re : PHP : header HTTP renvoie une page blanche

Mouarf ! big_smile roll


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne

#3 Le 28/01/2019, à 00:39

Anard

Re : PHP : header HTTP renvoie une page blanche

Mouarf ! big_smile roll

J'ai dit quoi comme connerie ? neutral

PS : Je viens de voir qu'il y avait un forum "Serveurs : Apache, MySql, PHP". Ma question serait probablement plus adaptée là-bas...
Si un modo passe par ici, ce serait possible de le déplacer ?

Merci.

Dernière modification par Anard (Le 28/01/2019, à 00:43)


"iMack" : GA-H97M-D3H, Intel i5 4460, 16Go DDR3, Intel HD4600, SSD 256+120 / Bootloader Clover - macOS Mojave / Gentoo-Xfce
"Portable" : HP Pavilion DV3500, Intel T6400, 4Go, HDD 500Go / Grub2 - Gentoo-Xfce

Hors ligne

#4 Le 28/01/2019, à 00:47

krodelabestiole

Re : PHP : header HTTP renvoie une page blanche

le truc c'est qu'en indiquant manuellement un code d'erreur dans un entête, tu ne déclenches pas réellement une erreur apache, tu envoies juste ce code au navigateur, et donc c'est le message d'erreur par défaut de ton navigateur qui est affiché... (et aucune erreur n'apparaîtra dans les logs)
donc de la même manière il faut que tu gères tes redirections vers les pages d'erreur manuellement en php.

après c'est typiquement le problème qu'on ne se pose pas quand on utilise un framework, d'où l'intérêt du truc : ne pas réinventer la roue. après ça peut avoir une visée pédagogique...

Dernière modification par krodelabestiole (Le 28/01/2019, à 00:56)

Hors ligne

#5 Le 28/01/2019, à 00:48

krodelabestiole

Re : PHP : header HTTP renvoie une page blanche

modération : déplacement de Développement et programmation vers Serveurs

Hors ligne

#6 Le 28/01/2019, à 01:13

Anard

Re : PHP : header HTTP renvoie une page blanche

Merci.
Je ne suis pas du tout un pro. J'avoue que je ne connais que cette technique (header PHP) pour imposer un code erreur... Avec Apache, je galère particulièrement smile

C'est aussi que la méthode me paraissait simple puisque je n'avais qu'un fichier php à inclure en haut d'une page en maintenance pour à la fois conserver l'accès pour le développement, envoyer le bon code erreur aux autres (pas un "deny from all") et rediriger vers une page personnalisée.
Malheureusement, cette dernière focntion ne fonctionne donc pas smile

Du coup, si on peut faire encore plus simple avec Apache, ça m'intéresse.

Dernière modification par Anard (Le 28/01/2019, à 01:14)


"iMack" : GA-H97M-D3H, Intel i5 4460, 16Go DDR3, Intel HD4600, SSD 256+120 / Bootloader Clover - macOS Mojave / Gentoo-Xfce
"Portable" : HP Pavilion DV3500, Intel T6400, 4Go, HDD 500Go / Grub2 - Gentoo-Xfce

Hors ligne

#7 Le 28/01/2019, à 01:39

Anard

Re : PHP : header HTTP renvoie une page blanche

OK je me répond (en tout cas ça semble fonctionner).

A la racine d'un chapitre en maintenance, je peux placer ce .htaccess

RewriteEngine On

RewriteCond %{REMOTE_ADDR} !^xxx\.xxx\.xxx\.xxx$
RewriteCond %{REMOTE_ADDR} !^yyy\.yyy\.yyy\.yyy$
RewriteRule (.*) [R=503]

RewriteRule peut aussi indiquer une page plutôt que tout le dossier suivant le cas.

N'hésitez pas à me dire si je m'y prends mal ou s'il y aurait plus simple/pratique à l'usage.


"iMack" : GA-H97M-D3H, Intel i5 4460, 16Go DDR3, Intel HD4600, SSD 256+120 / Bootloader Clover - macOS Mojave / Gentoo-Xfce
"Portable" : HP Pavilion DV3500, Intel T6400, 4Go, HDD 500Go / Grub2 - Gentoo-Xfce

Hors ligne

#8 Le 28/01/2019, à 01:48

krodelabestiole

Re : PHP : header HTTP renvoie une page blanche

pour un deny sur des permissions ça serait plutôt une 403.

plus simple ou moins simple je sais pas, ça dépend de ce que tu veux faire.
tu peux rediriger n'importe quoi sur une 403 par ex. aussi bien avec mod_rewrite qu'avec des directives redirect ou redirectmatch.
mais à mon avis si tu veux indiquer des messages personnalisés en gardant l'aspect de ton site, le menu, et en ayant une gestion plus fine des droits en fonctions de paramètres précis (identification), c'est sûrement plus simple de gérer ça en php...

Hors ligne

#9 Le 28/01/2019, à 02:14

Anard

Re : PHP : header HTTP renvoie une page blanche

Merci.

Je veux garder un accès pour certaines personnes dont je connais l'IP (et qui participent à la création du site, ou bien d'où je serais amené à travailler). Donc je n'ai pas vraiment besoin de pouvoir s'identifier.

Le Deny ne me convient pas puisqu'il y a un risque qu les robots arrêtent de visiter la page. Un code 503 me semble plus approprié en cas de maintenance.

En gros, je trouve plus propre de travailler directement sur le serveur Apache puisque ça touche directement à l'accès au site et que les ErrorDocument sont déjà paramétrés.
Mais j'ai plus l'habitude de manipuler du code PHP. Il est aussi un peu plus bavard quand il renontre une erreur (plus simple à débugguer).
Donc entre les 2 solutions, mon coeur balance big_smile

Pour en revenir à ça, la seule fois que j'ai essayé un framework, j'ai pris peur en voyant le code HTML généré, du style :

<div style="font-size: 15px;"><span style="font-size: 12px;"><span style="font-size: 14px;"><span style="font-size: 13px;">Blablabla</span></span></span></div>

lol

Don non, même si c'est parfois plus long, je préfère comprendre ce que j'écris et pourquoi je l'écris d'une manière plutôt que d'une autre plutôt que de faire confiance à un logiciel...

Dernière modification par Anard (Le 28/01/2019, à 02:17)


"iMack" : GA-H97M-D3H, Intel i5 4460, 16Go DDR3, Intel HD4600, SSD 256+120 / Bootloader Clover - macOS Mojave / Gentoo-Xfce
"Portable" : HP Pavilion DV3500, Intel T6400, 4Go, HDD 500Go / Grub2 - Gentoo-Xfce

Hors ligne

#10 Le 28/01/2019, à 02:54

krodelabestiole

Re : PHP : header HTTP renvoie une page blanche

il a l'air dégueulasse ton framework effectivement. mais bon les questions de styles et de html sont généralement assez indépendantes du framework php.

si tu cherches un truc léger regarde slim ou lumen. pour un truc très complet cakephp ou laravel.

même si ça a l'air plus "pro" je pense qu'un débutant aura plus de chances de creer une application plus sécurisée, moins usine à gaz, et en moins de temps. bon après ça dépend de la complexité du projet.

Dernière modification par krodelabestiole (Le 28/01/2019, à 05:43)

Hors ligne

#11 Le 28/01/2019, à 02:55

krodelabestiole

Re : PHP : header HTTP renvoie une page blanche

et si besoin grafikart fait des super tutos en français sur ces outils : https://www.youtube.com/watch?v=9_4lxnUyJLE

Hors ligne