I think I really don't understand what do you want... hehehe :)
which is fine!

but take that code I sent ya... now I'll explain the functions... then tell 
me if I'm right:

function ShowHeader
{
         ?>
         <html>
         <title>Something</title>
         <body>
         <?
}

function ShowFooter()
{
         ?>
         </body>
         </html>
         <?
}

function ShowForm()
{
         global $SCRIPT_NAME:
         ?>
         <form ... bla bla bla action="<?=$SCRIPT_NAME?>">
         <input type=hidden name=action value="process-form">
         <?
}

function ProcessForm()
{
         if( !ValidateFormFields() )
                 return false;
         else
         {
                 if( !ExecuteDBInsert() )
                         return false;
                 else
                         return true;
         }
}

wouldn't that work?

there's no $done variable here... the return of the function is all you 
need... if it's true redirect, if not display error...

At 19:03 25/11/01 +0100, Daniel Alsén wrote:
>Hmm...either i don´t really get what you mean, or you missed the problem.
>
>This is the situation:
>
>I have a form which results is to be inserted in a db. When the form is
>submitted the page calls itself and does a db INSERT based on if a couple of
>statements is true - otherwise it displays a proper error message.
>
>So far everything is fine and is working like a charm.
>But:
>
>I want a redirection after a successfull db INSERT. After the INSERT is made
>(which is what the page is for) i set a variable, $done, to 1.
>Right now i only use $done to display a message at the bottom of the screen
>saying that the INSERT worked. But i want the page to redirect itself as
>soon as $done is set to 1.
>
>The problem i have is: I can only send headers (wich i use for redirection -
>right??) at the top of the page - before all the other code. But since $done
>is set far down in the code, after my form and db-statements, the header
>will never know when to be sent.
>
>Is there a way of calling a headerfunction in the top of the page?
>
>- Daniel
>
> > -----Original Message-----
> > From: Christian Dechery [mailto:[EMAIL PROTECTED]]
> > Sent: den 25 november 2001 18:41
> > To: Daniel Alsén; PHP; Miles Thompson
> > Subject: RE: [PHP] Redirect upon execution of script...
> >
> >
> > sorry if I'm not understanding correctly your problem... but it
> > seems quite
> > simple to me...
> > I've created like 10.000 php forms that does that... I don't see a prob...
> >
> > what do you want to do?
> >
> > process a form:
> > if something's wrong, print error message and go back
> > if everything is fine go to another page... that's it?
> >
> > well... database inserts has nothing to do with headers...
> >
> > you can easily do something like
> >
> > <?php
> > switch ($action)
> > {
> >          case "process-form":    if( ProcessForm() )
> >                                          header("Location:
> > next-page.php");
> >                                  else
> >                                  {
> >                                          ShowHeader(); // function to
> > display all the HTML you want
> >                                          printErrMessage();
> >                                          ShowFooter();
> >                                  }
> >                                  break;
> >          default:                        ShowForm();
> >                                  break;
> > }
> > ?>
> >
> > where ProcessForm returns true or false depending on the DB operation...
> >
> > of course there cannot be any output before the switch?
> >
> > did it help?
> >
> > At 18:24 25/11/01 +0100, Daniel Alsén wrote:
> > > > 2. User fills in a form, clicks "submit" which calls the same script,
> > > > passing itself the values. Depending on the value passed by the submit
> > > > button, the script processes the information (INSERT or
> > UPDATE) and sets
> > > > $done = 1 if successful.
> > > >
> > > > The second scenario is easier to handle.
> > > > Call the same script, passing it $done, and depending on
> > whether or not
> > > > $done is set you redirect.
> > > >
> > > > Juli Meloni has done an excellent tutorial on just this at
> > > > http://www.thickbook.com. look in the tutorials for something
> > like "Form
> > > > With Error Message". You just have to adapt the logic to suit
> > your needs.
> > >
> > >The second scenario is correct. I am actually already using the method in
> > >Melonis tutorial for error messages. But i can´t do a
> > redirection that way
> > >since $done isn´t set until after the db INSERT. My if-statement for the
> > >header is at the top of the page (wich is the only place i can
> > put it) and
> > >will never know if $done is set or not below.
> > >
> > >- Daniel
> > >
> > >
> > >--
> > >PHP General Mailing List (http://www.php.net/)
> > >To unsubscribe, e-mail: [EMAIL PROTECTED]
> > >For additional commands, e-mail: [EMAIL PROTECTED]
> > >To contact the list administrators, e-mail: [EMAIL PROTECTED]
> >
> >
> > _____________________________
> > . Christian Dechery
> > . . Gaita-L Owner / Web Developer
> > . . http://www.webstyle.com.br
> > . . http://www.tanamesa.com.br
> >


_____________________________
. Christian Dechery
. . Gaita-L Owner / Web Developer
. . http://www.webstyle.com.br
. . http://www.tanamesa.com.br


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to