示例#1
0
 $SmtpHostname = isset($_POST['txtSmtpHostname']) && strlen($_POST['txtSmtpHostname']) > 0 ? (string) $_POST['txtSmtpHostname'] : NULL;
 $SmtpUsername = isset($_POST['txtSmtpUsername']) && strlen($_POST['txtSmtpUsername']) > 0 ? (string) $_POST['txtSmtpUsername'] : NULL;
 $SmtpPassword = isset($_POST['txtSmtpPassword']) && strlen($_POST['txtSmtpPassword']) > 0 ? (string) $_POST['txtSmtpPassword'] : NULL;
 $SmtpPort = isset($_POST['txtSmtpPort']) && intval($_POST['txtSmtpPort']) > 0 ? intval($_POST['txtSmtpPort']) : 0;
 $SmtpAuth = array_key_exists('chkSmtpAuth', $_POST);
 $PasswordOK = $_POST['txtRepeatPassword'] == $_POST['txtPassword'];
 $EmailOK = Utils::ValidateEmail($UserEmail);
 $DBsettingsSet = isset($DBHostName) && isset($DBUserName) && isset($DBPassword);
 if ($PasswordOK && $EmailOK && $DBsettingsSet) {
     /* @var $dbi DBi */
     if (@($dbi = new DBi($DBHostName, $DBUserName, $DBPassword, 'mysql'))) {
         $DBConnectOK = $dbi->connect_errno == 0;
         if ($DBConnectOK) {
             if ($dbi->ExecuteMulti(sprintf($CreateDBSQL, $dbi->real_escape_string($DBName)))) {
                 $UserSalt = Utils::GenerateGarbage(20);
                 if ($dbi->query(sprintf($InsertUserSQL, $dbi->real_escape_string($UserName), $dbi->real_escape_string(Utils::HashString($Password, $UserSalt)), $dbi->real_escape_string($UserSalt), $dbi->real_escape_string($UserFirstName), $dbi->real_escape_string($UserLastName), $dbi->real_escape_string($UserEmail), $dbi->real_escape_string(serialize(Rights::getTotalRights()))))) {
                     $NewUserID = $dbi->insert_id;
                     $NewConfig = sprintf($ConfigTemplate, str_ireplace('\\', '\\\\', $CandyPath), str_ireplace('\\', '\\\\', $CandyVideoThumbPath), $DBHostName, $DBUserName, $DBPassword, $DBName, $NewUserID, $SmtpFromAddress, $SmtpFromName, $SmtpHostname, $SmtpUsername, $SmtpPassword, $SmtpPort, $SmtpAuth ? 'TRUE' : 'FALSE', $UserFirstName, $UserLastName);
                     if (@file_put_contents('config.php', $NewConfig, LOCK_EX) !== FALSE) {
                         if (is_dir('cache') || mkdir('cache', 0700, TRUE)) {
                             $i = new Info($lang->g('MessageAllDoneConfigWritten'));
                             Info::AddInfo($i);
                             header('location:login.php');
                             exit;
                         } else {
                             $e = new Error(NULL, $lang->g('ErrorSetupCreatingCacheDir'));
                             Error::AddError($e);
                         }
                     } else {
                         $e = new Error(NULL, $lang->g('ErrorSetupWritingConfig'));
                         Error::AddError($e);