RE: [PHP] Redirect upon execution of script...

From: Date: Sun, 25 Nov 2001 18:39:59 +0000
Subject: RE: [PHP] Redirect upon execution of script...
References: 1  Groups: php.general 
Request: Send a blank email to php-general+get-75659@lists.php.net to get a copy of this message
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:cdechery@easynet.com.br] 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: php-general-unsubscribe@lists.php.net For additional commands, e-mail: php-general-help@lists.php.net To contact the list administrators, e-mail: php-list-admin@lists.php.net
_____________________________ . 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

« previous php.general (#75659) next »