Avatar billede leif Seniormester
26. juli 2006 - 11:28 Der er 24 kommentarer og
1 løsning

Fange om det er 404, 403 eller andet

Hej,

Kan jeg med PHP fange om det er 404, 403 eller anden kode at siden bliver loadet med ?

På forhånd tak

/Leif
Avatar billede iss Novice
26. juli 2006 - 11:44 #1
Nemmeste er hvis det er PHP5, så kig på php.net/get_headers
Avatar billede leif Seniormester
26. juli 2006 - 11:51 #2
Dvs. hvis jeg bruger PHP4 er det ikke muligt ?
Avatar billede iss Novice
26. juli 2006 - 11:53 #3
Ikke den, men så skal du kigge på socket funktionerne.
Avatar billede leif Seniormester
26. juli 2006 - 11:58 #4
Okay
Avatar billede iss Novice
26. juli 2006 - 12:16 #5
Har lige lavet lidt om på¨det eksempel der er i manualen:
<?php
error_reporting(E_ALL);

echo "<h2>TCP/IP Connection</h2><br>";

/* Get the port for the WWW service. */
$service_port = getservbyname('www', 'tcp');

/* Get the IP address for the target host. */
$address = gethostbyname('www.gratisdns.dk');

/* Create a TCP/IP socket. */
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket < 0) {
    echo "socket_create() failed: reason: " . socket_strerror($socket) . "<br>";
} else {
    echo "OK.<br>";
}

echo "Attempting to connect to '$address' on port '$service_port'...";
$result = socket_connect($socket, $address, $service_port);
if ($result < 0) {
    echo "socket_connect() failed.<br>Reason: ($result) " . socket_strerror($result) . "<br>";
} else {
    echo "OK.<br>";
}

$in = "HEAD / HTTP/1.1\r\n";
$in .= "Host: www.example.com\r\n";
$in .= "Connection: Close\r\n\r\n";
$out = '';

echo "Sending HTTP HEAD request...";
socket_write($socket, $in, strlen($in));
echo "OK.<br>";

echo "Reading response:<br><br><pre>";
while ($out = socket_read($socket, 2048)) {
    echo $out;
}

echo "</pre>Closing socket...";
socket_close($socket);
echo "OK.<br><br>";
?>
Avatar billede leif Seniormester
26. juli 2006 - 12:28 #6
Hmm, kan jeg ikke lige gennemskue da jeg skulle bruge det til at hvis du går ind på www.domain.dk/sidenfindesikke.html

Så skulle den åbne en 404 side med teksten "Filen findes ikke", men da jeg helst ville lave 1 PHP med hele mit ErrorSystem i, skal jeg jo fange at PHP filen bliver åbnet pga. 404, 403 eller hvad det nu kunne være.
Avatar billede iss Novice
26. juli 2006 - 12:42 #7
Ohhh, den vej... troede du mente den anden vej... (efter at have læst din mail...)
Avatar billede leif Seniormester
26. juli 2006 - 13:15 #8
Min mail ? Jeg forstår ikke. Jeg har da godt nok lige sendt en mail til en vedr. det samme, men er lidt forvirret.
Avatar billede iss Novice
26. juli 2006 - 13:21 #9
Det var til mig...
Avatar billede leif Seniormester
26. juli 2006 - 13:22 #10
Ahh, takker. Verden er lille
Avatar billede iss Novice
26. juli 2006 - 13:29 #11
Skal lige siges at den er noget crappy PHP scripting, og det er lavet til PHP3...
Avatar billede leif Seniormester
26. juli 2006 - 13:30 #12
Ja, men det virker næsten endnu, der skal lige laves et par ændringer for at den virker til en PHP4 med Register_globals = off, men det går nok også.
Avatar billede iss Novice
26. juli 2006 - 13:31 #13
Husk også at lave om til _SERVER osv...
Avatar billede leif Seniormester
26. juli 2006 - 13:32 #14
Nemlig, det er jeg igang med.
Avatar billede Slettet bruger
26. juli 2006 - 17:52 #15
Nu ved jeg godt at iss ikke plejer at tage imod point, men bare for en ordens skyld (og af nysgerrighed) ville jeg gerne se resultatet, når du får det til at virke.
Avatar billede iss Novice
26. juli 2006 - 22:56 #16
Ser om ikke lige jeg kan lave den så den kan bruges i dag (dog uden sprog osv...)
Avatar billede leif Seniormester
26. juli 2006 - 23:25 #17
iss -> Jeg kan sagtens lige modificere den og maile tilbage hvis du ønsker.
Avatar billede iss Novice
26. juli 2006 - 23:38 #18
Er næsten færdig, er lige ved at få bugt med nogle warnings...
Avatar billede leif Seniormester
26. juli 2006 - 23:38 #19
:D Oki
Avatar billede iss Novice
27. juli 2006 - 00:28 #20
molberg.eu/ErrorBot.zip
Avatar billede leif Seniormester
27. juli 2006 - 01:22 #21
iss -> Lige et spørgsmål, hvordan kan det være du helst vil bruge $_SERVER['HTTP_X_FORWARDED_FOR'] hvis den er sat ?
Avatar billede Slettet bruger
27. juli 2006 - 04:48 #22
Fordi hvis den er sat, så kommer forespørgslen fra en proxy, og HTTP_X_FORWARDED_FOR er IP på den egentlige klient.

Så er man så bare nødt til at tage det forbehold, at HTTP_X_FORWARDED_FOR kan indeholde et forfalsket IP, hvorimod den anden er nødt til at være korrekt, hvis serveren altså skal kunne sende et svar tilbage.
Avatar billede iss Novice
27. juli 2006 - 12:54 #23
Som sandbox skrev...
Avatar billede leif Seniormester
14. september 2006 - 18:54 #24
Smid et svar.
Avatar billede leif Seniormester
02. oktober 2006 - 19:26 #25
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Paychex Europe

Scrum Master

Capgemini Danmark A/S

Open Application (Denmark)

KMD A/S

Projektleder

Rambøll Management Consulting

Senior Software Engineer

Capgemini Danmark A/S

Microsoft AI Solution Architect