When I use <?php include '../includes/header.php'; ?> in eng.php and <?php include '../includes/functions.php'; ?> in header.php, eng.php works fine but since index.php also has an include to header.php, it tries to look one upper directory and gives "No such file in the directory" error.
Am I following a wrong practice or is there a solution for this?
Yes. You should simply try to include includes/header.php.
What I personally prefer to do, and what Jacek also does in his tutorials, is make a variable which holds the path to a certain location, and include everything with that as a base. I believe Jacek uses