Personally I'm lazy, but I'd probably go with something along the lines of 

$filename = sprintf("step%d.php", (int)($_SESSION['step']) );
require ( file_exists($filename) ? $filename : "step1.php" );

same results in two lines of code - was one line, but I split it into
two lines to make it more readable, although tbh in production code,
I'd add an array_key_exists, to make sure that $_SESSION['step'],
actually exists. It also scales up to as many steps as you like, so
long as they're all in the stepNUMBER.php format. I don't think there
is any need for both a %d formatter and (int) typecasting, but it's
generally best to take every reasonable precaution when you're
including/requireing files.

On 5/12/05, dan <[EMAIL PROTECTED]> wrote:
> Hello, all -
> 
> I've been researching how to handle forms properly, and I think I
> figured out a way that might be beneficial for me to use.  It is as follows:
> 
> (index.php)
> 
> session_start();
> if (isset($_SESSION['step'])) {
>         switch $_SESSION['step'] {
>                 case "1":
>                         require('step1.php');
>                         break;
>                 case "2":
>                         require('step2.php');
>                         break;
>                 case "3":
>                         require('step3.php');
>                         break;
>                 // add more case statements here if I need to
>                 default:
>                         require('step1.php');
>                         break;
>         }
> } else {
>         $_SESSION['step'] = '1';
>         require('step1.php');
> }
> 
> Each stepX.php file would look something similar to this:
> 
> (step1.php)
> 
> // if submitted, check data for completeness
> // if complete, set 'step' to 2, to be used as argument to index.php
>         $_SESSION['step'] = '2'
> // redirect back to index.php, use new value of 'step' to direct
>         header('Location: http://somesite.com/index.php');
> // else display form data
> 
> Now, this is, really, one of my first experiences with doing forms.  I
> just want to know if I can/should/would anticipate any problems down the
> road while doing this.  I think it would work quite well, but I've only
> been doing this for a short while.
> 
> Thanks!
> -dant
> 
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
> 
>

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to