En el registro.
Creo que si tu intención es saber si ya existe un usuario logueado y evitar duplicaciones deberías usar la funcion exec de PDO que te permite saber la cantidad de registros que devuelve una consulta SQL.. en vez de:
Código PHP:
$user = $connection->prepare("SELECT username FROM user WHERE username = :username");
$user->bindParam(':username',$_POST['username']);
$user->execute();
if($user->fetch(PDO::FETCH_ASSOC)):
echo 'El usuario ya existe';
podrías intentar algo como:
Código PHP:
$count = $connection->exec("SELECT username FROM user WHERE username = ' ".$_POST['username']." ' ");
/* Devuelve el número de filas existentes */
if($count > 0)
echo 'El usuario ya existe';
y si no existe, recien lo insertas con el PREPARE...