I like this approach. I may try that out sometime, because in this case I didn't really want any output before the header. All the scripting work was to be done before any output hit the browser window anyways.
----- Original Message ----- From: "Stephen Edmonds" <[EMAIL PROTECTED]> To: "PHP Helplist Windows" <[EMAIL PROTECTED]> Cc: "Max Graham" <[EMAIL PROTECTED]> Sent: Thursday, November 28, 2002 6:21 AM Subject: Re: [PHP-WIN] Redirect browser to another URL? > if ( $FormIsSent == "My-String ) { > process form > header( "Location: url" ); > } > else { > display form > <input type = "hidden" name = "FormIsSent" value = "My-String"> > } > > I use this technique on my sites all the time. The only restriction is you > can't have any output before the header. If there is an error in the form, > store it in an error variable: > > $error[NameForError] = "Problem with form"; > > then use a foreach to get the values back out > > if ( count( $error ) ) { > foreach ( $error as $key=>$value ) { > print "Error with $key - $value<br>"; > } > } > else { > header( "location: http://youurl.com/formsuccess.php" ); > exit; > } > > ----- Original Message ----- > From: "Max Graham" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Thursday, November 28, 2002 5:50 AM > Subject: Re: [PHP-WIN] Redirect browser to another URL? > > > > You know, this is exactly what happened to me. I was trying to design a > > comments page for a weblog to open in a popup. The page had a submission > > form that would submit back to itself. 'course, I was banging my head on > the > > wall trying to come up with a way to get the page to detect whether it had > > received a form submission and write the comments to a comment file, and > > then include the comment file with the form afterwards. I kept coming up > > with the results of fopen(), fputs(), fflush(), and fclose() coming back > as > > false, which equals failed. I eventually did go to a separate page to do > the > > file writing, and that page finishes up with a 1-second delay using the > > javascript setTimeout() for this command in a standalone function: > > > > echo "location.replace('blogcomments.php?target=".$target."');\n"; > > > > Inelegant, but it works. I haven't had too much experience with the header > > function, and knowing how long it took me to bang this one out, I might > set > > something on fire trying it :) > > > > Anyone else had any fun with this issue? > > > > Message-ID: <[EMAIL PROTECTED]> > > To: [EMAIL PROTECTED] > > Reply-To: "Jack Kelly Dobson" <[EMAIL PROTECTED]> > > From: "Jack Kelly Dobson" <[EMAIL PROTECTED]> > > Date: Wed, 27 Nov 2002 10:19:30 -0600 > > Subject: Re: [PHP-WIN] Redirect browser to another URL? > > > > Thanks for all the help guys. > > > > My problem, as most of you figured, is that my script has a form in it > that > > re-runs itself when the form is submitted so there is only one script > > including the form and all the validation for the form. If the validation > is > > successful it sends you to a different page depending on the information > > posted in the form. There was therefore no way I could get the header() to > > be at the top of the returned data. > > > > I ended up using: > > > > if ($condition) { > > print("<SCRIPT LANGUAGE='JavaScript'>window.location='" . $url . > > "'</SCRIPT>"); > > } > > > > A rather elegant solution I've decided. > > > > Oh, and FYI to all you IIS users out there... (At least I'm assuming it's > > IIS and not the Windows platform itself. I'd be interested to know what > > Windows users running Apache are experiencing). > > > > I didn't have this problem with my script until I migrated it to a > > Linux/Apache platform. > > > > I assume that means that when I was doing it the original way that I had > > multiple sets of header information and no telling what else being sent > back > > to the browser and IIS wasn't producing any error. Anyone using IIS and > the > > header(location: '') function might want to make sure they aren't exposing > > data they didn't mean to. > > > > j- > > > > > > > > -- > > PHP Windows Mailing List (http://www.php.net/) > > To unsubscribe, visit: http://www.php.net/unsub.php > > > > > > > > -- PHP Windows Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php