Woran kann das liegen???
Das weiß ich nicht, aber ich würde erstmal zusehen, daß ich alle Fehler und unschönen Code entferne. Dann bist du dein Problem mit etwas Glück schon los. Ansonsten wird's leichter, daß Problem einzugrenzen und valider Code ist ja ohnehin nicht verkehrt...
Beim ersten kurzen Überfliegen des Codes sehe ich gleich so einige Fehler(chen)...
$https=$HTTP_POST_VARS;
ist je nach Einstellung der php.ini ein Problem. Ich würde mit $_POST arbeiten.
Header("Location: ".$_POST['url']);
Wo stellst du sicher, daß $_POST['url'] einen vollständigen URL (mit http://) enthält? Wieso übergibst du diesen Wert per hidden-Feld (problemlos zu erkennen; problemlos zu faken) anstatt das direkt in deinen PHP-Code zu schreiben?
Wieso setzt du kein exit(); hinter diese Funktion? Nur so kannst du sicherstellen, daß nachfolgender Code nicht doch noch mal ausgeführt wird (hab da schon merkwürdige Sachen gesehen).
Und dir ist klar, daß dein Script am Ende ist, wenn es eine Mail nicht verschickt werden kann..? Sobald eine Ausgabe mit die() erfolgt, funktioniert das nachfolgende header() nicht mehr, weil bereits Header an den Browser gesendet wurden.
Gruß, rob