// Copyright: Matthias Steffens and the file's // original author(s). // // This code is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY. Please see the GNU General Public // License for more details. // // File: ./receipt.php // Repository: $HeadURL$ // Author(s): Matthias Steffens // // Created: 09-May-08, 12:00 // Modified: $Date: 2012-02-27 20:25:30 +0000 (Mon, 27 Feb 2012) $ // $Author$ // $Revision: 1337 $ // This php script will display a query history for the user's // current session, i.e. it will display links to any previous // search results // TODO: I18n // Incorporate some include files: include 'initialize/db.inc.php'; // 'db.inc.php' is included to hide username and password include 'includes/header.inc.php'; // include header include 'includes/footer.inc.php'; // include footer include 'includes/include.inc.php'; // include common functions include 'initialize/ini.inc.php'; // include common variables // -------------------------------------------------------------------- // START A SESSION: // call the 'start_session()' function (from 'include.inc.php') which will also read out available session variables: start_session(true); // -------------------------------------------------------------------- // Initialize preferred display language: // (note that 'locales.inc.php' has to be included *after* the call to the 'start_session()' function) include 'includes/locales.inc.php'; // include the locales // -------------------------------------------------------------------- // [ Extract form variables sent through POST/GET by use of the '$_REQUEST' variable ] // [ !! NOTE !!: for details see & ] // If there's no stored message available: if (!isset($_SESSION['HeaderString'])) $HeaderString = "Recall a query from your current session:"; // Provide the default message else { $HeaderString = $_SESSION['HeaderString']; // extract 'HeaderString' session variable (only necessary if register globals is OFF!) // Note: though we clear the session variable, the current message is still available to this script via '$HeaderString': deleteSessionVariable("HeaderString"); // function 'deleteSessionVariable()' is defined in 'include.inc.php' } // Extract the view type requested by the user (either 'Mobile', 'Print', 'Web' or ''): // ('' will produce the default 'Web' output style) if (isset($_REQUEST['viewType'])) $viewType = $_REQUEST['viewType']; else $viewType = ""; if (isset($_REQUEST['wrapResults']) AND ($_REQUEST['wrapResults'] == "0")) $wrapResults = "0"; // 'wrapResults=0' causes refbase to output only a partial document structure containing solely the query history (i.e. everything is omitted except for the
) else $wrapResults = "1"; // we'll output a full HTML document structure unless the 'wrapResults' parameter is set explicitly to "0" // Get the query URL of the formerly displayed results page: if (isset($_SESSION['oldQuery'])) $oldQuery = $_SESSION['oldQuery']; else $oldQuery = array(); // Get any saved links to previous search results: if (isset($_SESSION['queryHistory'])) $queryHistory = $_SESSION['queryHistory']; else $queryHistory = array(); // Check if there's any query history available: if (empty($queryHistory)) { // return an appropriate error message: $HeaderString = returnMsg("No query history available!", "warning", "strong", "HeaderString"); // function 'returnMsg()' is defined in 'include.inc.php' header("Location: " . $referer); // variable '$referer' is globally defined in function 'start_session()' in 'include.inc.php' exit; // >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> !EXIT! <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< } // -------------------------------------------------------------------- // (4) DISPLAY HEADER & RESULTS // (NOTE: Since there's no need to query the database here, we won't perform any of the following: (1) OPEN CONNECTION, (2) SELECT DATABASE, (3) RUN QUERY, (5) CLOSE CONNECTION) // Show the login status: showLogin(); // (function 'showLogin()' is defined in 'include.inc.php') // (4a) DISPLAY header: // Call the 'displayHTMLhead()' and 'showPageHeader()' functions (which are defined in 'header.inc.php'): if ($wrapResults != "0") { displayHTMLhead(encodeHTML($officialDatabaseName) . " -- Query History", "noindex,nofollow", "Displays links to previous search results", "", false, "", $viewType, array()); if (!preg_match("/^(Print|Mobile)$/i", $viewType)) // Note: we omit the visible header in print/mobile view ('viewType=Print' or 'viewType=Mobile') showPageHeader($HeaderString); echo "\n"; } // (4b) DISPLAY results: echo "
"; // Print a link to the current query: if (!empty($oldQuery)) { echo "\n\t
" . "\n\t\t
Current Query
"; // Extract the 'WHERE' clause from the current SQL query: $queryWhereClause = extractWHEREclause($oldQuery["sqlQuery"]); // function 'extractWHEREclause()' is defined in 'include.inc.php' $queryTitle = encodeHTML(explainSQLQuery($queryWhereClause)); // functions 'encodeHTML()' and 'explainSQLQuery()' are defined in 'include.inc.php' // Generate a 'search.php' URL that points to the current query: $queryURL = generateURL("search.php", "html", $oldQuery, true); // function 'generateURL()' is defined in 'include.inc.php' echo "\n\t\t
" . "\n\t\t\t" . $queryTitle . "" . "\n\t\t
" . "\n\t
"; } // Print links to any previous search results: if (!empty($queryHistory)) { echo "\n\t
" . "\n\t\t
Previous Queries
"; $queryHistory = array_reverse($queryHistory); // Display links to previous search results: for ($i = 0; $i < count($queryHistory); $i++) { if (is_integer($i / 2)) // if we currently are at an even number of rows $rowClass = "even"; else $rowClass = "odd"; echo "\n\t\t
" . "\n\t\t\t" . $queryHistory[$i] . "\n\t\t
"; } echo "\n\t
"; } echo "\n
"; // -------------------------------------------------------------------- // DISPLAY THE HTML FOOTER: // Call the 'showPageFooter()' and 'displayHTMLfoot()' functions (which are defined in 'footer.inc.php') if ($wrapResults != "0") { if (!preg_match("/^(Print|Mobile)$/i", $viewType)) // Note: we omit the visible footer in print/mobile view ('viewType=Print' or 'viewType=Mobile') showPageFooter($HeaderString); displayHTMLfoot(); } // -------------------------------------------------------------------- ?>