Просмотр кода
Название: Регистрация и авторизация через SMS
Описание: Хочу предложить вашему вниманию открытый код php регистрации и авторизации через протокол sms. В сети очень мало информации можно найти на эту тему, вверху будет представлен код и sql запрос. И так начнем!
Добавил: DELETED
Дата: 16 мар 2015, в 10:14 Комментарии (0)
Описание: Хочу предложить вашему вниманию открытый код php регистрации и авторизации через протокол sms. В сети очень мало информации можно найти на эту тему, вверху будет представлен код и sql запрос. И так начнем!
Для начало создадим базу данных и
назовем ее reg, вы можете назвать ее
как хотите на ваше усмотрения.
Создали базу? Далее выполним sql
запрос
CODE (SQL):
скопировать код в буфер обмена
CREATE TABLE `users` (
`user_id` int(11) UNSIGNED NOT NULL
AUTO_INCREMENT,
`user_login` varchar(30) NOT NULL,
`user_password` varchar(32) NOT NULL,
`user_hash` varchar(32) NOT NULL,
`user_ip` int(10) UNSIGNED NOT NULL
DEFAULT '0',
PRIMARY KEY (`user_id`)
) ENGINE=MyISAM DEFAULT
CHARSET=cp1251 AUTO_INCREMENT=1 ;
Далее создаем файл register.php и в
него пишем этот код
PHP:
скопировать код в буфер обмена
<?
// Страница регситрации нового
пользователя
# Соединямся с БД
mysql_connect("localhost",
"пользователь бд", "пароль бд");
mysql_select_db("reg");
if(isset($_POST['submit']))
{
$err = array();
# проверям логин (в место логина
будет номер мобильного)
if(!preg_match("/^[0-9]+$/",$_POST
['login']))
{
$err[] = "Логин может состоять только
из цифр";
}
if(strlen($_POST['login']) < 3 or
strlen($_POST['login']) > 30)
{
$err[] = "Логин должен быть не меньше
3-х символов и не больше 30"; //здесь
ставите лимит на свой выбор
}
# проверяем, не сущестует ли
пользователя с таким именем
$query = mysql_query("SELECT COUNT
(user_id) FROM users WHERE
user_login='".mysql_real_escape_string
($_POST['login'])."'");
if(mysql_result($query, 0) > 0)
{
$err[] = "Пользователь с таким
номером уже существует в базе
данных";
}
# Если нет ошибок, то добавляем в БД
нового пользователя
if(count($err) == 0)
{
$login = $_POST['login'];
require_once "sms.php";
function generate_pass($number)
{
$arr = array
('a','b','c','d','e','f',
'g','h','i','j','k','l',
'm','n','o','p','r','s',
't','u','v','x','y','z',
'1','2','3','4','5','6',
'7','8','9','0');
// Генерируем пароль для смс
$pass = "";
for($i = 0; $i < $number; $i++)
{
// Вычисляем произвольный индекс из
массива
$index = rand(0, count($arr) - 1);
$pass .= $arr[$index];
}
return $pass;
}
$newpass = generate_pass(6);
# Убераем лишние пробелы и делаем
двойное шифрование
// $password = md5(md5(trim('')));
$str = "$newpass";
$pass1 = md5(md5($str));
mysql_query("INSERT INTO users SET
user_login='".$login."',
user_password='".$pass1."'");
$smssend = send("api.smsfeedback.ru",
80, "Логин", "Пароль",
"$login", "$newpass", "TEST-SMS");
// чтобы получить логин и пароль
нужно зарегистрироваться тут
smsfeedback.ru
header("Location: login.php"); exit
();
}
else
{
print "<b>При регистрации произошли
следующие ошибки:</b><br>";
foreach($err AS $error)
{
print $error."<br>";
}
}
}
?>
# Напишем форму
<form method="POST">
Номер телефона + <input name="login"
type="text"><br>
<input name="submit" type="submit"
value="Зарегистрироваться">
</form>
Далее создадим файл и назовем его
login.php
PHP:
скопировать код в буфер обмена
<?
// Страница авторизации
# Функция для генерации случайной
строки
function generateCode($length=6) {
$chars =
"abcdefghijklmnopqrstuvwxyzABCDEFGHI
JKLMNOPRQSTUVWXYZ0123456789";
$code = "";
$clen = strlen($chars) - 1;
while (strlen($code) < $length) {
$code .= $chars[mt_rand(0,$clen)];
}
return $code;
}
# Соединямся с БД
mysql_connect("localhost",
"Пользователь бд", "Пароль бд");
mysql_select_db("reg");
if(isset($_POST['submit']))
{
# Вытаскиваем из БД запись, у которой
логин равняеться введенному
$query = mysql_query("SELECT user_id,
user_password FROM users WHERE
user_login='".mysql_real_escape_string
($_POST['login'])."' L
Добавил: DELETED
Дата: 16 мар 2015, в 10:14 Комментарии (0)