'."\n";
include $_SERVER["ConfigFile"];
} elseif (isset($_ENV["CONFIG"]) && is_file($_ENV["CONFIG"])) {
# print ''."\n";
include $_ENV["CONFIG"];
} elseif (is_file("config/config.php")) {
# print ''."\n";
include "config/config.php";
} else {
print "Error, cannot find config file\n";
exit;
}
if (0) {#isset($GLOBALS["developer_email"]) && $GLOBALS['show_dev_errors']) {
error_reporting(E_ALL);
} else {
error_reporting(0);
}
require_once dirname(__FILE__).'/admin/'.$GLOBALS["database_module"];
# load default english and language
require_once dirname(__FILE__)."/texts/english.inc";
include_once dirname(__FILE__)."/texts/".$GLOBALS["language_module"];
# Allow customisation per installation
if (is_file($_SERVER['DOCUMENT_ROOT'].'/'.$GLOBALS["language_module"])) {
include_once $_SERVER['DOCUMENT_ROOT'].'/'.$GLOBALS["language_module"];
}
require_once dirname(__FILE__)."/admin/defaultconfig.inc";
require_once dirname(__FILE__).'/admin/connect.php';
include_once dirname(__FILE__)."/admin/languages.php";
include_once dirname(__FILE__)."/admin/lib.php";
$I18N= new phplist_I18N();
if ($require_login || ASKFORPASSWORD) {
# we need session info if an admin subscribes a user
if (!empty($GLOBALS["SessionTableName"])) {
require_once dirname(__FILE__).'/admin/sessionlib.php';
}
@session_start(); # it may have been started already in languages
}
if (!isset($_POST) && isset($HTTP_POST_VARS)) {
require "admin/commonlib/lib/oldphp_vars.php";
}
/*
We request you retain the inclusion of pagetop below. This will add invisible
additional information to your public pages.
This not only gives respect to the large amount of time given freely
by the developers but also helps build interest, traffic and use of
PHPlist, which is beneficial to it's future development.
Michiel Dethmers, Tincan Ltd 2000,2006
*/
include "admin/pagetop.php";
if (isset($_GET['id'])) {
$id = sprintf('%d',$_GET['id']);
} else {
$id = 0;
}
// What is id,
// What is uid
// What is userid
// Why is there GET(id) and REQUEST(id)?
if (isset($_GET['uid']) && $_GET["uid"]) {
$req = Sql_Fetch_Row_Query(sprintf('select subscribepage,id,password,email from %s where uniqid = "%s"',
$tables["user"],$_GET["uid"]));
$id = $req[0];
$userid = $req[1];
$userpassword = $req[2];
$emailcheck = $req[3];
} elseif (isset($_GET["email"])) {
$req = Sql_Fetch_Row_Query(sprintf('select subscribepage,id,password,email from %s where email = "%s"',
$tables["user"],$_GET["email"]));
$id = $req[0];
$userid = $req[1];
$userpassword = $req[2];
$emailcheck = $req[3];
} elseif (isset($_REQUEST["unsubscribeemail"])) {
$req = Sql_Fetch_Row_Query(sprintf('select subscribepage,id,password,email from %s where email = "%s"',
$tables["user"],$_REQUEST["unsubscribeemail"]));
$id = $req[0];
$userid = $req[1];
$userpassword = $req[2];
$emailcheck = $req[3];
/*
} elseif ($_SESSION["userloggedin"] && $_SESSION["userid"]) {
$req = Sql_Fetch_Row_Query(sprintf('select subscribepage,id,password,email from %s where id = %d',
$tables["user"],$_SESSION["userid"]));
$id = $req[0];
$userid = $req[1];
$userpassword = $req[2];
$emailcheck = $req[3];
*/
} else {
$userid = "";
$userpassword = "";
$emailcheck = "";
}
if (isset($_REQUEST['id']) && $_REQUEST["id"]){
$id = sprintf('%d',$_REQUEST["id"]);
}
# make sure the subscribe page still exists
$req = Sql_fetch_row_query(sprintf('select id from %s where id = %d',$tables["subscribepage"],$id));
$id = $req[0];
$msg = "";
if (!empty($_POST["sendpersonallocation"])) {
if (isset($_POST['email']) && $_POST["email"]) {
$uid = Sql_Fetch_Row_Query(sprintf('select uniqid,email,id from %s where email = "%s"',
$tables["user"],$_POST["email"]));
if ($uid[0]) {
sendMail ($uid[1],getConfig("personallocation_subject"),getUserConfig("personallocation_message",$uid[2]),system_messageheaders(),$GLOBALS["envelope"]);
$msg = $GLOBALS["strPersonalLocationSent"];
addSubscriberStatistics('personal location sent',1);
} else {
$msg = $GLOBALS["strUserNotFound"];
}
}
}
if (isset($_GET['p']) && $_GET["p"] == "subscribe") {
$_SESSION["userloggedin"] = 0;
$_SESSION["userdata"] = array();
}
$login_required =
(ASKFORPASSWORD && $userpassword && $_GET["p"] == "preferences") ||
(ASKFORPASSWORD && UNSUBSCRIBE_REQUIRES_PASSWORD && $userpassword && $_GET["p"] == "unsubscribe");
if ($login_required && empty($_SESSION["userloggedin"])) {
$canlogin = 0;
if (!empty($_POST["login"])) {
# login button pushed, let's check formdata
if (empty($_POST["email"])) {
$msg = $strEnterEmail;
} elseif (empty($_POST["password"])) {
$msg = $strEnterPassword;
} else {
if (ENCRYPTPASSWORD) {
$canlogin = md5($_POST["password"]) == $userpassword && $_POST["email"] == $emailcheck;
} else {
$canlogin = $_POST["password"] == $userpassword && $_POST["email"] == $emailcheck;
}
}
if (!$canlogin) {
$msg = $strInvalidPassword;
} else {
loadUser($emailcheck);
$_SESSION["userloggedin"] = $_SERVER["REMOTE_ADDR"];
}
} elseif (!empty($_POST["forgotpassword"])) {
# forgot password button pushed
if (!empty($_POST["email"]) && $_POST["email"] == $emailcheck) {
sendMail ($emailcheck,$GLOBALS["strPasswordRemindSubject"],$GLOBALS["strPasswordRemindMessage"]." ".$userpassword,system_messageheaders());
$msg = $GLOBALS["strPasswordSent"];
} else {
$msg = $strPasswordRemindInfo;
}
} elseif (isset($_SESSION["userdata"]["email"]["value"]) && $_SESSION["userdata"]["email"]["value"] == $emailcheck) {
# Entry without any button pushed (first time) test and, if needed, ask for password
$canlogin = $_SESSION["userloggedin"];
$msg = $strEnterPassword;
}
} else {
# Logged into session or login not required
$canlogin = 1;
}
if (!$id) {
# find the default one:
$id = getConfig("defaultsubscribepage");
# fix the true/false issue
if ($id == "true") $id = 1;
if ($id == "false") $id = 0;
if (!$id) {
# pick a first
$req = Sql_Fetch_row_Query(sprintf('select ID from %s where active',$tables["subscribepage"]));
$id = $req[0];
}
}
if ($login_required && empty($_SESSION["userloggedin"]) && !$canlogin) {
print LoginPage($id,$userid,$emailcheck,$msg);
} elseif (isset($_GET['p']) && preg_match("/(\w+)/",$_GET["p"],$regs)) {
if ($id) {
$data = PageData($id);
if (isset($data['language_file']) && is_file(dirname(__FILE__).'/texts/'.basename($data['language_file']))) {
@include dirname(__FILE__).'/texts/'.basename($data['language_file']);
# Allow customisation per installation
if (is_file($_SERVER['DOCUMENT_ROOT'].'/'.basename($data['language_file']))) {
include_once $_SERVER['DOCUMENT_ROOT'].'/'.basename($data['language_file']);
}
}
switch ($_GET["p"]) {
case "subscribe":
$success = require "admin/subscribelib2.php";
if ($success != 2) {
print SubscribePage($id);
}
break;
case "preferences":
if (!isset($_GET["id"]) || !$_GET['id']) $_GET["id"] = $id;
$success = require "admin/subscribelib2.php";
if (!$userid) {
# print "Userid not set".$_SESSION["userid"];
print sendPersonalLocationPage($id);
} elseif (ASKFORPASSWORD && $userpassword && !$canlogin) {
print LoginPage($id,$userid,$emailcheck);
} elseif ($success != 3) {
print PreferencesPage($id,$userid);
}
break;
case "forward":
print ForwardPage($id);
break;
case "confirm":
print ConfirmPage($id);
break;
#0013076: Blacklisting posibility for unknown users
case "blacklist":
case "unsubscribe":
print UnsubscribePage($id);
break;
default:
FileNotFound();
}
} else {
FileNotFound();
}
} else {
if ($id) $data = PageData($id);
if (isset($data['language_file']) && is_file(dirname(__FILE__).'/texts/'.basename($data['language_file']))) {
@include dirname(__FILE__).'/texts/'.basename($data['language_file']);
}
print '
'.$GLOBALS["strSubscribeTitle"].'';
print $data["header"];
$req = Sql_Query(sprintf('select * from %s where active',$tables["subscribepage"]));
if (Sql_Affected_Rows()) {
while ($row = Sql_Fetch_Array($req)) {
$intro = Sql_Fetch_Row_Query(sprintf('select data from %s where id = %d and name = "intro"',$tables["subscribepage_data"],$row["id"]));
print $intro[0];
printf('
';
if (!$email) {
$res .= "\n";
$res .= $GLOBALS["PoweredBy"];
$res .= $data["footer"];
return $res;
}
$current = Sql_Fetch_Array_query("SELECT list.id as listid,user.uniqid as userhash, user.password as password FROM $tables[list] as list,$tables[listuser] as listuser,$tables[user] as user where list.id = listuser.listid and user.id = listuser.userid and user.email = \"$email\"");
$some = $current["listid"];
if (ASKFORPASSWORD && !empty($user['password'])) {
# it is safe to link to the preferences page, because it will still ask for
# a password
$hash = $current["userhash"];
} elseif (isset($_GET['uid']) && $_GET['uid'] == $current['userhash']) {
# they got to this page from a link in an email
$hash = $current['userhash'];
} else {
$hash = '';
}
$finaltext = $GLOBALS["strUnsubscribeFinalInfo"];
$pref_url = getConfig("preferencesurl");
$sep = ereg('\?',$pref_url)?'&':'?';
$finaltext = eregi_replace('\[preferencesurl\]',$pref_url.$sep.'uid='.$hash,$finaltext);
if (!$some) {
#0013076: Blacklisting posibility for unknown users
if (!$blacklist) {
$res .= "".$GLOBALS["strNoListsFound"]."";
}
$res .= '