//register.php
/**************************************************************************\
Copyright (c) 2002 Geodesic Solutions, Inc.
All rights reserved
license http://www.gnu.org/copyleft/gpl.html GNU/GPL
http://www.geodesicsolutions.com
\**************************************************************************/
error_reporting(E_ERROR | E_WARNING | E_PARSE);
include("config.php");
include("classes/adodb.inc.php");
include("classes/site_class.php");
include("classes/register_class.php");
$db = &ADONewConnection('mysql');
if (!$db->Connect($db_host, $db_username, $db_password, $database))
{
echo "could not connect to database";
exit;
}
if (!$_COOKIE["classified_session"])
{
$current_time = time();
$sql_query = "delete from geodesic_sessions WHERE last_time < ".($current_time - 3600);
//echo $sql_query." is the query
\n";
$delete_session_result = $db->Execute($sql_query);
if (!$delete_session_result)
{
echo $sql_query."
\n";
return false;
}
//set session in db
srand((double)microtime()*1000000);
do {
$custom_id = md5(uniqid(rand(),1));
$custom_id = substr( $custom_id, 0,32);
$sql_query = "SELECT classified_session FROM geodesic_sessions WHERE classified_session = \"".$custom_id."\"";
//echo $sql_query." is the query
\n";
$custom_id_result = $db->Execute($sql_query);
if (!$custom_id_result)
{
//echo $sql_query."
\n";
return false;
}
} while ($custom_id_result->RecordCount() > 0);
//$ip = getenv("REMOTE_ADDR");
$ip = 0;
$sql_query = "insert into geodesic_sessions
(classified_session,user_id,last_time,ip,level)
values
(\"".$custom_id."\",0,".$current_time.",\"".$ip."\",0)";
//echo $sql_query." is the query
\n";
$insert_session_result = $db->Execute($sql_query);
if (!$insert_session_result)
{
//echo $sql_query."
\n";
return false;
}
$expires = time() + 31536000;
$user_id = 0;
$user_level = 0;
$classified_session = $custom_id;
header("Set-Cookie: classified_session=".$custom_id."; path=/; domain=".$HTTP_HOST."; expires=".gmstrftime("%A, %d-%b-%Y %H:%M:%S GMT",$expires));
}
else
{
$current_time = time();
$sql_query = "delete from geodesic_sessions WHERE last_time < ".($current_time - 3600);
$delete_session_result = $db->Execute($sql_query);
//echo $sql_query." is the query
\n";
if (!$delete_session_result)
{
echo $sql_query."
\n";
return false;
}
//get session information
$sql_query = "SELECT * FROM geodesic_sessions WHERE classified_session = \"".$_COOKIE["classified_session"]."\"";
$session_result = $db->Execute($sql_query);
//echo $sql_query." is the query
\n";
if (!$session_result)
{
//echo $sql_query."
\n";
return false;
}
elseif ($session_result->RecordCount() == 1)
{
//$current_ip = getenv("REMOTE_ADDR");
$current_ip = 0;
$show = $session_result->FetchNextObject();
$sql_query = "update geodesic_sessions set last_time = ".$current_time." where classified_session = \"".$_COOKIE["classified_session"]."\"";
$update_session_result = $db->Execute($sql_query);
//echo $sql_query." is the query
\n";
if (!$update_session_result)
{
//echo $sql_query."
\n";
return false;
}
elseif ($session_result->RecordCount() == 1)
{
if (($show->LAST_TIME < ($current_time + 60)) && ($current_ip == $show->IP))
{
$user_id = $show->USER_ID;
$user_level = $show->LEVEL;
$classified_session = $_COOKIE["classified_session"];
}
else
{
//change session
//setcookie("classified_session","",0,"/","$HTTP_HOST");
$sql_query = "delete from geodesic_sessions where classified_session = \"".$_COOKIE["classified_session"]."\"";
$delete_session_result = $db->Execute($sql_query);
//echo $sql_query." is the query
\n";
if (!$delete_session_result)
{
//echo $sql_query."
\n";
return false;
}
include("classes/authenticate_class.php");
$auth = new Auth($db,$language_id);
header("Location: ".$auth->configuration_data->CLASSIFIEDS_URL);
}
}
else
{
//setcookie("classified_session","",0,"/","$HTTP_HOST");
include("classes/authenticate_class.php");
$auth = new Auth($db,$language_id);
header("Location: ".$auth->configuration_data->CLASSIFIEDS_URL);
}
}
else
{
//setcookie("classified_session","",0,"/","$HTTP_HOST");
include("classes/authenticate_class.php");
$auth = new Auth($db,$language_id);
header("Location: ".$auth->configuration_data->CLASSIFIEDS_URL);
}
}
if ($_REQUEST["set_language_cookie"])
{
$expires = time() + 31536000;
setcookie("language_id",$_REQUEST["set_language_cookie"],$expires);
$site = new Site($db,0,$_REQUEST["language_id"],$auth->classified_user_id);
header("Location: ".$site->configuration_data->CLASSIFIEDS_URL);
}
$language_id = $_COOKIE["language_id"];
$register = new Register($db,$language_id,$classified_session);
if ($user_id)
{
include("classes/classified_browse_class.php");
$browse = new Classified_browse($db,$user_id,$language_id);
$browse->classified_close($db);
$browse->header($db);
$browse->main($db);
$browse->footer($db);
exit;
}
else
{
if (($classified_session) && (!$register->setup_error))
{
if ($_REQUEST["b"] == 3)
{
//the user has clicked the confirmation sent in the email sent to him
//process the confirmation and put the user in the
if ($register->confirm($db,$_REQUEST["hash"],$_REQUEST["username"]))
{
if (!$register->configuration_data->USE_API)
{
//display the registration confirmation completion
$register->set_new_user_id_in_current_session($db);
$register->header($db);
$register->registration_confirmation_success($db);
}
}
else
{
//display the error message from confirmation
$register->header($db);
$register->confirmation_error();
}
}
elseif ($_REQUEST["b"] == 4)
{
$register->header($db);
$register->end_registration($db);
}
else
{
//show the basic form to register
$register->error_found = 0;
if (!$register->registration_code_checked)
{
if ($register->registration_code_use)
{
$c = $_REQUEST["c"];
if ($$_REQUEST["registration_code"])
{
if ($register->check_registration_code($db,$_REQUEST["registration_code"]))
{
$register->header($db);
$register->registration_form_1($db);
}
else
{
$register->header($db);
$register->registration_code_form($db);
}
}
elseif (strlen(trim($c[bypass_registration_code])) > 0)
{
$register->header($db);
$register->update_registration_code_checked($db,1);
$register->set_default_group($db);
$register->registration_form_1($db);
}
elseif (strlen(trim($c[submit_registration_code])) > 0)
{
if ($register->check_registration_code($db,$c[registration_code]))
{
$register->header($db);
$register->registration_form_1($db);
}
else
{
//display error messages
$register->header($db);
$register->registration_code_form($db);
}
}
else
{
$register->header($db);
$register->registration_code_form($db);
}
}
else
{
$register->header($db);
$register->update_registration_code_checked($db,1);
$register->set_default_group($db);
$register->registration_form_1($db);
}
}
elseif (!$register->personal_info_check)
{
if ($_REQUEST["c"])
{
if ($register->check_info($db,$_REQUEST["c"]))
{
$register->update_personal_info_check($db,1);
if ($register->configuration_data->USE_EMAIL_VERIFICATION_AT_REGISTRATION)
{
//do the confirmation
$register->insert_user($db);
$register->header($db);
$register->confirmation_instructions($db);
$register->remove_registration_session($db);
}
else
{
$register->insert_user($db);
if (!$register->configuration_data->USE_API)
{
$register->set_new_user_id_in_current_session($db);
$register->header($db);
$register->registration_confirmation_success($db);
$register->remove_registration_session($db);
}
}
}
else
{
$register->header($db);
$register->registration_form_1($db);
}
}
else
{
$register->header($db);
$register->registration_form_1($db);
}
}
else
{
$register->header($db);
$register->registration_form_1($db);
}
}
$register->footer($db);
}
else
{
//cannot access registration without a classified session
echo "cannot access registration session
\n";
}
}
?>