[FX.php List] Good PHP Design? Process in same or other
(include)page?
Joel Shapiro
jsfmp at earthlink.net
Wed Nov 15 11:45:37 MST 2006
Thanks all for replying.
I did go ahead and split my one login page into separate
login_processing and login_display pages. It was very simple to do,
and does just what I was looking for.
Andrew, it's great to hear you're doing the same thing. (And I
actually have both types of pages: some that load even without login,
some that don't.)
And some day I'll look more into smarty ;)
Best,
-Joel
On Nov 15, 2006, at 7:54 AM, Andrew Denman wrote:
> “One solution seems to be splitting the processing into a separate
> page from the page that displays the form or the user name & logout
> link. This way I could call the processing include at the top of my
> main page and set the session variable there, so that by the time
> the form/name page gets included, the session variable has already
> been set.”
>
>
>
> This is the method I use, and I took it from other login systems
> I’ve seen. At the beginning of each protected page (line 1) I
> includeonce() a login check file which opens a session and checks
> to see if a certain session variable has been set. If the session
> variable has been set, it allows the page to continue processing.
> If it hasn’t, it redirects them to a standalone login page. After
> logging in, the session variable is created and they are sent back
> to the original page, where the login check now allows them through.
>
>
>
> As I have it implemented, this will deny access to the protected
> page until the user has logged in. You could code the login check
> file to allow the page to process without logging in, checking for
> the login status in the page to restrict certain parts (or the
> entire page). I also don’t do anything special on the login page –
> it is completely separate and strictly for providing login
> information and sending the user on their way. If they are already
> logged in and hit the login page they are sent to a default
> member’s area. This way all of my protected pages use the same
> login code and I only have to maintain 3 pages for the login
> process: login, login check, and logout.
>
>
>
> Andrew Denman
>
>
> From: fx.php_list-bounces at mail.iviking.org [mailto:fx.php_list-
> bounces at mail.iviking.org] On Behalf Of Joel Shapiro
> Sent: Monday, November 13, 2006 12:28 AM
> To: FX.php Discussion List
> Subject: [FX.php List] Good PHP Design? Process in same or other
> (include)page?
>
>
>
> Hi all
>
>
>
> Looking for recommendations on good php design here.
>
>
>
> I'd been under the impression that having fewer php pages is often
> good design (now I'm not so sure ;), so I put the processing of a
> login into the login page itself (code at bottom of email).
> Dependent upon whether the login session variable is set, the login
> page displays either the login form or the logged in user's name
> and a logout link. This works fine.
>
>
>
> I made the login page into an include so that I can use it in
> different places on my site, where a user can login for different
> purposes. This works fine.
>
>
>
> However, I'm encountering a problem in the UI because I want to
> have text displayed *above* the login form dependent upon where on
> the site the user is (e.g. "Login here to register" or "Login here
> to view your history"). I've got this inside an if (isset ($_SESSION
> ['login']) ) statement (on the main calling page, not the include),
> since I don't want to display it once a user is logged in. The
> problem comes because -- since I've got the login processing
> happening within the login page itself -- by the time the include
> gets called, the line above it -- with the IF statement -- has
> already processed: so a successful login still has "Login here to
> register" displayed above it until the page is reloaded in the
> browser.
>
>
>
> One solution seems to be splitting the processing into a separate
> page from the page that displays the form or the user name & logout
> link. This way I could call the processing include at the top of my
> main page and set the session variable there, so that by the time
> the forn/name page gets included, the session variable has already
> been set. Another thought I had would be to keep the processing in
> a page that I include at the top, and have that page set a variable
> with either the form or the user's name, and then echo that
> variable lower in the page -- instead of another include. (that
> seems messier to me, though).
>
>
>
> Any recommendations for me? How do other people deal with this? Any
> good rules of thumb? (Does this have anything to do with the
> concept of 'object oriented'?...) And if more shorter pages are
> preferred, are there naming conventions for such files, e.g.
> login_display.php, login_process.php...?)
>
>
>
> TIA for any feedback.
>
>
>
> Best,
>
> -Joel
>
>
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> code basics:
>
> if( $_POST['login'] == 'login' ) {
>
> // DB QUERY HERE
>
> if ( $result['foundCount'] == 1 ) {
>
> // SET $_SESSION['login'] }
>
> }
>
> }
>
> if ( !isset($_SESSION['login']) ) {
>
> // ECHO FORM (action="$_SERVER['REQUEST_URI']")
>
> } else {
>
> // ECHO USER NAME AND LOGOUT LINK
>
> }
>
> _______________________________________________
> FX.php_List mailing list
> FX.php_List at mail.iviking.org
> http://www.iviking.org/mailman/listinfo/fx.php_list
More information about the FX.php_List
mailing list