Использую юиюлиотеку redbean для регистрации у себя на сайте.
У меня используется функция R::findOne, которая ищет в базе данных независимо от регистра, то есть верхний он или нижний, он будет возвращать элемент из базы данных. Например:
В базу данных есть запись "Costea" и если человек например захочет авторизоватся он может спокойно написать в поле Логин "costea" или "cOsTeA", как это можно запретить в redBeanPhp или он тут не причём???
Вот сам код, если что-то не понятно:
<?php
require "db.php";
$data = $_POST;
if( isset($data['do_signup']) ) {
$errors = array();
if( trim($data['login']) == ''){
$errors[] = 'Введите никнейм!';
}
if( trim($data['email']) == ''){
$errors[] = 'Введите Email!';
}
if( $data['password'] == ''){
$errors[] = 'Введите пароль!';
}
if( $data['password'] != $data['password2']){
$errors[] = 'Пароли не совпадают!';
}
if( R::count('users', "login = ?", array($data['login'])) > 0 ){
$errors[] = 'Пользователь с таким никнеймом уже зарегестрирован!';
}
if( R::count('users', "email = ?", array($data['email'])) > 0 ){
$errors[] = 'Пользователь с такой электронной почтой уже зарегестрирован!';
}
if( empty($errors)) {
$user = R::dispense('users');
$user->login = $data['login'];
$user->email = $data['email'];
$user->password = password_hash($data['password'], PASSWORD_BCRYPT);
R::store($user);
echo '<div style="color: green;">Вы были успешно зарегестрированы!</div><hr />';
}
else {
echo '<div style="color: red;">'.array_shift($errors).'</div><hr />';
}
}
?>