| 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>PHP Search</title>
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 <?php
 
 require_once("../phpsessionclass/session.inc.php");
 $bNewQuery = FALSE;
 $bUseSavedQuery = FALSE;
 $strSearchString = "";
 if ($_SERVER['REQUEST_METHOD']="POST") {
 $strSearchString = $_REQUEST['SearchString'];
 $strPG = $_REQUEST['pg'];
 if ($strPG <> "") {
 $iNextPageNumber = $strPG;
 $bNewQuery = FALSE;
 $bUseSavedQuery; $bUseSavedQuery = TRUE;
 } else {
 $bNewQuery = ($strSearchString <> "");
 } // end if
 } // end if
 
 function session_dump() {
 // dumps info about a session
 $session_array = explode(";",session_encode());
 $html = "<br/><!-- SESSION VARIABLES DUMP\n\n";
 for ($x = 0; $x < count($session_array); $x++) {
 $html .= "     $session_array[$x] \n";
 }
 $html .= " -->\n\n";
 return $html;
 }  // end function session_dump
 
 
 ?>
 <style type="text/css">
 <!--
 .pagetitle {
 font-family: Verdana, Arial, Helvetica, sans-serif;
 font-size: x-large;
 font-weight: bold;
 }
 .wdAbstract {
 font-style: italic;
 font-weight: bold;
 }
 .url {
 font-size: smaller;
 font-style: italic;
 }
 .filesize {
 font-size: smaller;
 font-style: italic;
 }
 .filetime {
 font-size: smaller;
 font-style: italic;
 }
 .characterization {
 font-family: Verdana, Arial, Helvetica, sans-serif;
 font-size: smaller;
 }
 -->
 </style>
 </head>
 
 <body>
 <p class="pagetitle">Sample PHP Search Form</p>
 <table width="75%" border="0">
 <tr>
 <td>Enter your query below</td>
 </tr>
 <tr>
 <td><form name="form1" id="form1" method="post" action="<?php echo($_SERVER['SCRIPT_NAME']); ?>">
 <table width="100%" border="0">
 <tr>
 <td width="83%"><input name="SearchString" type="text" id="SearchString" size="80" maxlength="100" value="<?=$strSearchString?>" /></td>
 <td width="17%"><input type="submit" name="Submit" value="New Query" /></td>
 </tr>
 </table>
 </form></td>
 </tr>
 </table>
 <?php
 if ($strSearchString <> "") {
 if ($bNewQuery) {
 $iNextRecordNumber = 1;
 $oQ = new COM("ixsso.Query");
 $oUtil = new COM ("ixsso.util");
 $oQ->Query = $strSearchString;
 $oQ->SortBy = "rank[d]";
 $oQ->Columns = "DocTitle, vpath, path, filename, size, write, characterization";
 $RS = $oQ->CreateRecordSet("nonsequential");
 $RS->PageSize = 3;
 echo ("RS.FieldCount = ".$RS->Fields->Count()." RS.RecordCount =".$RS->RecordCount );
 $bActiveQuery = TRUE;
 } elseif ($bUseSavedQuery) {
 $oQ = new COM("ixsso.Query");
 $oUtil = new COM ("ixsso.util");
 $oQ->Query = $strSearchString;
 $oQ->SortBy = "rank[d]";
 $oQ->Columns = "DocTitle, vpath, path, filename, size, write, characterization";
 $RS = $oQ->CreateRecordSet("nonsequential");
 $RS->PageSize = 3;
 echo ("RS.FieldCount = ".$RS->Fields->Count()." RS.RecordCount =".$RS->RecordCount );
 $bActiveQuery = TRUE;
 
 $oSession=new session();
 $RS->AbsolutePage = $iNextPageNumber;
 $iNextRecordNumber = $RS->AbsolutePosition;
 
 /*        Unable to re-aquire RS type variables across sessions.
 if ( $oSession->is_registered("oQ") and $oSession->is_registered("RS") ) {
 $oQ=$oSession->get("oQ");
 $RS=$oSession->get("RS");
 echo ("FF".$RS->RecordCount."GG");
 if ( $RS->RecordCount <> -1 and $iNextRecordNumber <> -1 ) {
 $RS->AbsolutePage = $iNextPageNumber;
 $iNextRecordNumber = $RS->AbsolutePosition;
 } // end if $RS->RecordCount
 $bActiveQuery = TRUE;
 } else {
 echo ("<p class=\"qfail\"> ERROR - No Saved Query</p>");
 } // end if $oQ and $RS from Session
 */
 } // end if $bNewQuery or Use old query.
 } // end if $strSearchString <> ""
 
 if ($bActiveQuery) {
 if (!$RS->EOF) {
 $iLastRecordOnPage = $iNextRecordNumber + $RS->PageSize -1;
 $iCurrentPage = $RS->AbsolutePage;
 if ($RS->RecordCount <> -1 and $RS->RecordCount < $iLastRecordOnPage) {
 $iLastRecordOnPage = $RS->RecordCount;
 } // end if
 
 echo ("<br/>Documents ".$iNextRecordNumber. " to ".$iLastRecordOnPage);
 if ($RS->RecordCount <> -1) {
 echo (" of ".$RS->RecordCount);
 }
 echo ( " matching the query ".chr(34)."<I>".$strSearchString."</I>".chr(34).".<p>");
 ?>
 <dl>
 <?php         while (!$RS->EOF and $iNextRecordNumber <= $iLastRecordOnPage)    {
 ?>
 
 <p class="abstract">
 <dt>
 <?php echo ($iNextRecordNumber)?>.
 <?php     // epc Include some error handling for when all fields are not specified in oQColums
 if (empty($RS->Fields["DocTitle"]->value) or
 $RS->Fields["DocTitle"]->value=="" or
 $RS->Fields["DocTitle"]->value=="0")  {?>
 <b>    <a href="
 <?=$RS->Fields["vpath"]->value?>
 ">
 <?=htmlentities($RS->Fields["filename"]->value)?>
 </a></b>
 <?php } else {?>
 <b>    <a href="<?=$RS->Fields["vpath"]->value?>">
 <?=htmlentities($RS->Fields["DocTitle"]->value)?>
 </a></b>
 <?php }?>
 <dd>
 <?php if (is_string($RS->Fields["characterization"]->value) and $RS->Fields["characterization"]->value <> "") {?>
 <span class="wdAbstract">Abstract:  </span>
 <span class="characterization">
 <?=htmlentities($RS->Fields["characterization"]->value)?>
 </span><br>
 <?php } ?>
 <span class="url">
 
 <a href="
 <?=$RS->Fields["vpath"]->value?>
 ">http://<?=$_SERVER['SERVER_NAME'];?><?=$RS->Fields["vpath"]->value?>
 </a> -  
 </span>
 <span class="filesize">
 <?php if ($RS->Fields["size"]->value == "") {?>
 (size unknown)
 <?php } else {?>
 size <?=$RS->Fields["size"]->value?> bytes
 <?php }?>
 </span>
 <span class="filetime">
 <?php if ($RS->Fields["write"]->value == "" or (int)$RS->Fields["write"]->value < 100 ) {?>
 (time unknown)
 <?php } else {?>
 <?=date("Y-m-d g:i:s A",$RS->Fields["write"]->value)?> GMT
 <?php }?>
 </span>
 
 </dd>
 <?php        $RS->MoveNext();
 ++$iNextRecordNumber;
 }  // end while
 ?>            </p>
 </dl>
 <p></p><br/>
 <?php    } else {
 if ($iNextRecordNumber == 1) {
 echo ("<p>No documents matched the query ".chr(34).$strSearchString.chr(34)."</p>");
 } else {
 echo ("<p>No more docouments in the query.</p>");
 }
 } // end if $RS.EOF
 
 if ($oQ->OutOfDate) {
 echo ("<p class=\"qmessage\">The index is out of date</p>");
 }
 if ($oQ->QueryIncomplete) {
 echo ("<p class=\"qfail\">The query is too expensive to complte</p>");
 }
 if ($oQ->QueryTimedOut) {
 echo ("<p class=\"qfail\">The query took to long to complte</p>");
 } ?>
 
 <table border="0">
 <tr>
 <?php
 // PREVIOUS Button
 $bSaveQuery=FALSE;?>
 <?php if ($iCurrentPage > 1 and $RS->RecordCount <> -1) {?>
 <td align="left"><form action="<?=$_SERVER['SCRIPT_NAME']?>" method="post">
 <input type="hidden" name="SearchString" value="<?=$strSearchString?>"/>
 <input type="hidden" name="pg" value="<?=$iCurrentPage-1?>"/>
 <input type="submit" value="Previous <?=$RS->PageSize?>" documents/>
 </form>
 </td>
 <?php
 $bSaveQuery=TRUE;
 }?>
 
 <?php if (!$RS->EOF) {?>
 <td align="right"><form action="<?=$_SERVER['SCRIPT_NAME']?>" method="post">
 <input type="hidden" name="SearchString" value="<?=$strSearchString?>"/>
 <input type="hidden" name="pg" value="<?=$iCurrentPage+1?>"/>
 <?php
 $strNextString = "Next ";
 if ($RS->RecordCount <> - 1) {
 $iNextSet = $RS->RecordCount - $iNextRecordNumber + 1;
 if ($iNextSet > $RS->PageSize) { $iNextSet=$RS->PageSize; }
 $strNextString = $strNextString . $iNextSet ." documents";
 } else {
 $strNextString = $strNextString & " page of documents";
 }
 ?>
 <input type="submit" value="<?=$strNextString?>"/>
 </form>
 </td>
 <?php
 $bSaveQuery = TRUE;
 }?>
 </tr>
 </table>
 Page <?=$iCurrentPage?>
 <?php
 if ($RS->PageCount <> -1 ) { echo (" of ".$RS->PageCount);}
 if ($bSaveQuery) {
 // save session information.  This doesnt work because the RS cannot be recovered between sessions.
 $oSession=new session();
 $oSession->register("oQ",$oQ);
 $oSession->register("RS",$RS);
 echo session_dump();
 } else {
 $RS->Close;
 $RS = NULL;
 $oQ = NULL;
 if (is_object($oSession)) {
 $oSession->unregister("oQ");
 $oSession->unregister("RS");
 $oSession->finish;
 }
 } // end if $bSaveQuery
 ?>
 <?php
 } elseif (!$bNewQuery) {
 echo ("");
 } else {
 echo ("Please enter a word or phrase to search for.");
 }// end if $bActiveQuery
 
 ?>
 
 
 </body>
 
 </html>
 
 |