Now I have heard it said many places on the web that having a page send the data to itself and then validate and process it all in one is the more advanced way to do it. Then other places I read that for modularization purposes its best to keep things separate.
The two ideas are orthogonal. You can have a form that submits to the same page, and yet it is modular.
Now I am all for modularization, but can someone tell me what constitutes a modular design, really.. I mean if I have a bunch of functions that perform specific tasks and these functions get called at strategic places in the script, how different is that (performance wise) from just having a bunch of pages and have the form submit the data, then another to validate then yet another to process and another to display. The latter seems like more work, though. But I guess it will make things easier in the long run because everything is fragmented.
If by "pages" you really mean "include files", then the include files approach is actually likely to be slightly slower, but that kind of speed difference should not be taken into consideration most of the time.
The benefit comes when each include file contains a related group of functions, e.g., a class and its helper classes and convenience functions. You can then include this file in various pages and use the class from there.
Now, if you are talking about a series of pages that make the user go through a step by step process, then that is a different thing. It has less to do with script modularisation and more to do with user interface design.
I would like what many of you may think about this. Currently my page does all in one. Calls functions, but does all processing and displaying in the same page. Its currently over 1000 lines long. (is that too long?)
In a modular design, a class models one thing and models it well, and each function does one thing and does it well. So if your functions are following that principle, and yet are not suitable for reuse, then a 1000 line long page seems fine to me. After all, when you include files, the PHP interpreter will open and process the PHP code in those files as well, so a 100 line PHP script that includes nine 100 line files would end up at around 1000 lines anyway.