Ok,
ho ricavato l'id solo usando la sessione username

Ho cambiato il file di controllo del login in questo modo:

Codice PHP:
<?
session_start
();
if (isset(
$_POST['username']) && isset($_POST['password'])) {
include(
"config.php");
mysql_connect($db_host,$db_user,$db_password,$db_name) or die ("errore nella connessione");
mysql_select_db("$db_name") or die ("errore nella selezione del database");

  
$hpw=md5($_POST['password']);
  
$result=mysql_query("select * from utenti where username='$_POST[username]' and password='$hpw'");
if (
mysql_num_rows($result)!=0) {
     
$valori = @mysql_fetch_assoc($result); //metti i valori del db in un array associativo
     //passa i valori come parametro richiamando la pagina
     
$_SESSION['nome'] = $valori['nome'];
     
$_SESSION['cognome'] = $valori['cognome'];
     
header('location: indexbuy.php?='.$_SESSION['username'].'');
  } else
    echo 
"Utente non riconosciuto";
}
mysql_close(); 
?>
Mentre nella pagina indexbuy.php ho questo codice:

Codice PHP:
<?php
session_start
();
if (@
$_SESSION['username']!=true
header("location:loginbuy.php");
?>
<?php 
include("config.php"); 
mysql_connect($db_host,$db_user,$db_password,$db_name) or die ("non riesco a connettermi"); 
mysql_select_db("$db_name") or die ("Non riesco a selezionare il database"); 

$dati mysql_query("SELECT * FROM utenti WHERE utente_id='".$_SESSION['username']."'");
$array mysql_fetch_array($dati);
echo 
"Benvenuto "$array['nome'] . " " $array['cognome'];
mysql_close();

?>
Ora l'url della pagina indexbuy mi viene così

www.miosito.it/indexbuy.php?=3

Ma non è ugualmente pericoloso dal punto di vista della sicurezza?