buona sera ormai.

nel primo file ho una select che popolo così

codice:
	    	  <form name="form1"">
                <b style="color: #FF0000;">Scegli la Categoria per la nuova Immagine[/b]
                <select name="categoria" onChange="MM_jumpMenu('parent',this,1)">
<?php
$mysqlc->query("SELECT * FROM categorie_gallery ORDER BY nome;");
while($result = mysql_fetch_array($mysqlc->result, MYSQL_ASSOC)){

				echo "<option selected ";
				if(isset($_POST['categoria']) && $result['id'] == $_POST['categoria']) echo "selected=\"SELECTED\"";
				echo "value='pages/gallery.php?id=".$result['id']."'>".$result['nome']."</option>";

	}
?>
				  
                </select>            
                </form>

nel secondo file ho fatto come mi dici tu, ho cambiato Post con GET ossia:

codice:
              <?php
$query = mysql_query("SELECT * FROM categorie_gallery ORDER BY nome ASC"); 
$categoria = isset($_GET['categoria']) ? $_GET['categoria'] : ''; 

echo '<select name="categoria">'; 

while($row = mysql_fetch_array($query)) { 
    $id = $row['id']; 
    $nome = $row['nome']; 
    $selezionato = $categoria == $id ? 'selected="SELECTED" ' : ''; 

    echo "<option value=\"$id\"$selezionato>$nome ('$categoria' == '$id')</option>"; 
} 

echo '</select>';

?>
            </select>
per due ovvie ragioni:

1. non passo la query gallery.php?categoria=id -->perchè mi dà errore
2. ho bisogno di passare anche l'id altrimenti non funziona l'upload

quindi, se completo la riga in grassetto in questo modo mi passa solo la variabile "categoria"
ma a me non basta mi serve assolutamente l'id=id se no ho errore

codice:
echo "value='pages/gallery.php?id=".$result['id'].""&"categoria=".$result['id']."'>"
morale in questi modi ciò che mi stampa nella select della seconda pagina non è ancora ciò che proviente dal primo form.