Last revision: 28/12/10
*/
// Someone is trying to hack us?
if (!defined('JAPPIX_BASE')) {
    exit;
}
// Marker
$valid_user = true;
// Administrator name
if (isset($_POST['user_name']) && !empty($_POST['user_name'])) {
    $user_name = trim($_POST['user_name']);
} else {
    $valid_user = false;
}
// Administrator password (first)
if (isset($_POST['user_password']) && !empty($_POST['user_password'])) {
    $user_password = trim($_POST['user_password']);
} else {
    $valid_user = false;
}
// Administrator password (second)
if (isset($_POST['user_repassword']) && $user_password != $_POST['user_repassword']) {
    $valid_user = false;
}
// Generate the users XML content
if ($valid_user) {
    // Add our user
    manageUsers('add', array($user_name => $user_password));
    // Reset the user name
    $user_name = '';
}
                                $users_removed = false;
                                $users_remove = array();
                                // Try to get the users to remove
                                foreach ($_POST as $post_key => $post_value) {
                                    // Is it an admin user?
                                    if (preg_match('/^admin_(.+)$/i', $post_key)) {
                                        // Update the marker
                                        $users_removed = true;
                                        // Push the value to the global array
                                        array_push($users_remove, $post_value);
                                    }
                                }
                                // Somebody has been removed
                                if ($users_removed) {
                                    // Remove the users!
                                    manageUsers('remove', $users_remove);
                                    ?>
						<p class="info smallspace success"><?php 
                                    _e("The chosen users have been removed.");
                                    ?>
</p>
					<?php 
                                } else {
                                    ?>
						<p class="info smallspace fail"><?php 
                                    _e("You must select one or more users to be removed!");
                                    ?>
</p>
				<?php 
                                }
                            }
示例#3
0
/** 
* Proccess Admin User Login Settings and various contional statements related to this plugin.
*
* @return string content or page protected message
*/
function user_login_admin()
{
    $Feul = new Feul();
    if (isset($Feul->first) && !isset($_GET['settings'])) {
        echo '<div class="error"><a href="load.php?id=user_login&settings">Кликните здесь</a>, чтобы выбрать метод хранения и другие параметры.</div>';
    }
    ?>
	
	<link rel="stylesheet" type="text/css" href="../plugins/user-login/css/admin_style.css" />
	<div style="width:100%;margin:0 -15px -15px -10px;padding:0px;">
		<h3  class="floated">Плагин регистрации пользователей</h3>
		<div class="edit-nav clearfix">
			<p>
				<a href="load.php?id=user_login&help">Помощь</a>
				<a href="load.php?id=user_login&settings">Настройки</a>
				<a href="load.php?id=user_login&email=yes">Письма</a>
				<a href="load.php?id=user_login&manage=yes">Управление</a>
			</p>
		</div>
	</div>
	</div>
	<div class="main" style="margin-top:-10px;">
	<?php 
    if (isset($_GET['email'])) {
        if (isset($_POST['send-email'])) {
            if (isset($_POST['send_all'])) {
                if ($Feul->Storage == 'XML') {
                    $dir = SITEUSERSPATH . "*.xml";
                    // Make Edit Form For Each User XML File Found
                    foreach (glob($dir) as $file) {
                        $xml = simplexml_load_file($file) or die("Unable to load XML file!");
                        $Feul->processEmailUser($xml->EmailAddress, $xml->Username, $_POST['email'], $_POST['subject'], $_POST['post-email-message']);
                    }
                    echo '<div class="updated">Письма успешно отправлены</div>';
                } elseif ($Feul->Storage == 'DB') {
                    try {
                        $sql = "SELECT * FROM " . $this->DB_Table_Name;
                        foreach ($this->dbh->query($sql) as $row) {
                            $Feul->processEmailUser($row['EmailAddress'], $row['Username'], $_POST['email'], $_POST['subject'], $_POST['post-email-message']);
                        }
                        echo '<div class="updated">Письма успешно отправлены</div>';
                    } catch (PDOException $e) {
                        echo '<div class="error">Ошибка: ' . $e->getMessage() . '</div>';
                    }
                }
            } else {
                $emails = $Feul->processEmailUser($_POST['email_to'], null, $_POST['email'], $_POST['subject'], $_POST['post-email-message']);
                if ($emails != false) {
                    echo '<div class="updated">Письма успешно отправлены</div>';
                }
            }
        }
        global $text_area_name;
        $text_area_name = 'post-email-message';
        ?>
		<h3>Настройки писем для пользователей</h3>
		<form method="post" action="load.php?id=user_login&email=yes&send-email=yes">
		    <div style="padding:10px;margin-bottom:15px;background-color:#f6f6f6;">
			<p>
				<label for="from-email">Адрес электронной почты  в поле "От"</label>
				<input type="text" name="email" class="text" value="<?php 
        echo $Feul->getData('email');
        ?>
" />
			</p>
			</div>
			<div style="padding:10px;margin-bottom:15px;background-color:#f6f6f6;">
			<p>
				<label>Выбрать, чтобы отправить письма всем пользователям</label>
				<input type="checkbox" name="send_all" />
			</p>
			<p style="margin-top:-10px; margin-bottom:10px;">
				<label>ИЛИ:</label>
			</p>
			<p>
				<label for="subject">Введите адреса электронной почты получателей здесь. Разделять запятой.</label>
				<input style="width:100%!important;" type="text" name="email_to" class="text" value="" />
			</p>
			</div>
			<div style="padding:10px;margin-bottom:15px;background-color:#f6f6f6;">
			<p>
				<label for="subject">Тема электронного письма</label>
				<input style="width:50%!important;" type="text" name="subject" class="text" value="" />
			</p>
			<label for="email-message">Содержание письма:</label>
			<textarea name="post-email-message"></textarea>
			<?php 
        include USERLOGINPATH . 'ckeditor.php';
        ?>
			<br><br><input type="submit" class="submit" name="send-email" value="Отправить" />
			</div>
		</form>
	<?php 
    } elseif (isset($_GET['settings'])) {
        if (isset($_POST['storage'])) {
            $submit_settings = $Feul->processSettings();
            if ($submit_settings == true) {
                echo '<div class="updated">Настройки плагина успешно сохранены!</div>';
            } else {
                echo '<div class="error">Настройки не могут быть сохранены!</div>';
            }
        } elseif (isset($_GET['create_db'])) {
            $create_db = $Feul->createDB();
            if ($create_db != false) {
                echo '<div class="updated">Создать базу данных</div>';
            }
        } elseif (isset($_GET['create_tb'])) {
            $check_table = $Feul->checkTable();
            if ($check_table == '1') {
                echo '<div class="error">Таблица базы данных уже существует.</div>';
            } else {
                $create_table = $Feul->createDBTable();
                $check_table_again = $Feul->checkTable();
                if ($check_table_again == '1') {
                    echo '<div class="updated">Таблица базы данных создана.</div>';
                } elseif ($check_table_again != 1) {
                    echo '<div class="error">Таблица базы данных не может быть создана.</div>';
                }
            }
        }
        ?>
			
			<form method="post">
			<h2>Параметры хранения</h2>
			<p>
				<label>Выберите метод хранения</label>
				<input type="radio" name="storage" value="XML" <?php 
        if ($Feul->Storage == 'XML') {
            echo ' CHECKED';
        }
        ?>
 /> Файлы XML
				<br/>
				<input type="radio" name="storage" value="DB" <?php 
        if ($Feul->Storage == 'DB') {
            echo ' CHECKED';
        }
        ?>
 /> Базы данных
			</p>
			
			<h4>Настройки базы данных</h4>
			<p>
				<label>Хост</label>
				<input type="text" class="text full" name="db_host" value="<?php 
        if ($Feul->DB_Host == '') {
        } else {
            echo $Feul->DB_Host;
        }
        ?>
" />
			</p>
			<p>
				<label>Имя пользователя</label>
				<input type="text" class="text full" name="db_user" value="<?php 
        if ($Feul->DB_User == '') {
        } else {
            echo $Feul->DB_User;
        }
        ?>
" />
			</p>
			<p>
				<label>Пароль</label>
				<input type="text" class="text full" name="db_pass" value="<?php 
        if ($Feul->DB_Pass == '') {
        } else {
            echo $Feul->DB_Pass;
        }
        ?>
" />
			</p>
			<p>
				<label>Имя базы данных</label>
				Вы можете выбрать любое имя базы данных. <strong>Если авто-создание не удается,</strong> вам придется добавить префикс db_name к имени пользователя mysql <br>(например: username_dbname)
				<input type="text" class="text full" name="db_name" value="<?php 
        if ($Feul->DB_Name == '') {
            echo '';
        } else {
            echo $Feul->DB_Name;
        }
        ?>
" />
			</p>
			<p>
				<label>Имя таблицы базы данных</label>
				Мы настоятельно рекомендуем оставить это 'users'<br/>
				<input type="text" class="text full" name="db_table_name" value="<?php 
        if ($Feul->DB_Table_Name == '') {
            echo 'users';
        } else {
            echo $Feul->DB_Table_Name;
        }
        ?>
" />
			</p>
			<p>
				<label>Ошибки PDO (Сообщения об ошибках базы данных)</label>
				<input type="radio" name="errors" value="On" <?php 
        if ($Feul->Errors == 'On') {
            echo ' CHECKED';
        }
        ?>
 /> Включить
				<br/>
				<input type="radio" name="errors" value="Off" <?php 
        if ($Feul->Errors == 'Off') {
            echo ' CHECKED';
        }
        ?>
 /> Отключить
			</p>
			<p>
				<input type="submit" name="Feul_settings_form" class="submit" value="Сохранить" />
			</p>
			<p>
				<a href="load.php?id=user_login&settings&create_db">Попытаться создать базу данных</a><br/>
				<a href="load.php?id=user_login&settings&create_tb">Попытаться создать таблицу базы данных</a>
			</p>
			</div>
			<div class="main" style="margin-top:-10px;">
				<h2>Настройки электронной почты</h2>
				<p>
					<label>Редактировать адрес электронной почты "От"</label>Этот адрес указывается в поле "От" в письме, высылаемом пользователю после регистрации:<br/>
					<input type="text" name="post-from-email" class="text full" value="<?php 
        echo $Feul->getData('email');
        ?>
" />
				</p>
				
			</div>
			<div class="main" style="margin-top:-10px;">
			<h2>CSS и предупреждение для незарегистрированных пользователей</h2>
				<p>
					<label>Редактировать CSS формы входа</label>
					<textarea name="post-login-container" class="full" style="height:300px;">
						<?php 
        echo $Feul->LoginCss;
        ?>
					</textarea>
				</p>
				<p>
					<label>Редактировать CSS сообщения после входа</label>
					<textarea name="post-welcome-box" class="full" style="height:300px;">
						<?php 
        echo $Feul->WelcomeCss;
        ?>
					</textarea>
				</p>
				<p>
					<label>Редактировать CSS формы регистрации</label>
					<textarea name="post-register-box" class="full" style="height:300px;">
						<?php 
        echo $Feul->RegisterCss;
        ?>
					</textarea>
				</p>
				<p>
					<label>Редактировать предупреждение</label>
					<textarea name="post-protected-message">
						<?php 
        global $text_area_name;
        $text_area_name = 'post-protected-message';
        echo $Feul->ProtectedMessage;
        ?>
					</textarea>
					</p>
				<?php 
        include USERLOGINPATH . 'ckeditor.php';
        ?>
				<p>
					<input type="submit" name="Feul_settings_form" class="submit" value="Сохранить" />
				</p>
			</form>
			<br/>
			<?php 
    } elseif (isset($_GET['edit_user'])) {
        if (isset($_POST['Feul_edit_user'])) {
            if ($_POST['old_name'] != $_POST['usernamec']) {
                $change_name = $_POST['usernamec'];
            } else {
                $change_name = null;
            }
            $posted_password = $_POST['nano'];
            if (isset($_POST['userpassword'])) {
                $change_pass = $_POST['userpassword'];
            } else {
                $change_pass = null;
            }
            if ($Feul->Storage == 'XML') {
                $Feul->processEditUser($_POST['old_name'], $posted_password, $_POST['useremail'], $change_pass, $change_name);
            } elseif ($Feul->Storage == 'DB') {
                $Feul->processEditDBUser($_POST['userID'], $_POST['usernamec'], $posted_password, $_POST['useremail']);
            }
            if ($change_name != null) {
                print '<meta http-equiv="refresh" content="0;url=load.php?id=user_login&edit_user='******'">';
            }
        }
        editUser($_GET['edit_user']);
    } elseif (isset($_GET['help'])) {
        if (isset($_GET['convert'])) {
            $convert = $Feul->convertXmlToDB();
            echo '<div class="updated">Пользователи успешно конвертированы</div>';
        }
        ?>
		<h2>Информация о плагние:</h2>

		<h4>Функции</h4>

		<p>
			<label>Показать форму входа:</label>
			<?php 
        highlight_string('<?php echo show_login_box(); ?>');
        ?>
		</p>

		<p>
			<label>Показать приветствие:</label>
			Если пользователь вошел, по умолчанию отображается "Добро пожаловать =Имя пользователя=" и ссылка для выхода из системы.<br/>
			<?php 
        highlight_string('<?php echo welcome_message_login(); ?>');
        ?>
		</p>

		<p>
			<label>Показать форму регистрации:</label>
			<?php 
        highlight_string('<?php user_login_register(); ?>');
        ?>
		</p>

		<h4>Отображение контента только авторизованным пользователям</h4>
		<ol>
			<li>Вы можете блокировать доступ к определенной странице, выбрав "Только для зарегистрированных" в "Свойствах" этой страницы.<br/>
				Если страница "Только для зарегистрированных", пока пользователь не войдет в систему он будет видеть "Предупреждение", которое можно отредактировать <a href="load.php?id=user_login&settings">здесь</a>
			</li><br/>
			<li>
				Если вы хотели бы разместить содержание приветствия или какой-либо код в шаблоне вам придется использовать немного PHP. <br/> Ниже приведен пример для показа "Hello World" только авторизированным пользователям.<br/>
<pre>
<?php 
        highlight_string('<?php if(!empty($_SESSION[\'LoggedIn\']))	{ ?>');
        ?>
	Helo World
<?php 
        highlight_string('<?php } ?>');
        ?>
</pre>
			</li>
		</ol>

		<h4>Помощь и поддержка</h4>
		<p>
			Если вы обнаружили какие-либо баги/ошибки или нужна любая помощь, пожалуйста, посетите форум поддержки <a href="http://get-simple.info/forum/topic/2342/front-end-user-login-plugin-xml-ver-25/">здесь</a>
		</p>
		</div>

		<div class="main" style="margin-top:-10px;">
		<h2>Преобразование файлов XML в базу данных</h2>
		<p>
			После клика на ссылке ниже файлы XML всех пользователей будут конвертированы в базу данных.<br/>
			<strong>Вы должны ввести все данные о базе данных на странице настроек, и база данных и таблицы должны быть созданы до преобразования.</strong><br/>
			<a href="load.php?id=user_login&help&convert">Конвертировать XML в базу данных</a>
		</p>
	<?php 
    } else {
        if (isset($_GET['manage'])) {
            if (isset($_GET['adduser'])) {
                $Add_User = $Feul->processAddUserAdmin($_POST['usernamec'], $_POST['userpassword'], $_POST['useremail']);
                if ($Add_User == false) {
                    echo '<div class="error">Имя пользователя уже создано.</div>';
                } else {
                    echo '<div class="updated">Пользователь успешно добавлен.</div>';
                }
            } elseif (isset($_GET['deleteuser'])) {
                if ($Feul->Storage == 'XML') {
                    $deleteUser = $Feul->deleteUser($_GET['deletename']);
                } elseif ($Feul->Storage == 'DB') {
                    $deleteUser = $Feul->deleteUser($_GET['deleteuser']);
                }
                if ($deleteUser == true) {
                    echo '<div class="updated" style="display: block;">' . $_GET['deletename'] . ' успешно удален</div>';
                } else {
                    echo '<div class="updated" style="display: block;"><span style="color:red;font-weight:bold;">ОШИБКА!!</span> - Невозможно удалить пользователя.</div>';
                }
            }
        }
        manageUsers();
    }
}