Rather than photo-resistors, use photo-transistors. Also, don’t use a laser, it probably isn’t needed. Instead, use a simple red (or better, IR) standard-brightness LED, with a small lens to focus it about 3 inches away. Put the two phototransistors (with a vertical baffle in between to prevent cross-talk) on the robot, between two largish (experiment here) strips of conductive metal, mounted on springs (or use a couple of strips of spring-steel). These are the charging pads on the robot. On the base station are similar charging pads, lined up with the robot. The spacing distance between the pads will have to be experimented with. Basically, the same idea as yours, except now accuracy (and hence, ease of implementation) becomes less of a concern. Use the photo-transistors to guide the robot in (indeed, this guide circuit could be easily built using individual components, with no micro-controller - its not much different than what Grey Walter’s turtle-bots of the 1940’s used - http://en.wikipedia.org/wiki/William_Grey_Walter). The robot backs into the pads until firm contact is made (monitor the charging circuit on the robot’s side), perhaps using small rotating and backing up moves to ensure contact. The size of the contacts have to be big enough to make good contact, yet small enough so that a singular pad won’t short the two pads on the base station out. More experimenting would be needed.
This is essentially the method that most self-charging robots have used, both in the past and even today with the Roomba, because it is simple, cheap, and effective. The only thing easier (from a certain perspective; certainly the design of the charging circuit would be a bear) would be a base that charged via open-air induction. Such things are possible, but now you would have to tune an air-gap transformer to work optimally.
I should also note to stay away from using lasers (and possibly high-brightness LEDs) in this regard, as the beam could possibly blind small children and pets; there isn’t anything to be gained from such a system (despite what you would think, using a laser does not automatically guarantee an accurate result - indeed, the accuracy needed could end up being so high as to make it impossible to align accurately without additional components).
This is one of the secrets, too, of quality robotic craftmanship: learn from the past, don’t re-invent the wheel if you can avoid it. It’s the same mantra of software development, and any coder worth his or her salt heeds it. While it is more difficult to put in practice with robotics, if you study the history of the subject, you will see patterns that worked, and patterns that didn’t. Obviously, this is also part of the mindset behind open-source software and hardware; to develop and document these patterns so that others can learn and use them.
Hmm - perhaps there needs to be a “robotic development patterns” book, like there is for software development…? Free idea, people (probably already exists)!
Good luck with the system - it sounds like you will have a fun time implementing it, however you choose to do so.