GGC

News
Main
Links
SourceForge forum
SourceForge downloads
Javadoc documentation
About this project
Deutsche Flagge Deutsche Version

Legal
Webpages' source

SourceForge.net Logo


Should you experience any difficulties with any of the above pages, please drop the sitemaster a note.

Best viewed with any browser

<?php
// We check if $relpath is set and set it to a default if not.
// The default is to assume we are called from a directory one level lower than the
// toplevel. This variable tells us the path to the main (toplevel) directory in
// relation to the including script. This is a rather hackish way of avoiding a
// config file.
if (!isset ($relpath)) $relpath='../';

// Central configuration for database access.
include_once ($relpath.'php/db.inc');

// Set lots of ini options to make session handling work on sourceforge.
ini_alter ('session.bug_compat_warn''off');
ini_alter ('arg_separator.input''&amp;');
ini_alter ('arg_separator.output''&amp;');
ini_alter ('session.use_only_cookies''1');

// use the project webspace to save session data
session_save_path ('/home/project-web/bediary/persistent/sessions');

// Currently only a wrapper for PHP's session_start () function.
function start_session ()
{
 
session_start ();
}

// Currently only a wrapper for PHP's session_destroy () function.
function end_session ()
{
 
session_destroy ();
}

// Currently only a wrapper for PHP's session_id () function.
function has_session ()
{
 return 
session_id ();
}

// This nice little function handles the visitor counter, using sessions to prevent
// us from counting somebody twice. It has the nice little side effect, that pages
// that don't exist are still counted if a user tries to access them.
// PARAMETERS:
//   +pname: Name of the visited page.
//   +lang: Language of the visited page
function num_visits ($pname$lang//pname is page name
{
 global 
$nodb;
 if (
$nodb) return 'Database not available';
 global 
$misctab;
 
$query='SELECT value FROM '.$misctab.' WHERE name LIKE "visits_'.mysql_real_escape_string($pname).'.'.$lang.'"';
 
//$query='CREATE TABLE misc (name VARCHAR(30) NOT NULL PRIMARY KEY, value VARCHAR(255))';
 //$query='INSERT INTO misc VALUES ("visits", "0")';
 
if ($result = @mysql_query ($query))
  
$row = @mysql_fetch_row ($result);
 else
 {
//  echo 'Error: '.mysql_error ();
  
@mysql_close ($db);
  return 
'Database not available';
 
// exit ();
 
}
 if (
$row[0] == '')
 {
  
$row[0] = 0;
  
$query 'INSERT INTO misc VALUES ("visits_'.mysql_real_escape_string($pname).'.'.$lang.'", "0")';
  if (!
mysql_query ($query))
  {
   
//echo 'Error: '.mysql_error ();
   
@mysql_close ($db);
   return 
'Database not available';
   
//exit ();
  
}
 }
 
$value $row[0];

 if (
has_session() && !$_SESSION['counted_'.$pname.'.'.$lang.''])
 {
  
$value++;
  
$query 'UPDATE '.$misctab.' SET value=(value+1) WHERE name LIKE "visits_'.
      
$pname.'.'.$lang.'"';
  if (!@
mysql_query ($query))
  {
   
//echo 'Error: '.mysql_error ();
   
@mysql_close ($db);
   return 
'Database not available';
   
//exit ();
  
}
 }
 global ${
'counted_'.$pname.'.'.$lang};
 ${
'counted_'.$pname.'.'.$lang} = TRUE;
 @
session_register ('counted_'.$pname.'.'.$lang);
 return 
$value;
}
?>

Visitor count: 11138