-
-
Save ivan-s-1/0a5c2a50746c1045e8e4668e41fafcae to your computer and use it in GitHub Desktop.
Форма регистрации и авторизации + RedBeanPHP
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| require "libs/rb.php"; | |
| R::setup( 'mysql:host=localhost;dbname=test_zadanie', | |
| 'root', '' ); | |
| session_start(); | |
| ?> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php require "db_connect.php";?> | |
| <?php if (isset($_SESSION['logged_user'])) : ?> | |
| Авторизован ! <br> | |
| Привет, <?php echo $_SESSION['logged_user']->login; ?>! | |
| <hr> | |
| <a href = "/zadanie_php/logout.php">Выйти</a> | |
| <?php else : ?> | |
| <a href="login.php">Авторизоваться</a><br> | |
| <a href="signup.php">Регистрация</a> | |
| <?php endif; ?> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| require "db_connect.php"; | |
| $data=$_POST; | |
| if(isset($data['do_login'])) // если была нажата кнопка | |
| { | |
| $errors = array(); | |
| $user = R::findOne('users', 'login = ?', array($data['login'])); | |
| if( $user) | |
| { | |
| // Когда логин сушествует, проверяем пароль | |
| if(password_verify($data['password'], $user->password)) | |
| { | |
| // echo 'Логинится'; | |
| // Все хорошо, логиним пользователя | |
| $_SESSION['logged_user'] = $user; | |
| echo '<div style = "color: green;">Вы Авторизованы! <br/> Можете перейти на <a href="http://localhost/zadanie_php/index.php">главную</a> страницу!</div><hr>'; | |
| } else { | |
| $errors[] = 'Пароль неправильно введен'; | |
| } | |
| } else | |
| { | |
| $errors[] = 'Пользователь не найден!'; | |
| } | |
| if (!empty($errors)) { | |
| echo'<div style="color:red;">'.array_shift($errors).'</div><hr>'; | |
| } | |
| } | |
| ?> | |
| <form action="login.php" method="POST"> | |
| <p> | |
| <p><strong>Логин:</strong></p> | |
| <input type="text" name="login" value = "<?php echo @$data['login'];?>"> | |
| </p> | |
| <p> | |
| <p><strong>Пароль:</strong></p> | |
| <input type="password" name="password" value = "<?php echo @$data['password'];?>"> | |
| </p> | |
| <p> | |
| <button type="submit" name = "do_login">Войти</button> | |
| </p> | |
| </form> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| require "db_connect.php"; | |
| unset($_SESSION['logged_user']); | |
| //Перебрасываем после выхода | |
| header('Location: /zadanie_php/'); | |
| ?> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| require "db_connect.php"; | |
| $data = $_POST; | |
| if( isset($data['do_signup']) ) | |
| { | |
| //здесь делаем проверки на пустоту логина | |
| $errors = array(); | |
| if (trim($data['login']) =='') { | |
| $errors[] = 'Введите логин !'; | |
| } | |
| if ($data['email'] =='') { | |
| $errors[] = 'Введите email !'; | |
| } | |
| if ($data['password'] =='') { | |
| $errors[] = 'Введите пароль !'; | |
| } | |
| if ($data['password_2'] !=$data['password']) { | |
| $errors[] = 'Пароли не одинаковы !'; | |
| } | |
| // исключаем два одинаковых мейла | |
| if (R::count('users', "login = ?", array($data['login']))>0) | |
| { | |
| $errors[] = 'Пользователь с таким Логином существует !'; | |
| } | |
| if (R::count('users', "email = ?", array($data['email']))>0) | |
| { | |
| $errors[] = 'Пользователь с таким Email существует !'; | |
| } | |
| //здесь регистрируем | |
| if (empty($errors)) | |
| { | |
| // все хорошо, регисирируем в Базе Данных | |
| // Ред Бин исключает SQL иньекции | |
| $user = R::dispense('users'); | |
| $user->login=$data['login']; | |
| $user->email=$data['email']; | |
| $user->password= password_hash($data['password'], PASSWORD_DEFAULT); | |
| $user->join_date=time(); | |
| R::store($user); | |
| echo '<div style = "color: green;">Вы успешно зарегистрированы! </div><hr>'; | |
| } else | |
| { | |
| echo'<div id="errors">'.array_shift($errors). '</div><hr>'; | |
| } | |
| } | |
| ?> | |
| <form action="/zadanie_php/signup.php" method="POST"> | |
| <p> | |
| <p><strong>Ваш Логин:</strong></p> | |
| <input type="text" name="login" value = "<?php echo @$data['login'];?>"> | |
| </p> | |
| <p> | |
| <p><strong>Ваш Email:</strong></p> | |
| <input type="email" name="email" value = "<?php echo @$data['email'];?>"> | |
| </p> | |
| <p> | |
| <p><strong>Ваш Пароль:</strong></p> | |
| <input type="password" name="password" value = "<?php echo @$data['password'];?>"> | |
| </p> | |
| <p> | |
| <p><strong>Повторите Пароль:</strong></p> | |
| <input type="password" name="password_2" value = "<?php echo @$data['password_2'];?>"> | |
| </p> | |
| <p> | |
| <button type="submit" name = "do_signup">Зарегистрироваться</button> | |
| </p> | |
| </form> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment