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 (8134 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"
}
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 (8134 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 (8134 Beiträge) am Samstag, 30.April.2016, 20:45.  
Re: Problem mit php
steht was in $headers drin?
  Antworten