Ripetiamo dall'inizio.
Tu hai scritto:

.........
<form action="reg.php" method="post">
<input type="text" name="user" size="15" maxlength="25" align="left"/>

<input type="password" name="pass" size="15" maxlength="15" align="left"/>

<input type="text" name="email" size="60" maxlength="60"align="left"/>

</td>
.........

Quando fai il submit del form che rimanda alla pagina reg.php, PHP popola la variabile predefinita $_POST, che non è altro un array di tipo associativo, dove cioé l'indice di un elemento non è un numero ma una stringa.
Nel nostro caso quando si fa il submit, le variabili user, name ed email che vengono mandate dal form, vanno a finire nell'array $_POST, più precisamente in $_POST['user'], $_POST[pass'] e $_POST['email'].
Penso ke fin qui sia chiaro.

Successivamente hai scritto:

/// **** apri la sessone **** ///
session_start();
$user = $_SESSION['user'];
$cpass = $_SESSION['cpass'];
$cemail = $_SESSION['cemail'];
$id = $_SESSION['id'];


Immagino che $_SESSION['user'], $_SESSION['cpass'] e $_SESSION[cemail'] contengano dei valori. Ke valori contengono? Quando sono stati inseriti questi valori nelle variabili di sessione, visto ke non vedo da nessuna parte un'istruzione del tipo $_SESSION['user'] = ad un qualche cosa????

E le variabili che il form passa, quindi $_POST['user'], $_POST[pass'] e $_POST['email'] dove vanno a finire?