Christian: PHP-Template u. Perl-Suche

Ich möchte eine Suche (Perl) in meine (PHP-)Seiten einbinden. Dazu nutze ich einen Wrapper (Template). Dieses Template wird vom Formular aufgerufen und ruft seinerseits wieder das Perlscript auf. Lokal auf dem heimischen Rechner läuft alles bestens. Beim online-Stellen erhalte ich nach Aufruf der Suche die Fehlermeldungen:

-------------------------------------
Warning: fopen("http://www.1516-online.de/cgi-bin/search320/search.pl?&q=irgendwas&p=1&lang=de&mode=any","r") - Success in /homepages/3/d26097787/htdocs/template.php on line 45

Warning: Supplied argument is not a valid File-Handle resource in /homepages/3/d26097787/htdocs/template.php on line 46

Warning: Supplied argument is not a valid File-Handle resource in /homepages/3/d26097787/htdocs/template.php on line 47
-------------------------------------

Das Template sieht, vom HTML-Code abgesehen, so aus:
-------------------------------------
$search_url = "http://www.1516-online.de/cgi-bin/search320/search.pl";
$url = $search_url."?";
$url .= "&q=".urlencode($q);
$url .= "&p=".urlencode($p);
$url .= "&lang=".urlencode($lang);
$url .= "&mode=".urlencode($mode);
$file = fopen($url, "r");
$result = fread($file, 100000);
fclose($file);
print $result;

/* Call this function of every output to avoid cross site scripting attacks: */
function strip_html($str) {
        $str = stripslashes($str);
        $str = preg_replace("/[<>"'&]/", "", $str);
        return $str;
}
-------------------------------------,

die Zeilen 45 - 47 sind diese:

-------------------------------------
$file = fopen($url, "r");
$result = fread($file, 100000);
fclose($file);
-------------------------------------

Die eigentliche Suche in Perl funktioniert auch online bestens, die Einbindung über das Template aber scheitert. Wo liegt der Fehler?

Danke, Christian

  1. Hallo Christian,

    lass dir doch mal vor dem fopen $search_url ausgeben.

    $url = $search_url."?";
    $url .= "&q=".urlencode($q);

    Vermutlich liegt das Problem in diesen beiden Zeilen.

    --> ...search.pl?&q=....

    Da ist ein &-Zeichen zuviel.

    Servus
    Stephan