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 > -- 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]