Basic login with router
They are ok, but I would still do some things differently.


I would instead throw exceptions.
Instead of if else within your action, I would use a validator with rules.
Instead of using $_POST/$_GET directly, I would sanitize them and put it inside a Request class.
Error messages belongs to the view, so I would set $view-&gt;errors[]='message' or something like that.
Your routing class is not flexible. As a good example, you could take a look at the Silex framework.
Login_Controller should not exist. There might be Account_Controller with login_action or Authenticate_Controller with login_action. 


Usually a Controller is a group of actions with to execute specific stuffs. For example, Profile_Controller has view/edit/delete action. Within the controller you check the user roles, if someone can view/edit/delete the profile. In other frameworks, they use "Access Control List (ACL)" for this purpose.

Your linked tutorial is just for the basic understanding purpose, so please don't use it. Use a readily existing framework, since you wish to build the app and not the framework itself. You might end with modifying and changing your basic structures and implementing new functions instead of developing the features of your web application.