|
 |
pro_php thread: Apache problem with header() function
Message #1 by "Lourens Naudé" <lourens@e...> on Mon, 17 Sep 2001 12:49:53
|
|
> Apache bombs with the ever so annoying Dr. Watson dialog box when I
issue
> a header() redirect in my scripts.
> Enviroment : Win 2000 Professional/Apache 1.3.20/MySQL 3.23.32/PHP 4.0.6
> as Apache module.
> Use a redirect function in an commmon include file :
> +++++++++++++++++++++++++++++++++++++++++++++++++++++
> Function Redirect($url) {
> Header("Location: $url");
> exit;
> }
> +++++++++++++++++++++++++++++++++++++++++++++++++++++
> Here are the calling script which bombs on the Redirect functions.I use
> the same include file for all project scripts and the ones not calling
the
> Redirect() function are fine.
> +++++++++++++++++++++++++++++++++++++++++++++++++++++
> <?php
> ob_start();
> ob_implicit_flush(0);
> require("./../../includes/common.inc");
> Connect();
> Fun();
> ?>
> <html>
> <head>
> <title>Untitled Document</title>
> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
> </head>
> <body bgcolor="#FFFFFF" text="#000000">
> <div align="center"><img src="./../../assets/shared/header/step1.gif"
> width="676" height="27"><br>
> </div>
> <table width="70%" border="0" cellspacing="0" cellpadding="0"
> align="center">
>
> <form name="search" method="POST" action=<? echo $PHP_SELF;?> >
> <tr bgcolor="#FF9900">
> <td colspan="3">
> <div align="center"><b><font color="#FFFFFF">Accommodation
> Search</font></b></div>
> </td>
> </tr>
> <tr bgcolor="#FFFFCC" valign="middle" align="left">
> <td colspan="3">
> <div align="left"><b> <font size="2"><img
> src="./../../assets/search/option1.gif" width="80" height="15"
vspace="2"
> hspace="5">Search
> <? echo Rows("SELECT * FROM accommodation"); ?>
> accommodation establishments</font></b></div>
> </td>
> </tr>
> <tr>
> <td width="27%"><b><font size="2">Name</font></b></td>
> <td width="31%"> </td>
> <td width="42%"><b><font size="2">Location</font></b></td>
> </tr>
> <tr>
> <td width="27%">
> <select name="accommodation.aid" size="3">
> <option selected value = "0">Select accommodation</option>
> <?php
> CreateListS(0,"SELECT * FROM accommodation"); ?>
> </select>
> </td>
> <td width="31%"> </td>
> <td width="42%">
> <select name="accommodation.location" size="3">
> <option selected value = "0">Select location</option>
> <?php
> CreateList(0,"SELECT * FROM location"); ?>
> </select>
> </td>
> </tr>
> <tr>
> <td width="27%"> </td>
> <td width="31%"> </td>
> <td width="42%"> </td>
> </tr>
> <tr>
> <td width="27%"><b><font size="2">Star rating</font></b></td>
> <td width="31%"> </td>
> <td width="42%"><b><font size="2">Category</font></b></td>
> </tr>
> <tr>
> <td width="27%">
> <select name="ratings.star" size="3">
> <option selected value="0">Select rating</option>
> <option value="1">1</option>
> <option value="2">2</option>
> <option value="3">3</option>
> <option value="4">4</option>
> <option value="5">5</option>
> </select>
> </td>
> <td width="31%"> </td>
> <td width="42%">
> <select name="accommodation.category" size="3">
> <option selected value = "0">Select category</option>
> <?php
> CreateList(0,"SELECT * FROM category"); ?>
> </select>
> </td>
> </tr>
> <tr>
> <td width="33%"> </td>
> <td width="25%"> </td>
> <td width="42%"> </td>
> </tr>
> <tr>
> <td width="40%" align="right"><font size="2"><b>Sort results by
> <select name="sort">
> <option selected value="ORDER by
> accommodation.name">Name</option>
> <option value="ORDER by
accommodation.location">Location</option>
> <option value="ORDER by
accommodation.category">Category</option>
> </select>
> </b></font></td>
> <td width="25%"> </td>
> <td width="42%" align="left"><font size="2"><b>Results per page
> <select name="results">
> <option selected value="5">5</option>
> <option value="10">10</option>
> <option value="15">15</option>
> <option value="20">20</option>
> </select>
> </b></font></td>
> </tr>
> <tr>
> <td colspan="3"> </td>
> </tr>
> <tr>
> <td colspan="3">
> <div align="center">Click <a
> href="http://www.esouthafrica.com">here</a>
> to browse all establishments</div>
> </td>
> </tr>
> <tr>
> <td width="27%"> </td>
> <td width="31%"> </td>
> <td width="42%"> </td>
> </tr>
> <tr>
> <td colspan="3">
> <div align="center">
> <input type="submit" name="Submit" value="Search">
> </div>
> </td>
> </tr>
> </form>
> <tr bgcolor="#FFFFFF">
> <td colspan="3"> </td>
> </tr>
> <tr bgcolor="#FFFFCC" valign="middle">
> <td colspan="3">
> <div align="left"><b><font size="2"><img
> src="./../../assets/search/option2.gif" width="88" height="15"
hspace="5"
> vspace="3">Search
> by number of guests</font></b></div>
> </td>
> </tr>
> <form name="searchguests" method="GET" action=<? echo "searchppl.php";?
>
> >
> <tr>
> <td colspan="3">
> <div align="center"><font size="2"><b>Number of guests :
> <select name="numguests">
> <option value="0">Select</option>
> <? if ($REQUEST_METHOD == "POST") {$select = $HTTP_POST_VARS
> ["adult"];}else{$select = 16;}
> CreateListNum($select,1,15);
> ?>
> </select>
> </b></font></div>
> </td>
> </tr>
> <tr>
> <td colspan="3">
> <div align="center">
> <input type="submit" name="Submit2" value="Search">
> </div>
> </td>
> </tr>
> </form>
> <tr bgcolor="#FFFFFF">
> <td colspan="3"> </td>
> </tr>
> <tr bgcolor="#FFFFCC" valign="middle">
> <td colspan="3">
> <div align="left"><b><font size="2"><img
> src="./../../assets/search/option3.gif" width="87" height="15"
hspace="5"
> vspace="3">Search
> current specials</font></b></div>
> </td>
> </tr>
> <tr>
> <td colspan="3"> </td>
> </tr>
> <tr>
> <td colspan="3"> </td>
> </tr>
> <tr>
> <td colspan="3"> </td>
> </tr>
> <tr>
> <td colspan="3"> </td>
> </tr>
> <tr>
> <td colspan="3"> </td>
> </tr>
> </table>
> </body>
> </html>
> <?
> if ($REQUEST_METHOD == "POST") {
> $count = 0;
> reset($HTTP_POST_VARS);
> while (list ($key, $val) = each ($HTTP_POST_VARS)) {
> if ($val == 0 and $key != "Submit" and $key != "sort" and $key !
> = "results") { $count++; }
> }
> if ($count == 4)
> {$query = "SELECT * FROM accommodation ORDER BY accommodation.name";}
> else {
> if ($HTTP_POST_VARS["ratings_star"] != 0)
> { $query = "SELECT * FROM accommodation,ratings WHERE "; }
> else { $query = "SELECT * FROM accommodation WHERE "; }
> reset($HTTP_POST_VARS);
> while (list ($key, $val) = each ($HTTP_POST_VARS)) {
> if ($val != "Submit" && $val != 0 && $key != "sort" && $key !
= "results")
> {
> $key = str_replace("_",".",$key);
> $query .= $key." = ".$val;
> $query .= " AND ";
> } //end if
> } //end while
> $query = chop($query);
> if (substr($query,-3) == "AND") { $query = substr_replace($query,"",-
> 3,3); }
> $query .= " ".$HTTP_POST_VARS["sort"];
> }
> $limit = $HTTP_POST_VARS["results"];
> //$query = urlencode($query);
> $url = "http://localhost/public/results/acc/index.php?
> query=$query&limit=$limit";
> Redirect("http://localhost/public/results/acc/index.php?
> query=$query&limit=$limit");
> }
> ClearBuffer();
> ?>
> +++++++++++++++++++++++++++++++++++++++++++++++++++++
Managed to sort it out eventually.PS:Header can be used if you use the PHP
buffer functions.The "exit;" statement in the "Redirect" function
terminated the script before buffer could be sent back to browser
|
|
 |