Allow url fopen

Aus VMS1 Tutorial

Dies ist eine alte Version. Zeitpunkt der Bearbeitung: 17:46, 28. Feb. 2012 durch Jpwfour (Diskussion | Beiträge).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

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;    
}
Persönliche Werkzeuge