// if pmnl is already installed, redirect to admin login
include("./admin/include/function.php");
if(file_exists("include/config.php")){
include("include/config.php");
include("include/db/db_".$db_type.".inc.php");
upgrade($hostname,$login ,$pass,$database,$table_global_config);
header("Location:./admin/index.php");
exit;
}
include("./include/lib/libconfig.php");
include("./include/interface.php");
include("./include/lib/libnewsletter.php");
$langfile = (isset($_POST['langfile']) ? $_POST['langfile'] : "");
$db_type = (isset($_POST['db_type']) ? $_POST['db_type'] : "");
$step = (isset($_POST['step']) ? $_POST['step'] : 1);
$op = (isset($_POST['op']) ? $_POST['op'] : "");
if(empty($langfile)){
if(empty($db_type)){
// in this case dberror() is not defined anywhere
// so let's add a dumb function
function dberror(){};
}
include("./include/lang/english.php");
} else {
if(empty($db_type)){
// in this case dberror() is not defined anywhere
// so let's add a dumb function
function dberror(){};
}
include_once("include/db/db_".$db_type.".inc.php");
include_once("./include/lang/".$langfile.".php");
}
html_header(translate("PHPMYNEWSLETTER_TITLE"));
echo "
";
echo "
".translate("INSTALL_TITLE")." ".$step."/4
";
if(empty($langfile)){
echo "";
echo "
".translate("INSTALL_LANGUAGE")."
";
echo "
";
echo "";
echo "
";
}
elseif(empty($db_type) && isset($langfile)){
echo "";
echo "
".translate("INSTALL_DB_TYPE")."
";
echo "
";
echo "
";
}
elseif(isset($db_type) && empty($op) && isset($langfile))
{
include_once("include/db/db_".$db_type.".inc.php");
echo "";
}
elseif(isset($db_type) && $op=="saveConfig") {
include("include/db/db_".$db_type.".inc.php");
$createdb = (isset($_POST['createdb']) ? $_POST['createdb'] : 0);
$createtables = (isset($_POST['createtables']) ? $_POST['createtables'] : 0);
$smtp_host = (isset($_POST['smtp_host']) ? $_POST['smtp_host'] : "");
$smtp_auth = (isset($_POST['smtp_auth']) ? $_POST['smtp_auth'] : 0);
$smtp_login = (isset($_POST['smtp_login']) ? $_POST['smtp_login'] : "");
$smtp_pass = (isset($_POST['smtp_pass']) ? $_POST['smtp_pass'] : "");
$mod_sub = (isset($_POST['mod_sub']) ? $_POST['mod_sub'] : 0);
$db_host = (isset($_POST['db_host']) ? $_POST['db_host'] : "");
$db_login = (isset($_POST['db_login']) ? $_POST['db_login'] : "");
$db_pass = (isset($_POST['db_pass']) ? $_POST['db_pass'] : "");
$db_name = (isset($_POST['db_name']) ? $_POST['db_name'] : "");
$table_prefix = (isset($_POST['table_prefix']) ? $_POST['table_prefix'] : "");
$admin_pass = (isset($_POST['admin_pass']) ? $_POST['admin_pass'] : "");
$base_url = (isset($_POST['base_url']) ? $_POST['base_url'] : "");
$path = (isset($_POST['path']) ? $_POST['path'] : "");
$sending_method = (isset($_POST['sending_method']) ? $_POST['sending_method'] : "");
$language = (isset($_POST['language']) ? $_POST['language'] : "");
$sending_limit = (isset($_POST['sending_limit']) ? $_POST['sending_limit'] : "");
$validation_period = (isset($_POST['validation_period']) ? $_POST['validation_period'] : "");
$sub_validation = (isset($_POST['sub_validation']) ? $_POST['sub_validation'] : "");
$unsub_validation = (isset($_POST['unsub_validation']) ? $_POST['unsub_validation'] : "");
$admin_email = (isset($_POST['admin_email']) ? $_POST['admin_email'] : "");
$admin_name = (isset($_POST['admin_name']) ? $_POST['admin_name'] : "");
$sub_validation = (isset($_POST['sub_validation']) ? $_POST['sub_validation'] : "");
if($createdb==1)
{
echo "".translate("INSTALL_SAVE_CREATE_DB", $db_name);
$db= new Db();
$db->DbConnect($db_host, $db_login, $db_pass);
echo $db->DbError();
if($db->DbCreate($db_name)) echo " OK";
else "Erreur";
}
if( $db_type == "mysql"){
if($createtables==1)
{
$db = new Db();
$db->DbConnect($db_host, $db_login, $db_pass, $db_name);
$sql = 'CREATE TABLE `'.$table_prefix.'archives` ('
. ' `id` int(65) NOT NULL default "0",'
. ' `date` datetime NOT NULL default "000-00-00 00:00:00",'
. ' `type` text NOT NULL,'
. ' `subject` text NOT NULL,'
. ' `message` text NOT NULL,'
. ' `list_id` int(11) NOT NULL default "0",'
. ' UNIQUE KEY `id` (`id`)'
. ' ) TYPE=MyISAM;';
echo "".translate("INSTALL_SAVE_CREATE_TABLE", $table_prefix."archives")." : ";
$db->DbQuery($sql);
if($db->DbError()) echo "".translate("ERROR_SQL", $db->DbError()."
Query:" .$sql)."
";
else echo translate("DONE")."";
$sql= 'CREATE TABLE '.$table_prefix.'email ('
. ' `email` varchar(255) NOT NULL default "",'
. ' `list_id` int(11) NOT NULL default "0",'
. ' `hash` varchar(255) NOT NULL default "",'
. ' KEY `hash` (`hash`)'
. ' ) TYPE=MyISAM;';
echo "".translate("INSTALL_SAVE_CREATE_TABLE", $table_prefix."email")." : ";
$db->DbQuery($sql);
if($db->DbError()) echo "".translate("ERROR_SQL", $db->DbError())."
";
else echo translate("DONE")."";
$sql= ' CREATE TABLE `'.$table_prefix.'config` ('
. ' `admin_pass` varchar(64) NOT NULL default "",'
. ' `archive_limit` varchar(64) NOT NULL default "",'
. ' `base_url` varchar(64) NOT NULL default "",'
. ' `path` varchar(64) NOT NULL default "",'
. ' `sending_method` enum("smtp","php_mail","online_mail","nexen_mail","sendmail") NOT NULL default "smtp",'
. ' `language` varchar(64) NOT NULL default "",'
. ' `table_email` varchar(255) NOT NULL default "",'
. ' `table_temp` varchar(255) NOT NULL default "",'
. ' `table_listsconfig` varchar(255) NOT NULL default "",'
. ' `table_archives` varchar(255) NOT NULL default "",'
. ' `smtp_host` varchar(255) NOT NULL default "",'
. ' `smtp_auth` enum("0","1") NOT NULL default "0",'
. ' `smtp_login` varchar(255) NOT NULL default "",'
. ' `smtp_pass` varchar(255) NOT NULL default "",'
. ' `sending_limit` int(4) NOT NULL default "30",'
. ' `validation_period` tinyint(4) NOT NULL default "0",'
. ' `sub_validation` enum("0","1") NOT NULL default "1",'
. ' `unsub_validation` enum("0","1") NOT NULL default "1",'
. ' `admin_email` varchar(255) NOT NULL default "",'
. ' `admin_name` varchar(255) NOT NULL default "",'
. ' `mod_sub` enum("0","1") NOT NULL default "0",'
. ' `mod_sub_table` varchar(255) NOT NULL default "",'
. ' charset varchar(255) NOT NULL default "utf-8"'
. ' ) TYPE=MyISAM;';
echo "".translate("INSTALL_SAVE_CREATE_TABLE", $table_prefix."config")." : ";
$db->DbQuery($sql);
if($db->DbError()) echo "".translate("ERROR_SQL", $db->DbError())."
";
else echo translate("DONE")."";
$sql= 'CREATE TABLE '.$table_prefix.'listsconfig ('
. ' `list_id` tinyint(4) NOT NULL auto_increment,'
. ' `newsletter_name` varchar(255) NOT NULL default "",'
. ' `from_addr` varchar(255) NOT NULL default "",'
. ' `from_name` varchar(255) NOT NULL default "",'
. ' `subject` varchar(255) NOT NULL default "",'
. ' `header` text NOT NULL,'
. ' `footer` text NOT NULL,'
. ' `subscription_subject` varchar(255) NOT NULL default "",'
. ' `subscription_body` text NOT NULL,'
. ' `welcome_subject` varchar(255) NOT NULL default "",'
. ' `welcome_body` text NOT NULL,'
. ' `quit_subject` varchar(255) NOT NULL default "",'
. ' `quit_body` text NOT NULL,'
. ' PRIMARY KEY (`list_id`)'
. ' ) TYPE=MyISAM AUTO_INCREMENT=1 ';
echo "".translate("INSTALL_SAVE_CREATE_TABLE", $table_prefix."listconfig")." : ";
$db->DbQuery($sql);
if($db->DbError()) echo "".translate("ERROR_SQL", $db->DbError())."
";
else echo translate("DONE")."";
$sql= ' CREATE TABLE '.$table_prefix.'sub ('
. ' `email` varchar(255) NOT NULL default "",'
. ' `list_id` varchar(64) NOT NULL default "",'
. ' KEY `list_id` (`list_id`)'
. ' ) TYPE=MyISAM';
echo "".translate("INSTALL_SAVE_CREATE_TABLE", $table_prefix."sub")." : ";
$db->DbQuery($sql);
if($db->DbError()) echo "".translate("ERROR_SQL", $db->DbError())."
";
else echo translate("DONE")."";
$sql= 'CREATE TABLE '.$table_prefix.'temp ('
. ' `email` varchar(255) NOT NULL default "",'
. ' `list_id` varchar(64) NOT NULL default "",'
. ' `hash` varchar(255) NOT NULL default "",'
. ' `date` date NOT NULL default "0000-00-00"'
. ' ) TYPE=MyISAM';
echo "".translate("INSTALL_SAVE_CREATE_TABLE", $table_prefix."temp")." : ";
$db->DbQuery($sql);
if($db->DbError()) echo "".translate("ERROR_SQL", $db->DbError())."
";
else echo translate("DONE")."";
}
} elseif($db_type == "pgsql"){
if($createdb==1)
{
echo "".translate("INSTALL_SAVE_CREATE_DB")." : ";
$db= new Db();
$db->DbConnect($db_host, $db_login, $db_pass);
if($db->DbError()){
echo error_msg(translate("ERROR_DBCONNECT_2", $db->DbError()));
exit();
} else {
if($db->DbCreate($db_name)) echo success_msg(translate("DONE"));
else echo error_msg($db->DbError())."";
}
}
if($createtables==1)
{
$db = new Db();
$db->DbConnect($db_host, $db_login, $db_pass, $db_name);
if($db->DbError()){
echo error_msg(translate("ERROR_DBCONNECT_2", $db->DbError()));
exit();
}
$sql = "CREATE TABLE ".$table_prefix."archives (";
$sql.= "id serial NOT NULL,";
$sql.= "date date NOT NULL,"; //was datetime
$sql.= "type varchar(4) NOT NULL default '',";
$sql.= "subject text NOT NULL,";
$sql.= "message text NOT NULL,";
$sql.= "list_id serial NOT NULL,";
$sql.= "PRIMARY KEY (id)";
//$sql.= "UNIQUE KEY id (id),";
// $sql.= "KEY id_2 (id)";
$sql.= ")";
echo "".translate("INSTALL_SAVE_CREATE_TABLE")." ".$table_prefix."archives : ";
$db->DbQuery($sql);
if($db->DbError()) echo "".translate("ERROR_SQL", $db->DbError()."
Query:" .$sql)."
";
else echo translate("DONE")."";
$sql = "CREATE TABLE ".$table_prefix."email (";
$sql.= "email varchar(255) NOT NULL default '',";
$sql.= "list_id varchar(64) NOT NULL default '',";
$sql.= "hash varchar(255) NOT NULL default ''";
$sql.= ") ";
echo "".translate("INSTALL_SAVE_CREATE_TABLE")." ".$table_prefix."email : ";
$db->DbQuery($sql);
if($db->DbError()) echo "".translate("ERROR_SQL", $db->DbError())."
";
else echo translate("DONE")."";
$sql = "CREATE TABLE ".$table_prefix."config (";
$sql.= "admin_pass varchar(64) NOT NULL default '',";
$sql.= "archive_limit varchar(64) NOT NULL default '',";
$sql.= "base_url varchar(64) NOT NULL default '',";
$sql.= "path varchar(64) NOT NULL default '',";
$sql.= "sending_method varchar(64) NOT NULL default 'smtp',";
$sql.= "language varchar(64) NOT NULL default '',";
$sql.= "table_email varchar(255) NOT NULL default '',";
$sql.= "table_temp varchar(255) NOT NULL default '',";
$sql.= "table_listsconfig varchar(255) NOT NULL default '',";
$sql.= "table_archives varchar(255) NOT NULL default '',";
$sql.= "smtp_host varchar(255) NOT NULL default '',";
$sql.= "smtp_auth varchar(1) NOT NULL default '0',";
$sql.= "smtp_login varchar(255) NOT NULL default '',";
$sql.= "smtp_pass varchar(255) NOT NULL default '',";
$sql.= "sending_limit integer NOT NULL default 30,";
$sql.= "validation_period integer NOT NULL default 0,";
$sql.= "sub_validation varchar(1) NOT NULL default '1',";
$sql.= "unsub_validation varchar(1) NOT NULL default '1',";
$sql.= "admin_email varchar(255) NOT NULL default '',";
$sql.= "admin_name varchar(255) NOT NULL default '',";
//$sql.= "mod_post enum('0','1') NOT NULL default '0',";
$sql.= "mod_sub varchar(1) NOT NULL default '0',";
//$sql.= "mod_post_table varchar(255) NOT NULL default '',";
$sql.= "mod_sub_table varchar(255) NOT NULL default ''";
$sql.= "charset varchar(255) NOT NULL default 'utf-8',";
$sql.= ")";
echo "".translate("INSTALL_SAVE_CREATE_TABLE")." ".$table_prefix."config : ";
$db->DbQuery($sql);
if($db->DbError()) echo "".translate("ERROR_SQL", $db->DbError())."
";
else echo translate("DONE")."";
$sql = "CREATE TABLE ".$table_prefix."listsconfig (";
$sql.= "list_id serial NOT NULL ,";
$sql.= "newsletter_name varchar(255) NOT NULL default '',";
$sql.= "from_addr varchar(255) NOT NULL default '',";
$sql.= "from_name varchar(255) NOT NULL default '',";
$sql.= "subject varchar(255) NOT NULL default '',";
$sql.= "header text NOT NULL,";
$sql.= "footer text NOT NULL,";
$sql.= "subscription_subject varchar(255) NOT NULL default '',";
$sql.= "subscription_body text NOT NULL,";
$sql.= "welcome_subject varchar(255) NOT NULL default '',";
$sql.= "welcome_body text NOT NULL,";
$sql.= "quit_subject varchar(255) NOT NULL default '',";
$sql.= "quit_body text NOT NULL,";
$sql.= "PRIMARY KEY (list_id)";
$sql.= ")";
echo "".translate("INSTALL_SAVE_CREATE_TABLE")." ".$table_prefix."listconfig : ";
$db->DbQuery($sql);
if($db->DbError()) echo "".translate("ERROR_SQL", $db->DbError())."
";
else echo translate("DONE")."";
$sql = "CREATE TABLE ".$table_prefix."sub (";
$sql.= "email varchar(255) NOT NULL default '',";
$sql.= "list_id varchar(64) NOT NULL default ''";
$sql.= ")";
echo "".translate("INSTALL_SAVE_CREATE_TABLE")." ".$table_prefix."sub : ";
$db->DbQuery($sql);
if($db->DbError()) echo "".translate("ERROR_SQL", $db->DbError())."
";
else echo translate("DONE")."";
$sql = "CREATE TABLE ".$table_prefix."temp (";
$sql.= "email varchar(255) NOT NULL default '',";
$sql.= "list_id varchar(64) NOT NULL default '',";
$sql.= "hash varchar(255) NOT NULL default '',";
$sql.= "date date NOT NULL";
$sql.= ")";
echo "".translate("INSTALL_SAVE_CREATE_TABLE")." ".$table_prefix."temp : ";
$db->DbQuery($sql);
if($db->DbError()) echo "".translate("ERROR_SQL", $db->DbError())."
";
else echo translate("DONE")."";
}
}
$db= new Db();
$db->DbConnect($db_host, $db_login, $db_pass, $db_name);
if(!get_magic_quotes_gpc()){
$table_prefix = escape_string($table_prefix);
$admin_pass = escape_string($admin_pass);
$base_url = escape_string($base_url);
$path = escape_string($path);
$smtp_host = escape_string($smtp_host);
$smtp_login = escape_string($smtp_login);
$smtp_pass = escape_string($smtp_pass);
$sending_limit = escape_string($sending_limit);
$validation_period = escape_string($validation_period);
$sub_validation = escape_string($sub_validation);
$unsub_validation = escape_string($unsub_validation);
$admin_email = escape_string($admin_email);
$admin_name = escape_string($admin_name);
$mod_sub = escape_string($mod_sub);
}
$admin_pass = md5($admin_pass);
$sql ="INSERT INTO ".$table_prefix."config VALUES (";
$sql.="'$admin_pass', '50', '$base_url', '$path', ";
$sql.="'$sending_method', '$language', '".$table_prefix."email', '".$table_prefix."temp', ";
$sql.="'".$table_prefix."listsconfig', '".$table_prefix."archives', '$smtp_host', '$smtp_auth', ";
$sql.="'$smtp_login', '$smtp_pass', '$sending_limit', '$validation_period', ";
$sql.="'$sub_validation', '$unsub_validation', '$admin_email', '$admin_name', ";
$sql.=" '$mod_sub', '".$table_prefix."sub', 'utf-8')";
echo "".translate("INSTALL_SAVE_CONFIG").": ";
$db->DbQuery($sql);
if($db->DbError()) echo "".translate("ERROR_SQL", $db->DbError())."
";
else echo translate("DONE")."";
echo "".translate("INSTALL_SAVE_CONFIG_FILE").": ";
$configfile ="";
if(is_writable("include/")){
$fc = fopen("include/config.php", "w");
$w = fwrite ($fc, $configfile );
echo " OK";
} else {
echo "".translate("INSTALL_UNABLE_TO_SAVE_CONFIG_FILE")."
";
echo translate("INSTALL_CONFIG_MANUALLY");
echo"";
}
echo "
";
}
echo "";
table_footer();
page_footer();
html_footer();
?>