Beitrag von Thomas (441 Beiträge) am Freitag, 29.April.2016, 17:37.
Problem mit php
Hallo.
Eigentlich wollte ich mit
<php>
$headers = get_headers($Internetadresse);
$response = substr($headers[0], 9, 3);
</php>
den 3stelligen HTTP_Code der Url erhalten, aber irgendwie ist der Code falsch.
Das 'Original' sah so aus:
<?php
function get_http_response_code($theURL) {
$headers = get_headers($theURL);
return substr($headers[0], 9, 3);
}
?>
Danke für Eure Unterstützung (und notfalls Schelte).
Eventuell kann ich es mit Eurer Hilfe ja gleich im <perl> Block integrieren?
Thomas
Antworten
Beitrag von richard (1187 Beiträge) am Samstag, 30.April.2016, 13:10.
Re: Problem mit php
Ohne Funktionsaufruf gehts in PHP auch so:
<?php
$array = get_headers ( 'http://DeineUrl' );
echo substr($array[0],9,3);
?>
Mit bp_php sollte es dann eigentlich so ähnlich klappen:
<php>
$array = get_headers ( 'http://DeineUrl' );
out "substr($array[0],9,3);"
</php>
Kann ich allerdings nicht probieren, da das wohl allenfalls in einem Mietaccount nutzbar ist. kostnix und Lizenz sind außen vor.
Antworten
Beitrag von Thomas (441 Beiträge) am Dienstag, 3.Mai.2016, 14:49.
Re: Re: Problem mit php
:-(
nein, das funktioniert nicht.
[ Fehler: open_basedir restriction in effect - Please contact support@baseportal.de ]
nein, der Fehler kommt vorher. Kann es sein, dass das get_headers nicht funktioniert?
Antworten
Beitrag von Sander (8133 Beiträge) am Dienstag, 3.Mai.2016, 15:21.
Re: Re: Re: Problem mit php
bei
<php>
$headers = get_headers('http://google.de');
echo "<pre>";
var_dump($headers);
echo "</pre>";
echo $response = substr($headers[0], 9, 3);
</php>
kommt bei mir das:
array(23) {
[0]=>
string(30) "HTTP/1.0 301 Moved Permanently"
[1]=>
string(31) "Location: http://www.google.de/"
[2]=>
string(38) "Content-Type: text/html; charset=UTF-8"
[3]=>
string(35) "Date: Tue, 03 May 2016 13:20:12 GMT"
[4]=>
string(38) "Expires: Thu, 02 Jun 2016 13:20:12 GMT"
[5]=>
string(38) "Cache-Control: public, max-age=2592000"
[6]=>
string(11) "Server: gws"
[7]=>
string(19) "Content-Length: 218"
[8]=>
string(31) "X-XSS-Protection: 1; mode=block"
[9]=>
string(27) "X-Frame-Options: SAMEORIGIN"
[10]=>
string(15) "HTTP/1.0 200 OK"
[11]=>
string(35) "Date: Tue, 03 May 2016 13:20:12 GMT"
[12]=>
string(11) "Expires: -1"
[13]=>
string(33) "Cache-Control: private, max-age=0"
[14]=>
string(43) "Content-Type: text/html; charset=ISO-8859-1"
[15]=>
string(114) "P3P: CP="This is not a P3P policy! See https://www.google.com/support/accounts/answer/151657?hl=en for more info.""
[16]=>
string(11) "Server: gws"
[17]=>
string(31) "X-XSS-Protection: 1; mode=block"
[18]=>
string(27) "X-Frame-Options: SAMEORIGIN"
[19]=>
string(223) "Set-Cookie: NID=79=Xqo8h2r62eW5aHXIVSMlyOakWhPypYhOZI7IkcJqnRwTDwOSjOdXG14G3C0NKv_lhFpvp3dlAhFoWRUM5CUi2-JkfFjW1YncL0Gc7_d3K42sbKWh7eDrEdx7gCtuCGZf; expires=Wed, 02-Nov-2016 13:20:12 GMT; path=/; domain=.google.de; HttpOnly"
[20]=>
string(95) "Set-Cookie: CONSENT=CG.253010; expires=Fri, 03-Jun-2016 13:20:12 GMT; path=/; domain=.google.de"
[21]=>
string(19) "Accept-Ranges: none"
[22]=>
string(21) "Vary: Accept-Encoding"
}
301
alles alles gut... ;)
Antworten
Beitrag von richard (1187 Beiträge) am Dienstag, 3.Mai.2016, 15:21.
Re: Re: Problem mit php
kostnix und Lizenz haben meines Wissens kein bp mit php. Was nutzt Du?
Antworten
Beitrag von Sander (8133 Beiträge) am Dienstag, 3.Mai.2016, 15:23.
Re: Re: Re: Problem mit php
das stimmt allerdings, aber Thomas hat ja eigentlich einen MIetaccount
Antworten
Beitrag von richard (1187 Beiträge) am Dienstag, 3.Mai.2016, 15:40.
Re: Re: Re: Problem mit php
Die Fehlermeldung krieg ich aber auch - wenn ich unter kostnix php nutzen will.
Antworten
Beitrag von Thomas (441 Beiträge) am Dienstag, 3.Mai.2016, 16:59.
Re: Re: Re: Re: Problem mit php
Ich habe den Code jetzt nochmal reinkopiert.
Gleiches Ergebnis - baseportal kontaktieren.
Antworten
Beitrag von Thomas (441 Beiträge) am Dienstag, 3.Mai.2016, 17:04.
Re: Re: Re: Re: Re: Problem mit php
Kommando zurück.
unter http://[Domain]/baseportal/Test
funktioniert es tadellos.
---
Wie @Sander gerade noch einmal schrieb, muss man, wenn man php nutzt, über die eigene Domain gehen und nicht über netpure...
Antworten
Beitrag von Thomas (441 Beiträge) am Dienstag, 3.Mai.2016, 17:30.
Re: Re: Re: Re: Re: Re: Problem mit php
o.k. jetzt wirds knifflig.
in meiner Test Seite funktioniert es.
Nun will ich aufgrund der Abweichung von 200 mir eine Mail senden
<php>
$headers = get_headers('http://google.de');
$response = substr($headers[0], 9, 3);
</php>
<perl>
if ($response ne "200")
{
out "<!-- $response -->";
$von = "info\@familienfreunde.de";
$an = "info\@familienfreunde.de";
$Text = "Der Status der Internetadresse ist nicht 200, also irgendwie fehlerhaft.";
emailsenden ($an, "=?UTF-8?B?".encode_base64("HTTP Status <> 200 | ID lautet: ".$bnr)."?=" , $Text, $von);
}
</perl>
[ Fehler: Fehlerhafter Perl Code in /familienfreunde.de/FF_Detail_0:
Can't locate object method "notes" via package "Apache2::SubRequest" at /usr/local/httpd/cgi-bin/baseportal_startup_3.pl line 526. ]
Jetzt komme ich nicht weiter und brauche nochmal Euren Kopf.
Antworten
Beitrag von Sander (8133 Beiträge) am Samstag, 30.April.2016, 20:45.
Re: Problem mit php
steht was in $headers drin?
Antworten