Existen múltiples estrategias para llevar a cabo este tipo de scripts.
La primera es mediante el uso de las variables globales $PHP_AUTH_USER y $PHP_AUTH_PW. Esta alternativa hace saltar la clásica ventana del navegador que solicita el nombre de usuario y contraseña. Lo ideal para ponerlo en práctica es echar un vistazo al tutorial de Zend sobre autentificaciones.
Las otras dos posibilidades es el empleo de las cookies o de las sesiones.
Si no conoces muy bien estas técnicas, puedes aprender lo necesario en estos dos artéculos de nuestro manual de PHP:
Cookies
Sesiones
Personalmente, creo que el uso de las sesiones resulta el más adecuado; por un lado por razones de seguridad y por otro debido a que las cookies no son siempre aceptadas por todos los visitantes.
Existen aplicaciones desarrolladas en PHP para estos propósitos. Puede que te resulte más sencillo servirte de alguna de ellas:
http://hotscripts.com/PHP/Scripts_and_Programs/User_Authentication/