1.- si pones solo time(), no funcionaria ya que la hora de expiración seria la misma que la de creación, y expiraría.
2.- Si el usuario no tiene habilitadas las cookies seria un problema, ya que siempre lo enviaría al index por mas que este viniendo de ahí.
otra posible solución seria que verifiques la dirección de la que esta viniendo para que asi no entren directamente a una pagina sin pasar por el index
Código PHP:
if(!strstr($_SERVER['HTTP_REFERER'],"www.web.com"))
header("location: index.php");