Hola,
Haberlo dicho antes, si quieres que te haga el trabajo es otra cosa, es más, ni siquiera te voy a explicar que significan las líneas de colores.
Código:
$submitted_pass=md5($_POST['password']); // encrypt submitted password
if (!in_array($submitted_pass, $encrypt_pass)) { // if password is incorrect
$errormsg=$msg;
.........
if (isset($_COOKIE[$cookiename])) { // if cookie isset
if (in_array($_COOKIE[$cookiename], $encrypt_pass)) { // if cookie is correct
// do nothing
//$submitted_pass = $_COOKIE[$cookiename];
//setmycookie();
} else { // if cookie is incorrect
Bueno no me puedo resisitir ... la línea gris es porque tenías que aplicar el mismo concepto de lógica de programación a la línea roja. La línea roja estaba mal, estabas comparando igualdad de un String con un Array, y aunque PHP no 'alega' por eso seguramente te va a decir que no son iguales. Y las líneas verdes sirven para actualizar la cookie si tiene actividad antes de los 3600's; y de esta forma no cierre la sesión aún pasados los 3600's pero tuvo actividad en el ínterin (aunque las dejé comentadas).
Ahora, cambia la línea roja en tu programa y quita la marca de comentario de las líneas verdes si crees que esa es la lógica que se debe aplicar.
Saludos,