Archief - HTTP code halen uit Request Header

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

DeFlup

Legacy Member
Ik zoek een oplossing om met javascript de HTTP code (vooral 404) op te halen voor de huidige pagina. Om een stukje javascript uit te voeren op een custom 404 pagina.

Ik weet dat deze code eenvoudig op te halen is uit een ajax request, maar het gaat hier over de huidige pagina zelf. Je kan in principe een extra call doen (enkel headers ophalen) voor de huidige pagina. Maar dit is een extra request, en dit wil ik vermijden.

adrianhates

Legacy Member
<?php
function get_http_response_code($theURL) {
$headers = get_headers($theURL);
return substr($headers[0], 9, 3);
}
?>

staat trouwens ook de php documentatie bij get_headers() ;)

DeFlup

Legacy Member
Ik was eigenlijk op zoek naar een javascript only oplossing.

Als het serverside ging zou je de error code kunnen assignen aan een variabele, of een cookie.

adrianhates

Legacy Member
ja ik begrijp het eerlijk gezegd ook niet zo goed waarom.. Kan je de context even verduidelijken?

DeFlup

Legacy Member
adrianhates zei:
ja ik begrijp het eerlijk gezegd ook niet zo goed waarom.. Kan je de context even verduidelijken?

Wel, ik heb een generiek stukje javascript dat op elke pagina wordt geladen. op een error pagina wil ik dat er nog een extra actie gebeurd in javascript (bijvoorbeeld een call naar een bepaalde pagina om dit te loggen). Ik weet dat je in je implementatie kan voorzien dat een bepaalde functie wordt uitgevoerd op een 404 pagina, maar ik wil iets dat volledig los staat van de html code en dus puur op basis van een http code bepaalt of je op een error pagina zit of niet.

adrianhates

Legacy Member
DeFlup zei:
Wel, ik heb een generiek stukje javascript dat op elke pagina wordt geladen. op een error pagina wil ik dat er nog een extra actie gebeurd in javascript (bijvoorbeeld een call naar een bepaalde pagina om dit te loggen). Ik weet dat je in je implementatie kan voorzien dat een bepaalde functie wordt uitgevoerd op een 404 pagina, maar ik wil iets dat volledig los staat van de html code en dus puur op basis van een http code bepaalt of je op een error pagina zit of niet.

INDIEN PHP ( want da wete we ook nog ni.. ) :)

een optie: ge doet zoals kik gezegd heb: met php die statuscode ophalen , ge plakt die ergens in een hidden input field in uw html en op basis van die value gaat ge dan uw script manipuleren.

andere optie: Ge schrijft die code met php weg in uw javascript. Ge voegt aan uw header van javascript dit toe:

Code:
<?php
header("Content-type: text/javascript");
?>
en in de .htaccess schrijft ge een handler bij voor php in javascript:

Code:
AddHandler application/x-httpd-php .js

nog andere optie : oftewel schrijft ge aparte javascript functie op uw costum 404 pagina.

Just my 2 cents , up to you to decide .. :)

Als ge echt gewoon wilt loggen dat ge 404 hebt gehad kunt ge ook uw eigen errorlogfunctie implementeren met set_error_handler in php ( als ge php gebruikt alleszins.. ). ( Apache logt eenderzijds ook zelf uw HTTP statuscodes )

Ge kunt uiteraard ook gewoon op uw costum 404 pagina gewoon een functie/script oproepen die het wegschrijft naar een logfile..
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan