[eluser]Michael Wales[/eluser]
Are you sure your cookie has the proper value stored? Try echoing that value out when they are supposed to be a school admin and see if it really reads "school_admin"
Also, you could try segregating your conditionals, although I don't think it will make a difference:
Code:
if (($user_type != "teacher") || ($user_type != "school_admin")) {
redirect('login');
}
Finally, why not reverse your logic? I'll assume you have another user_type named "student":
Code:
if ($user_type == "student") {
redirect('login');
}