Re: Sending a header redirect mid-page
| From: | Dan Tappin | Date: | Thu, 28 Mar 2002 20:19:17 +0000 |
| Subject: | Re: Sending a header redirect mid-page | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-90589@lists.php.net to get a copy of this message | ||
>> -----Original Message-----
>> From: Dan Tappin [mailto:dan@wavefront.ca]
>> Sent: Thursday, March 28, 2002 12:36 PM
>>
>> My only concern is that I am adding another mysql_connect and
>
> Why do it twice? The connection will still be there later in the script.
Yes... I realized that after I hit send :^)
>> I don't want to slow things down any (things are blazing fast now but I
>> want to keep it that way).
>
> It's not worth worrying about microseconds
That's what I figured.
>> It would be really nice if there was a one line function that
>> could do this. I also use Lasso and they have a simple
>> [URL_Redirect:'http://domain.com'] tag which does
>> the job.
>
> You could write a function that does that like:
> function connect_to_db($host,$dbName,$user,$pass,$redirectTo) {
> $db = mysql_connect($host,$user,$pass);
> if (!db) {
> log(mysql_error());
> header("Location: $redirectTo");
> exit;
> }
> if (!mysql_select_db($dbname,$db)) {
> log(mysql_error());
> header("Location: $redirectTo");
> exit;
> }
> return $db;
> }
That is a really good idea. Now do I need to do something like this:
<? include('phpmysqlstuff.inc'); ?>
<html>
Blaa blaa blaa
</html>
<? ob_end_clean(); ?>
>>
>> I am also unfamiliar with the output buffer functions even
>> after reading up on them in the manual. If I call ob_start()
>> at the start of
>> my page do I need to call a closing ob function after my $dbfail code if
>> the connection is successful and my redirect ob_end_clean(); call is
>> not made?
>
> No, ob_end* ends the buffering.
I still do not get the ob stuff. Is there any issue with having a
ob_start(); in my initial include and no ob_end* after this. I guess I
still really don't understand what is actual happening when I call
ob_start(). All I know if that I can then call the header function where
ever I want later.
I just want to know if I am creating any type security, or memory issue by
calling ob_start and then not calling ob_end*. I am going to take a guess
that when the server hits the end of the file the end is called anyway.
Thanks,
Dan