Allow url fopen
Aus VMS1 Tutorial
Wenn nach der Installation oder einem Serverwechsel Probleme auftreten, sollte zuallererst (am besten vorher schon) überprüft werden, ob die Option
allow_url_fopen = ON
gesetzt ist.
Dies kann ganz leicht erledigt werden, indem man eine neue *.php Datei erstellt mit beliebigen Namen, die folgenden Inhalt bekommt:
<|><?php|> <|>phpinfo|>(); <|>?>|>
Dann diese Datei auf den Webspace hochladen und mit dem Browser aufrufen.
In der dann erscheinenden Seite nach "allow_url_fopen" suchen, und dahinter sollte dann "on" stehen.
Inhaltsverzeichnis |
Wofür wird diese Einstellung benötigt?
Mit der Einstellung wird festgelegt, ob PHP Dateien über http verwenden darf. Dies ist z.Bsp. der Fall, wenn News Feeds eingebunden werden sollen, oder aber, wie beim VMS, wenn Daten von einem Sponsor abgefragt werden sollen, oder aber mit dem EF Account kommuniziert werden muss.
Sollte z.Bsp. beim Anmeldeversuch "unbekannter Fehler" angezeigt werden, ist das ein Indiz, das vielleicht allow_url_fopen auf Off steht.
Diese Einstellung aktivieren
Im Normalfall sollte diese Einstellung auf ON stehen, da das von vielen PHP Scripten benötigt wird und es wenig Gründe gibt, diese Einstellung zu deaktivieren.
Bei vielen Freehostern ist es zwar deaktiviert, aber bei bezahltem Webspace sollte wenigstens die Option bestehen, es aktivieren zu lassen.
Wenn man einen eigenen Server betreibt, kann man es ja eh aktivieren.
Also immer direkt an den Hoster wenden, oder einen Neuen suchen, und sich am besten vorher dazu informieren.
http://de.php.net/manual/de/filesystem.configuration.php#ini.allow-url-fopen
Alternativen
Wenn allow_url_fopen nicht aktiviert werden kann, ist es unter Umständen möglich, Alternativen zu allow_url_fopen zu benutzen. Es könnte sein, dass sich "manuell" Verbindungen zu anderen Webseiten aufbauen lassen, dafür kann die PHP Funktion fsockopen benutzt werden. Oder die PHP Erweiterung cURL ist installiert, damit lässt sich ebenfalls die gewünschte Funktionalität erzeugen.
fsockopen
<|>function|> get_website($url) { $urlParts = <|>parse_url|> ($url); $fp = @<|>fsockopen|> ($urlParts['host'], 80, $errno, $errstr); <|>if|> (! $fp) <|>return|> <|>FALSE|>; $request = ""; $request .= "GET " . $urlParts['path'] . (<|>isset|> ($urlParts['query']) ? "?" . $urlParts['query'] : "") . " HTTP/1.1\r\n"; $request .= "Host: " . $urlParts['host'] . "\r\n"; $request .= "Connection: Close\r\n\r\n"; <|>fwrite|> ($fp, $request); $buffer = ""; <|>while|> ( ! <|>feof|> ($fp) ) { $buffer .= <|>fgets|> ($fp, 128); } <|>fclose|> ($fp); $website = <|>explode|> ("\r\n\r\n", $buffer, 2); <|>return|> $website[1]; }
cURL
<|>function|> get_website($url) { $website = <|>NULL|>; $ch = curl_init($url); curl_setopt ($ch, CURLOPT_HEADER, <|>FALSE|>); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, <|>TRUE|>); $website = curl_exec ($ch); curl_close ($ch); <|>return|> $website; }
Kategorien: FAQ | PHP