Il tuo codice non è sbagliato. Solo una cosa:

tutto quel passare per md5 è inutile.

1. Generalmente si cripta unicamente la password.
2. Non ha senso avere la password in chiaro nello script e poi passarla per md5. Il senso di criptare una password c'è nella malaugurata ipotesi che qualcuno riesca a leggere il sorgente del file (o se i dati sono nel database, la lista delle password).

Dunque, io lascerei perdere l'username e sostituirei questo

$pass_access=md5("pass");

con

$pass_access="1a1dc91c907325c69271ddf0c944bc72";

Se qualcuno dovesse leggere il sorgente, troverebbe solo l'hash, dal quale non è possibile risalire alla password.

Dunque arriva la password in chiaro dal form, viene passata da md5, e confrontata con la stringa. Così è più corretto.

Un altro accorgimento sarebbe quello di definire una cartella dove salvare le sessioni. Se non altrimenti specificato, vengono salvate nella cartella tmp del server (che ha il problema di essere condivisa con tutti gli altri siti che girano su quel server). Usa la funzione session_save_path per definire un percorso interno al tuo sito. Questo è più sicuro.

E poi basta. Si potrebbe dire ancora molto, ma poi bisogna vedere cosa vuoi proteggere con questo sistema, tutto deve essere commisurato. Metteresti la porta blindata del forziere di una banca sul capanno degli attrezzi che hai in giardino?