Seite 1 von 1

Neue Funktion in /includes/function.general.php

Verfasst: Do 4. Dez 2008, 17:10
von rethus
Für zukünftige Contenido-Versionen beantrage ich eine neue Funktion in function.general.php (bzw. die optimierung einer Funktion)

Derzeit wird die Funktion noch nicht im Quellcode genutzt (hat zumindest eine Volltextsuche in allen Dateien ergeben).
Ich nutze die Funktion in meinem RSS-Reader.

Es handelt sich um diese Funktion:

Code: Alles auswählen

/**
 * sendPostRequest: Sents a HTTP POST request
 *
 * Example:
 * sendPostRequest("hostname", "serverpath/test.php", $data);
 *
 * @param $host 	Hostname or domain
 * @param $pathhost Path on the host or domain
 * @param $data		Data to send
 * @param $referer	Referer (optional)
 * @param $port		Port (default: 80)
 */
function sendPostRequest($host, $path, $data, $referer = "", $port = 80)
{
	$fp = fsockopen($host, $port);

	fputs($fp, "POST $path HTTP/1.1\n");
	fputs($fp, "Host: $host\n");
	fputs($fp, "Referer: $referer\n");
	fputs($fp, "Content-type: application/x-www-form-urlencoded\n");
	fputs($fp, "Content-length: ".strlen($data)."\n");
	fputs($fp, "Connection: close\n\n");
	fputs($fp, "$data\n");

	while (!feof($fp))
	{
		$res .= fgets($fp, 128);
	}

	fclose($fp);

	return $res;
}
Wie anpassen?
Viele RSS-Webseiten melden den Fehler 405 zurück, weil Sie kein POST auf statische Dateien zulassen (IIS-Webserver). Mit einem GET funktioniert dies jedoch.

Wie ändern
  1. Entweder die Funktion umbenennen in sendHttpRequest und übergabe eines weiteren Parameters, welcher angibt, ob GET oder POST gesendet werden soll, oder
  2. neue Funktion sendGetRequest erstellen
Ich empfehle jedoch Variante eins, weil dann Quellcode gespart, sauberer und übersichtlicher ist.

Verfasst: Mo 22. Dez 2008, 14:06
von emergence
verschoben...