Ciao a tutti, vorrei passare una variabile tramite un campo hidden di un form ma non mni funziona..il valore rimane sempre uguale e non capisco il motivo

codice:
if (isset($_POST['invia']))
	{
	$_SESSION['record']= ($_POST['invia']);
	header("Location: /annuncio_selezionato.php"); 
	}

if (isset($_POST['invia2']))
	{
	$_SESSION['record']= ($_POST['rec']);
	header("Location: /annuncio_selezionato.php"); 
	}

echo "<form method='post'>";

for ($c=0;$c<$cont;$c++)
{
$annuncio = mysql_query("SELECT * FROM annunci WHERE id=".$rec[$c],$db);
$foto=mysql_result($annuncio,0,'foto1');
$id=mysql_result($annuncio,0,'id');


echo "<tr><td width='150'> <input type ='image' src=$foto width='128' height='96' name='invia' value=$id></td>";

echo "<td><input class='nobutton' type='submit' name='invia2' value=".mysql_result($annuncio,0,'titolo')."><input type='hidden' name='rec' value=$id> ".mysql_result($annuncio,0,'prezzo')." € </td></tr>";
}