Ok, session security is quite a complex issue in reality as there are a lot of things to consider.
First of all you want to consider how your session data itself is stored. By default PHP stores session data in files located on your web server. If you have dedicated hosting this is perfectly acceptable however shared hosting plans can occasionally (and accidently) grant users of other hosting accounts on the server access to that session data. You are able to overwrite the default session behaviour to write to a database or a location you have secured yourself however, I'm not going to go into detail about this in this answer.
Secondly you have to take into account session theft. You must ensure that your sessions use cookies instead of the significantly more dangerous url based option. I would then create a second cookie to store user data that should remain the same under normal session conditions. This should NOT be an IP address as this is subject to change however, the user should not be changing browsers during the session so their user agent should do fine. If you combine this with private data from your system (user id etc...) and then hash it you have a some additional data to check against that is pretty much impossible for an attacker to guess.
If ensure that you are using an SSL connection and you regenerate the session id upon login you should have yourself a secure system. I do feel like I have missed out a few things but i'll keep it short and sweet and leave it there for you to continue your research.
Hope this helps a little,
Ryan