Wrox Home  
Search P2P Archive for: Go

  Return to Index  

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

  Return to Index