Salve a tutti sto smanettando un po con php per fare un applicazione che permette di donare soldi tramite paypal tutto ok riguardo al pagamento...ma IPN non ne vuole sapere...non riesco proprio a trovare il problema vi posto il listener...

codice:
<?php

// intercetta le variabili IPN inviate da PayPal
$req = 'cmd=_notify-validate';
    
// legge l'intero contenuto dell'array POST
foreach ($_POST as $key => $value) 
{
	$value = urlencode(stripslashes($value));
	$req .= "&$key=$value";
}

// intestazione, prepara le variabili PayPal per la validazione
$header .= "POST /cgi-bin/webscr HTTP/1.0\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";

// apre una connessione al socket PayPal 
$fp = fsockopen ('ssl://www.sandbox.paypal.com', 443, $errno, $errstr, 30);

// verifica l'apertura della connessione al socket
if (!$fp) 
{
	// HTTP-ERROR
	$to = "****";
	$subject = "- SIMULAZIONE - Problema Transazione";

	$message = "Si è verificato un problema nella seguente transazione:\r\n\r\n";
	$message .= "Nome: " . $_POST['first_name'] . ' ' . $_POST['last_name'] . "\r\n";
	$message .= "Email: " . $_POST['payer_email'] . "\r\n";
	$message .= "ID Transazione: " . $_POST['txn_id'] . "\r\n";
	$message .= "Oggetto: " . $_POST['transaction_subject'];

	$headers = "MIME-Version: 1.0\r\n"; 
	$headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
	$headers .= 'From: <noreply@donate.com> \r\n'; 

	mail($to, $subject, $message, $headers);
	
	exit();
} 
else 
{

	// elaborazione delle informazioni
	fputs ($fp, $header . $req);

	while (!feof($fp)) 
	{
		$res = fgets ($fp, 1024);

		// azioni in caso di risposta positiva da parte di PayPal
		if (strcmp ($res, "VERIFIED") == 0) 
		{
			// controllo sull'email del venditore
			if(trim($receiver_email) === "donate_1356939740_biz@gmail.com")
			{
				$link = mysql_connect("localhost","*****","******");
				mysql_select_db("*********",$link);
				
				$query = mysql_query("SELECT donate_id FROM purchase_history WHERE txn_id='".$_POST['txn_id']."'");
				
				$total = mysql_num_rows($query);
                
				// controllo sull'identificatore della transazione
				if ($total == 0)
				{
					// query per l'inserimento dei dati
					$query = mysql_query("INSERT INTO purchase_history (txn_id, receiver_id, payment_status, mc_gross, payer_email, first_name, last_name, item_name) VALUES ('{$_POST['txn_id']}','{$_POST['receiver_id']}','{$_POST['payment_status']}','{$_POST['mc_gross']}','{$_POST['payer_email']}','{$_POST['first_name']}','{$_POST['last_name']}','{$_POST['item_name']})");
				}

				// Chiusura del database
				mysql_close($link);
			}

		}
		elseif (strcmp ($res, "INVALID") == 0) 
		{
			// Se la procedura non è legittima invia un email all'amministratore
			$to = "****";
			$subject = "- SIMULAZIONE - Problema Transazione";

			$message = "Si è verificato un problema nella seguente transazione:\r\n\r\n";
			$message .= "Nome: " . $_POST['first_name'] . ' ' . $_POST['last_name'] . "\r\n";
			$message .= "Email: " . $_POST['payer_email'] . "\r\n";
			$message .= "ID Transazione: " . $_POST['txn_id']. "\r\n";
			$message .= "Oggetto: " . $_POST['transaction_subject'];

			$headers = "MIME-Version: 1.0\r\n"; 
			$headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
			$headers .= 'From: <noreply@donate.com> \r\n'; 

			mail($to, $subject, $message, $headers);
			
			exit();
		}
	}

	// chiusura della sorgente di dati
	fclose($fp);
}

?>
In pratica dovrei registrare la transazione nel database nnt di particolare...non mi invia nemmeno un email bha illuminatemi xk sto impazzendo...