A senso farei così....

Codice PHP:
<?php
session_start
(); include('includes/config.inc.php');
$myDb->connect();
$sql "SELECT * FROM yob_site WHERE id='1'";
$result mysql_query($sql);
$row mysql_fetch_array($result);
$myDb->close(); define('AD_TIMER',$row['adtimer']);
$ad_id=limpiar($_GET["ad"]);
$myDb->connect();
$ad_result=mysql_query("SELECT * FROM yob_ads WHERE id='$ad_id'");
$myDb->close();
if (
mysql_num_rows($ad_result)==0)
{
header("HOMEPAGE.PHP"); exit();
$ad_row=mysql_fetch_array($ad_result);
if(!
$logged_in) { $myDb->connect();
mysql_query("UPDATE yob_ads SET members=members+1 WHERE
id='
$ad_id'"); $visitime=time();
mysql_query("UPDATE yob_ads SET visitime='$visitime'
WHERE id='
$ad_id'"); $myDb->close(); }
function 
get_codes($num,$len) { for($i=0;$i<$num;++$i)
$codes[]=substr(strtoupper(md5(rand(1000,1000000000))),0,$len); }
return 
$codes; } $codes=get_codes(4,3);
$_SESSION['captcha']=$codes[rand(0,count($codes)-1)];
$mycode $_SESSION['captcha']; ?>

<html>
<head>
<title><?php echo SITENAME." - ".SITESLOGAN?></title>
<link rel="stylesheet" type="text/css" href="css/adview.css">
<style type="text/css">
sostituisco con 'header'.... non vedo echo precedenti, quindi non dovrebbe dare errore, no?
Basta non scrivere l'errore con l'echo che ho sostituito (tanto non lo visualizzeresti, se fai la redirect...).

Se vuoi notificare l'errore puoi eventualmente aggiungere un parametro in GET, all'URL dell'homepage, con un valore che segnala la problematica. L'homepage quando controlla questo parametro ed è impostato correttamente mostrerà una finestrella con l'errore.