$header .= "Content-Length: " . strlen($req) . "\r\n\r\n";
$fp = fsockopen('ssl://www.paypal.com', 443, $errno, $errstr, 30);
if (!$fp) {
    // HTTP ERROR
} else {
    fputs($fp, $header . $req);
    while (!feof($fp)) {
        $res = fgets($fp, 1024);
        if (strcmp($res, "VERIFIED") == 0) {
            // PAYMENT VALID
            better_mail('*****@*****.**', 'IPN success', var_dump_ret($_POST));
            send_confirmation_mail($_POST['payer_email'], $_POST['first_name'], $_POST['last_name'], $_POST['quantity']);
        } else {
            if (strcmp($res, "INVALID") == 0) {
                // PAYMENT INVALID
                better_mail('*****@*****.**', 'IPN fail', var_dump_ret($_POST));
            }
        }
    }
    fclose($fp);
}
function var_dump_ret($mixed = null)
{
    ob_start();
    var_dump($mixed);
    $content = ob_get_contents();
    ob_end_clean();
    return $content;
}
function better_mail($to, $subject, $email)
{
 public function dump_configuration()
 {
     $s = "MsMsgConfiguration:";
     $s .= var_dump_ret($this);
     return $s;
 }
 function __toString()
 {
     return "[TRIGGER: " . var_dump_ret($this->rules) . ']';
 }