Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Запись случайных символов в базу, запись через кнопку

Запись случайных символов в базу, запись через кнопку


     15.05.2014    Все вопросы » Общие вопросы по PHP    2373

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

Сначала буду пробовать через кнопку в профиле, добавил в userinfo.tpl такое:

[not-logged]<input type="submit" name="cs_password" class="f_input btn" value="Получить новый пароль">[/not-logged]


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

Это вот ТЗ, я хочу сам сделать, скажите с чего начать и подскажите более правильную функцию для генерации случайных символов и примерный начальный код, пожалуйста.

Ответа пока нет


6 комментариев

Artyom91
Юзер

Artyom91 - 15 мая 2014 21:22 -

Функция генерации символов:

function make_password($num_chars){ 
    if ((is_numeric($num_chars)) && ($num_chars > 0) && (! is_null($num_chars))) {
        $password = "";
        $accepted_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzl234567890";
        for ($i=0; $i<=$num_chars; $i++) {
            $random_number = rand(0, (strlen($accepted_chars)-1));
            $password .= $accepted_chars[$random_number];
        }
    return $password;
    }
}



На отдельной страничке php файла всё норм при выводе echo.

echo make_password(10);


Теперь нужно сделать запись в базу результата этой функции.

POST запрос

$cs_password = $_POST['cs_password'];


В запрос вставил

cs_password='{$cs_password}',


Дальше не знаю что делать, хелпмиплиз.

Artyom91
Юзер

Artyom91 - 15 мая 2014 21:46 -

Сам сделал.

Artyom91
Юзер

Artyom91 - 15 мая 2014 21:58 -

Кому надо, получилось так, вот вся функция:

function make_password($num_chars){ 
    if ((is_numeric($num_chars)) && ($num_chars > 0) && (! is_null($num_chars))) {
        $password = "";
        $accepted_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzl234567890";
        for ($i=0; $i<=$num_chars; $i++) {
            $random_number = rand(0, (strlen($accepted_chars)-1));
            $password .= $accepted_chars[$random_number];
        }
    return $password;
    }
}
$cs_password = make_password(10);
$_POST['cs_password'] = $cs_password;


И вставляем в запрос:

cs_password='{$cs_password}',

Sander
PHP-developer

Sander - 16 мая 2014 00:17 -

А я знаю проще:
function make_password($num_chars=7){
    return substr(md5(time()),mt_rand(0,32-$num_chars),$num_chars);
}
$_POST['cs_password'] = make_password(10);

SanDev.pro - мой блог.

Telegram: @sandev
Skype: Sander8804

Artyom91
Юзер

Artyom91 - 16 мая 2014 13:31 -

Sander, Еще бы ты не знал, а я вот только начинаю )

Artyom91
Юзер

Artyom91 - 16 мая 2014 13:37 -

Только правильно вот так, кому надо будет.

function make_password($num_chars=7){
    return substr(md5(time()),mt_rand(0,32-$num_chars),$num_chars);
}
$cs_password = make_password(10);
$_POST['cs_password'] = $cs_password;

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх