Ti suggerisco di ricominciare dalle basi, a partire dal protocollo HTTP, dagli header, dai problemi di sicurezza (es. SQL Injection) e cosi' via.
Quello che segue è il tuo codice modificato SOLO per dal punto di vista logico, NON ho fatto alcuna modifica per migliorarne la qualità in termini di sicurezza etc.
<?php
//Recupero username e password dal form
$user = $_POST['user'];
//Apro la sessione e...
session_start();
//Salvo i dati...
$_SESSION['username'] = $user;
$connessione=mysql_connect("localhost");
$selezione_db=mysql_select_db("guest_book", $connessione);
$inserimento=mysql_query( "insert into messaggi (user, gender, date_of_birth,country, data_ora) values ( '" . $_POST['user'] . "','" . $_POST['gender'] . "','" . $_POST['year'] . "-" . $_POST['month'] . "-" . $_POST['day'] . "', '" . $_POST['country'] . "', now())" );
$sid = session_name() . '=' . session_id();
session_write_close();
header("Location: http://localhost/test2.html?$sid");
?>