hi, i'm in the process of integrating ipn with my site which caused me some confusion too.
in a nutshell, the ipn system works by posting the transaction details to your script '/testing/ipntest.php' which in turn must re-post these details back to paypal for verification. upon receipt, paypal then replies to your post with a new set of headers stating whether the transaction is 'VERIFIED' or 'INVALID', from which your customised php code will perform some background process(es) (such as db query/insert/update statements).
from what i can gather, i think the problem you're faced with lies within
$fp = fsockopen ("www.eliteweaver.co.uk/testing/ipntest.php", 80, $errno, $errstr, 30);
this line tells php to fsockopen the specified url and post the variables to the webscr script found in 'cgi-bin' for verification of the transaction (as defined by the first line of you $header string). however, the transaction details reside on paypal servers, so the url MUST point to their domain ie. www.paypal.co.uk and NOT www.eliteweaver.co.uk.
so by changing your script to
...
// post back to PayPal system to validate
$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";
$fp = fsockopen ("www.paypal.co.uk", 80, $errno, $errstr, 30);
...
if (!$fp) should evaluate to false and the else clause should be executed.
hope this helps. johnsworld