Ora in tutti i vari passaggi non ci sono più errori, ma c'è un problema inizio con l'incollarvi il codice aggiornato:

Codice PHP:
<?php
$host
="localhost";
$username="root";
$password="";
$database="vetture";

$conn=mysql_connect($host,$username,$password);
mysql_select_db($database) or die("Impossibile selezionare il database");
 
if(
$_POST && isset($_GET['id']))
{
aggiorna_record();}
elseif(isset(
$_GET['id']))
{
mostra_record();}
else
    
mostra_lista();
 
function 
mostra_lista()
{
    if(isset(
$_GET['msg']))
        echo 
'[b]'.htmlentities($_GET['msg']).'[/b]

'
;

    
$query "SELECT id, uid, upwd FROM members";
    
$result mysql_query($query);
    if (!
$result) {
        die(
"Errore nella query $query: " mysql_error());
    }
    echo 
'
    <table border="1">
        <tr>
            <th>id</th>
            <th>utente</th>
            <th>password</th>
            <th></th>
        </tr>'
;
     while (
$row mysql_fetch_assoc($result))
    {
        
$id=htmlspecialchars($row['id']);
        
$uid=htmlspecialchars($row['uid']);
        
$upwd=htmlspecialchars($row['upwd']);
        
$link $_SERVER['PHP_SELF'] . '?id=' $row['id'];
 
        echo 
"<tr>
                <td>
$id</td>
                <td>
$uid</td>
                <td>
$upwd</td>
                <td><a href=\"
$link\">modifica</a></td>
            </tr>"
;
    }
    echo 
'</table>';
    
mysql_free_result($result);
    
mysql_close();
}


function 
mostra_record()

    
$id intval($_GET['id']);
    
$query "SELECT id,uid,upwd FROM members WHERE id = $id";
    
$result mysql_query($query);
    if (!
$result
    { die(
"Errore nella query $query: " mysql_error()); }
    
    if(
mysql_num_rows($result) != 1
    { die(
"l'ID passato via GET è errato"); }
 
    list(
$id,$uid,$upwd)=mysql_fetch_row($result);
 
    
$id=htmlspecialchars($id);
    
$uid=htmlspecialchars($uid);
    
$upwd=htmlspecialchars($upwd);

 echo 
"
      <form action=\"upr.php\" method=\"post\">
      utente:  
      <input name='utente' type='text' value=\"
$uid\"/>
  
      password:  
      <input name='password' type='text' value=\"
$upwd\"/>  
      <input name='invia' type='submit' value='Invia'/>
      </form>
      "
;

}
?>
Questa è la pagina che visaulizza i record, per ognuno mi da un link per la modifica dove clicco e mi porta alla sezione function mostra_record() dove inserisco i nuovi dati da modificare e alla pressione del pulsante Invia che richiama la pagina upr.php quì sotto riportata:

Codice PHP:
<?php
function aggiorna_record()
{  
    
// recupero i campi di tipo "stringa"
    
$id=intval($_GET['id']);
    
$uid=trim($_POST['uid']);
    
$upwd=trim($_POST['upwd']);

    if(
get_magic_quotes_gpc())
    {
        
$id stripslashes($id);
        
$uid stripslashes($uid);
        
$upwd stripslashes($upwd);
    }
    
$id mysql_real_escape_string($id);
    
$uid mysql_real_escape_string($uid);
    
$upwd mysql_real_escape_string($upwd);

    
$query "UPDATE members SET uid='$uid', upwd='$upwd' WHERE id=$id";
    
$result mysql_query($query);
    if (!
$result) {
        die(
"Errore nella query $query: " mysql_error());
    }
    
mysql_close($conn);
 
    
$id urlencode('Aggiornamento effettuato con successo');
    
header("location: $_SERVER[PHP_SELF]?msg=$id");
}
?>
Ora mi riporta a questa pagina però non mi modifica i dati.
Dove sbaglio?

Se può esservi utile ecco a voi anche la struttura della table:

id int(10) unsigned PRI NULL auto_increment
uid char(30)
upwd char(30)