Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы по PHP Запись случайных символов в базу, запись через кнопку

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


     15.05.2014    Общие вопросы по PHP    1050

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

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

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


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

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

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


Комментарии пользователей (6)

Artyom91
2

157 | 21

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
2

157 | 21

Artyom91 - 15 мая 2014 21:46 - Юзер

Сам сделал.

Artyom91
2

157 | 21

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
1125

1637 | 1204

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 - мой блог.

ICQ: 404-037-556
Skype: Sander8804

Artyom91
2

157 | 21

Artyom91 - 16 мая 2014 13:31 - Юзер

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

Artyom91
2

157 | 21

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;

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

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