Problemer med å generere POST request til ekstern server

quicktech

Medlem
Hei,

Jeg har problemer med et script hvor hensikten er at jeg skal sende en array med data fra en webserver til en annen via en post request. Jeg ønsker helst å unngå curl i denne sammenheng, fordi jeg ikke vil at scriptet skal være avhengig av tredjepartsbibliotek (libcurl).

Vi hopper i det:
Kode:
function SendMelding($recipients, $message) {

$host = "subdomene.hawkbay.net";
$path = "/indexbeta.php";
$referer = "server2.hawkbay.net";
$user = 'hawkbay';
$pass = 'passord';
$sender = 'hawkbay';

$data_to_send = array(
'user' => $user, 
'pass' => $pass, 
'sender' => $sender, 
'recipients' => $recipients, 
'message' => urlencode($message)
);

	$fp = fsockopen($host, 80);
	fputs($fp, "POST $path HTTP/1.1\r\n");
	fputs($fp, "Host: $host \r\n");
	fputs($fp, "Referer: $referer \r\n");
	fputs($fp, "Content-type: application/x-www-form-urlencoded \r\n");
	fputs($fp, "Content-length: ". strlen($data_to_send) ."\r\n");
	fputs($fp, "Connection: close\r\n\r\n");
	fputs($fp, $data_to_send);
	while(!feof($fp)) {
		$res .= fgets($fp, 128);
	}
	fclose($fp);
	return $res;
}

Problemet jeg opplever er at serveren i andre enden ikke mottar noe som helst av dataene jeg sender. På den andre serveren har jeg et script som i all essens gjør følgende:

Kode:
$user = $_POST['user'];
$pass = $_POST['pass'];
$recipients = $_POST['recipients'];
$message = $_POST['message'];
$sender = $_POST['sender'];

echo $user."<br>".$pass."<br>".$recipients."<br>".$message."<br>".$sender."<br>";

Men det kommer ingenting ut (bare masse <br> i kildekoden så jeg vet scriptet har kjørt riktig). Er det noen som kan fortelle meg hva jeg gjør feil her?

OBS: Sensitive opplysninger som domener og brukerinfo er byttet ut i dette innlegget for sikkerhetsskyld. Feilen er derfor ikke relatert til server, brukernavn eller passord.
 

tyr897

Medlem
$data_to_send er jo fortsatt en array når du prøver å sende den. Du må gjøre den til en streng først, ala implode('&', $data_to_send)
 

tyr897

Medlem
Jo, men du kan ikke sende dataene som en php array. Du må sende de som en http streng, akkurat som i et vanlig GET request.
 
Topp