Веб-регистрация пользователей ejabberd

Сентябрь 13, 2013 | HOWTOs, Публикации, Статьи by Plus

Итак имеется, настроенный ejabberd с базой данных на mysql. Необходимо сделать регистрацию через веб интерфейс. После долгих поисков модуля ejabberd для организации веб-регистрации клиентов, не нашлось ничего подходящего. По этому пришлось обратиться за помощью к php и mysql.

В интернетах полно вариантов скриптов php для регистрации. По всей своей сути они идентичны, берем данные у пользователя, помещаем в базу данных в нужную таблицу в нужном нам виде.

В качестве примера у нас это… Форма knopka.php:

<!DOCTYPE html>
<html>
<meta charset=”utf-8″/>
<head>
<script type=”text/javascript” src=”http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js”></script>
<script type=”text/javascript” src=”js/bootstrap.js”></script>
<link rel=”stylesheet” type=”text/css” href=”css/bootstrap.css”>
<link rel=”stylesheet” href=”css/reset.css”>
<link rel=”stylesheet” href=”css/animate.css”>
<link rel=”stylesheet” href=”css/styles.css”>
<title>Регистрация Jabber</title>

</head>
<body>
<button type=”button” onclick=”openModal();”>Регистрация Jabber</button>
<!– Modal –>
<div id=”myModal” tabindex=”-1″ role=”dialog” aria-labelledby=”myModalLabel” aria-hidden=”true”>
<div id=”container”>
<form action=”user.php” method=”post”>

<label for=”name”>Имя учетной записи:</label>
<p>
<input name=”login” type=”name” size=”15″ maxlength=”15″>
</p>
<label for=”username”>Пароль:</label>
<p><a href=”#”>Запишите пароль!</a>

<input name=”password” type=”password” size=”15″ maxlength=”15″>

<div id=”lower”>

<input type=”checkbox”><label for=”checkbox”>Я принимаю условия регистрации.</label>

<input type=”submit” name=”submit” value=”Регистрация”>
</div>
</form>
</div>
</div>

<!–div>
</div–>

<script type=”text/javascript”>
function openModal(){
$(‘#myModal’).modal(‘show’);
}
</script>
</body>
</html>

Думаю тут все понятно и не требует дополнительных пояснений.

след файл mysql.php с параметрами подключения к базе:

<?php
$db = mysql_connect (“localhost”,”root”,”1″);
if($db)
mysql_select_db (“test”,$db);
else
{
echo “ошибка подключения к БД”;
}
?>

И третий файл user.php, который отвечает за помещение данных в базу.

<?php
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == ”) { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
if (isset($_POST['password'])) { $password=$_POST['password']; if ($password ==”) { unset($password);} }
//заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
if (empty($login) or empty($password)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
{
exit (“Вы ввели не всю информацию, вернитесь назад и заполните все поля!”);
}
//если логин и пароль введены, то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести
$login = stripslashes($login);
$login = htmlspecialchars($login);
$password = stripslashes($password);
$password = htmlspecialchars($password);
//удаляем лишние пробелы
$login = trim($login);
$password = trim($password);
// подключаемся к базе
include (“mysql.php”);// файл mysql.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь 
// проверка на существование пользователя с таким же логином
$result = mysql_query(“SELECT id FROM users WHERE username=’$login’”,$db);
$myrow = mysql_fetch_array($result);
if (!empty($myrow['id'])) {
exit (“Извините, введённый вами логин уже зарегистрирован. Введите другой логин.”);
}
// если такого нет, то сохраняем данные
$result2 = mysql_query (“INSERT INTO users (login,password) VALUES(‘$login’,'$password’)”);
// Проверяем, есть ли ошибки
if ($result2==’TRUE’)
{
echo “Вы успешно зарегистрированы! Теперь вы можете зайти под своим JID. “;
header(“Location: http://localhost”);
}
else {
echo “Ошибка! Вы не зарегистрированы.”;
}
?>

Ну и конечно же нужно помнить что базу и таблицу выбираем именно как таблицу пользователей в базе mysql ejabberd, “user”.

В качестве оформления можете воспользоваться css framework или накидать дизайн самостоятельно.

css.tar - в архиве файлы с формой и оформлением.

Прокомментировать

Вы должны быть авторизованы для комментирования.