114 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 	// Project:    Web Reference Database (refbase) <http://www.refbase.net>
 | |
| 	// Copyright:  Matthias Steffens <mailto:refbase@extracts.de> 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:       ./user_logout.php
 | |
| 	// Repository: $HeadURL: file:///svn/p/refbase/code/branches/bleeding-edge/user_logout.php $
 | |
| 	// Author(s):  Matthias Steffens <mailto:refbase@extracts.de>
 | |
| 	//
 | |
| 	// Created:    16-Apr-02, 10:54
 | |
| 	// Modified:   $Date: 2015-02-16 20:53:19 +0000 (Mon, 16 Feb 2015) $
 | |
| 	//             $Author: karnesky $
 | |
| 	//             $Revision: 1405 $
 | |
| 
 | |
| 	// This script logs a user out and redirects 
 | |
| 	// to the calling page. If the script is called
 | |
| 	// unexpectedly, an error message is generated.
 | |
| 
 | |
| 
 | |
| 	// Incorporate some include files:
 | |
| 	include 'includes/include.inc.php'; // include common functions
 | |
| 
 | |
| 	// --------------------------------------------------------------------
 | |
| 
 | |
| 	// START A SESSION:
 | |
| 	// call the 'start_session()' function (from 'include.inc.php') which will also read out available session variables:
 | |
| 	start_session(true);
 | |
| 
 | |
| 	// --------------------------------------------------------------------
 | |
| 
 | |
| 	// Is the user logged in?
 | |
| 	if (isset($_SESSION['loginEmail']))
 | |
| 	{
 | |
| 		// Delete the 'loginEmail' session variable & other session variables we've registered on login:
 | |
| 		// (function 'deleteSessionVariable()' is defined in 'include.inc.php')
 | |
| 		deleteSessionVariable("loginEmail"); // remove the user's email address (as a result the user will be logged out)
 | |
| 		deleteSessionVariable("loginUserID"); // clear the user's user ID
 | |
| 		deleteSessionVariable("loginFirstName"); // clear the user's first name
 | |
| 		deleteSessionVariable("loginLastName"); // clear the user's last name
 | |
| 		deleteSessionVariable("abbrevInstitution"); // clear the user's abbreviated institution name
 | |
| 		deleteSessionVariable("userLanguage"); // clear the user's preferred language
 | |
| 		deleteSessionVariable("userDefaultView"); // clear the user's default view setting
 | |
| 		deleteSessionVariable("userRecordsPerPage"); // clear the user's preferred number of records per page
 | |
| 		deleteSessionVariable("userAutoCompletions"); // clear the user's preference for displaying auto-completions
 | |
| 		deleteSessionVariable("userMainFields"); // clear the user's preferred list of "main fields"
 | |
| 		deleteSessionVariable("lastLogin"); // clear the user's last login date & time
 | |
| 
 | |
| 		if (isset($_SESSION['userGroups']))
 | |
| 			deleteSessionVariable("userGroups"); // clear the user's user groups (if any)
 | |
| 
 | |
| 		if (isset($_SESSION['adminUserGroups']))
 | |
| 			deleteSessionVariable("adminUserGroups"); // clear the admin's user groups (if any)
 | |
| 
 | |
| 		if (isset($_SESSION['userQueries']))
 | |
| 			deleteSessionVariable("userQueries"); // clear the user's saved queries (if any)
 | |
| 
 | |
| 		if (isset($_SESSION['user_export_formats']))
 | |
| 			deleteSessionVariable("user_export_formats"); // clear the user's export formats (if any)
 | |
| 
 | |
| 		if (isset($_SESSION['user_cite_formats']))
 | |
| 			deleteSessionVariable("user_cite_formats"); // clear the user's cite formats (if any)
 | |
| 
 | |
| 		if (isset($_SESSION['user_styles']))
 | |
| 			deleteSessionVariable("user_styles"); // clear the user's styles (if any)
 | |
| 
 | |
| 		if (isset($_SESSION['user_types']))
 | |
| 			deleteSessionVariable("user_types"); // clear the user's types (if any)
 | |
| 
 | |
| 		if (isset($_SESSION['user_permissions']))
 | |
| 			deleteSessionVariable("user_permissions"); // clear any user-specific permissions
 | |
| 
 | |
| 		if (isset($_SESSION['HeaderString']))
 | |
| 			deleteSessionVariable("HeaderString"); // clear any previous messages
 | |
| 
 | |
| 		if (isset($_SESSION['cqlQuery']))
 | |
| 			deleteSessionVariable("cqlQuery"); // clear any stored OpenSearch/CQL query
 | |
| 
 | |
| 		if (isset($_SESSION['oldQuery']))
 | |
| 			deleteSessionVariable("oldQuery"); // clear any query URL pointing to the formerly displayed results page
 | |
| 
 | |
| 		if (isset($_SESSION['oldMultiRecordQuery']))
 | |
| 			deleteSessionVariable("oldMultiRecordQuery"); // clear any query URL pointing to the last multi-record query
 | |
| 
 | |
| 		if (isset($_SESSION['lastListViewQuery']))
 | |
| 			deleteSessionVariable("lastListViewQuery"); // clear any SQL query generated for the last List view
 | |
| 
 | |
| 		if (isset($_SESSION['lastDetailsViewQuery']))
 | |
| 			deleteSessionVariable("lastDetailsViewQuery"); // clear any SQL query generated for the last Details view
 | |
| 
 | |
| //		if (isset($_SESSION['lastCitationViewQuery']))
 | |
| //			deleteSessionVariable("lastCitationViewQuery"); // clear any SQL query generated for the last Citation view
 | |
| 
 | |
| 		if (isset($_SESSION['queryHistory']))
 | |
| 			deleteSessionVariable("queryHistory"); // clear any links to previous search results
 | |
| 	}
 | |
| 	else
 | |
| 	{
 | |
| 		// save an error message:
 | |
| 		$HeaderString = "You cannot logout since you are not logged in anymore!";
 | |
| 
 | |
| 		// Write back session variables:
 | |
| 		saveSessionVariable("HeaderString", $HeaderString); // function 'saveSessionVariable()' is defined in 'include.inc.php'
 | |
| 	}
 | |
| 
 | |
| 	if (!preg_match("/.*user(_details|_options|_receipt|s)\.php.*|.*(error|install|query_manager|query_history)\.php.*/", $referer)) // variable '$referer' is globally defined in function 'start_session()' in 'include.inc.php'
 | |
| 		header("Location: " . $referer); // redirect the user to the calling page
 | |
| 	else
 | |
| 		header("Location: index.php"); // back to main page
 | |
| ?>
 |