Si le quitas el @ a tu función fopen() y tal vez actives el control de errores a un nivel más alto (funcion: error_reporting()), veas los mensaje de error exactos que tienes.
No obstante te recomendaría usar los Arrays superglobales: $_POST, $_GET . .etc:
Código PHP:
if (empty($_POST['url']))
Y NO acceder a tus variabels externas al script por $url (globales).
Lee esta FAQ al respecto:
http://www.forosdelweb.com/showthrea...989#post238989
Un saludo,