Exemple #1
0
function register_user($dbh, &$user, &$errors)
{
    $user = array();
    $errors = empty_errors();
    // считываем строки из запроса
    read_string($_POST, 'username', $user, $errors, 2, 64, true);
    read_email($_POST, 'e-mail', $user, $errors, 2, 64, true);
    read_string($_POST, 'password', $user, $errors, 6, 24, true);
    read_string($_POST, 'confirm-password', $user, $errors, 6, 24, true);
    read_list($_POST, 'gender', $user, $errors, array('M', 'F'), false);
    read_bool($_POST, 'newsletter', $user, $errors, '1', false, false);
    // пароль и подтверждение пароля должны совпадать
    if (!is_error($errors, 'password') && !is_error($errors, 'confirm-password') && $user['password'] != $user['confirm-password']) {
        $errors['fields'][] = 'password';
        add_error($errors, 'confirm-password', 'dont-match');
    }
    if (has_errors($errors)) {
        return false;
    }
    // защищаем пароль пользователя
    $user['password'] = crypt($user['password']);
    unset($user['password_confirmation']);
    // форма передана правильно, сохраняем пользователя в базу данных
    $db_user = db_user_insert($dbh, $user);
    // автоматически логиним пользователя после регистрации, запоминая его в сессии
    store_current_user_id($db_user['id']);
    return true;
}
Exemple #2
0
{
    $dbh = mysqli_connect('127.0.0.1', 'root', 'root', 'lecture_6', 3306);
    // проверка соединения
    if (mysqli_connect_errno()) {
        db_handle_error($dbh);
    }
    mysqli_set_charset($dbh, "utf8");
    return $dbh;
}
// подключаемся к базе данных
$dbh = db_connect();
// считываем список пользователей
$user_list = db_user_find_all($dbh);
var_dump($user_list);
$newUser = array('nickname' => 'test', 'email' => '12@12.12', 'password' => 'test', 'fullname' => 'Teest', 'gender' => 'm', 'newsletter' => 0);
db_user_insert($dbh, $newUser);
/////////////////////////////////
/*
 * Обработка ошибок подключения к базе данных
 */
function db_handle_error($dbh)
{
    $code = '@unknown-error';
    $message = '';
    if (mysqli_connect_error()) {
        $code = '@connect-error';
        $message = mysqli_connect_error();
    }
    if (mysqli_error($dbh)) {
        $code = '@query-error';
        $message = mysqli_error($dbh);