PHP: // Пока класс умеет только создавать аккаунты class Crud { private function db_connect() { // бд коннект :\ require "items/dbconnect.php"; return $db; } private function RegData() { // Получаем данные из полей $reg_username = filter_var(trim($_POST['username']), FILTER_SANITIZE_STRING); $reg_password = filter_var(trim($_POST['password']), FILTER_SANITIZE_STRING); $reg_newpassword = crypt($password,'oased312GHKASJ0'); $reg_email = filter_var(trim($_POST['email']), FILTER_SANITIZE_STRING); return [$reg_username,$reg_password,$reg_newpassword,$reg_email]; } private function Names() { // Получаем список всех имён из бд $db = $this -> db_connect(); $name = $db->query("SELECT `name` FROM `users`"); $name = $name->fetch_all(); foreach ($name as $key => $value) { foreach ($value as $k => $v) { $names .= $v." "; } } $names = strval($names); $names = explode(" ", $names); $db -> close(); return $names; $name -> close(); } private function EMails() { // Получаем список всех почт из бд $db = $this -> db_connect(); $mail = $db -> query("SELECT `email` FROM `users`"); $mail = $mail -> fetch_all(); foreach ($mail as $key => $value) { foreach ($value as $k => $v) { $emails .= $v." "; } } $emails = strval($emails); $emails = explode(" ", $emails); $db -> close(); return $emails; $mail -> close(); } public function CreateAccount() { // Регистрируем пользователя в бд $regdata = $this -> RegData(); $names = $this -> Names(); $emails = $this -> EMails(); $db = $this -> db_connect(); $username = $regdata[0]; $new_password = $regdata[2]; $email = $regdata[3]; if (isset($_POST['cont'])) { if ($email == '' || $new_password == '' || $username == '') { echo 'Заполните все поля'; } else { if (in_array($username,$names)) { echo 'Такое имя уже занято'; } else { if (in_array($email,$emails)) { echo "Эта почта уже занята"; } else { $db -> query("INSERT INTO `users` (`name`, `password`, `email`, `balance`) VALUES ('$username','$new_password','$email','0')"); $db -> close(); exit(); } } } } } } $user = new Crud; $user -> CreateAccount(); Рад критике, особенно в отношении ооп, у меня нет представления как сконструировать регистрацию с ооп, скорее всего шляпа вышла
Самая великая ошибка -- дёргать окружение (в твоём случае $_POST), сможешь сделать выводы? остальной код не читал, если нужно, дуй в иную тему.
нда.. .еще учиться и учиться.... 1. соединение с базой устанавливается один раз, как правило в конструкторе 2. изучите синтаксис функций, и поймите что туда можно передавать аргументы 3. какой там ооп, у вас и с логикой то не очень - насоздавали кучу функций, в которых реализуете выборку и занесение в массив ВСЕХ записей (причем по отдельности емейлов, имен) ... а если миллионы пользователей? - проверка существования значения в таблице значение делается условием в запросе SQL - where email=.... - зачем уникальность имени? если авторизация например по email? - прочтите что возвращает filter_var в случае неудачи и подумайте - что тогда у вас зарегистрируется - ООП тут вообще не пахнет навскидку так... ну и еще куча всего
А как тогда получить информацию из полей? И почему это плохо? --- Добавлено --- 1. - Так, так всё же можно? Я пытался, ничего не получалось, зашёл на форум где у чела был вопрос как это сделать, ему посоветовали как я сделал в этом случае. Ей богу, напишите пожалуйста как нужно. 2. - Не понимаю где их тут нужно применить. 3. - Это да) Спасибо за подсказку. Уникальность имени, тем не менее, нужна. Самое последнее про ооп ожидал услышать, тем не менее, если это возможно, напишите конкретнее. Спасибо!
1. прочтите про __construct 2. в том же CreateAccount($data) - а в $data массив полей по которым создать....