@antonio0226

Как сделать для каждого пользователя личный кабинет?

Привет всем.
Встала задача написать личный кабинет для каждого пользователя. В php только втягиваюсь, решил делать с помощью readbeanphp

Есть форма регистрации, по нажатию создаю запись в BD
session_start();

	require 'connection.php';

	if(empty($_POST['sub'])){
		
		$w = R::dispense('user');
		$w->email = $_POST['email'];
		$w->password = password_hash($_POST['password'], PASSWORD_DEFAULT);
		$w->purse = $_POST['purse'];
		$w->balance = '0';
		$_SESSION['user'] = $_POST['email'];
		$id = R::store( $w );
		header('Location: ../form.php');
	}


Записываю в сессию мыло пользователя.

Далее встала проблема авторизации, как мне для каждого пользователя создать свою страничку, понимаю что нужно через сессии, но т.к никогда этого не делал не понимаю.
Что бы было примерно такого вида site.name/auth/lk?id=1, далее для второго id=2 и т.д
Спасибо заранее. Знаю что задача простая.
  • Вопрос задан
  • 5177 просмотров
Пригласить эксперта
Ответы на вопрос 1
@EEclipsEE
Создаете страницу логина что- то типа такого :
<?
require_once('tamplates/top.php');
  if($_POST){
    $p_email = $_POST['email'];
    $p_password = $_POST['password'];
    $errors = array();
    if(!$p_email){
      $errors[] = "Поле email не заполнено";
    }
    if(!$p_password){
      $errors[] = "Поле password не заполнено";
    }
    if(!empty($errors)){
      print_r($errors);
    }
    $query = "SELECT*FROM users WHERE email='$p_email' AND password='$p_password'";
    $adr = mysqli_query($db_con, $query);
    if(!$adr){
      exit($query);
    }
    $user = mysqli_fetch_array($adr);
    if(empty($user)){
      $errors[] = "error log-in";
    }
    if(!empty($errors)){
      exit('error');
    } else {
      $_SESSION['user_id']=$user['id'];
    ?>
    <script type="text/javascript">
      document.location.href="panel.php/lk?id=<?echo $user['id']?>";
    </script>
    <?
    }
  }
 ?>

<form method="post" action="login.php">
  <div class="form-group">
    <label for="email">Email address</label>
    <input type="email" class="form-control" name="email" id="email1" placeholder="Email">
  </div>
  <div class="form-group">
    <label for="password">Password</label>
    <input type="password" class="form-control" name="password" id="password" placeholder="Password">
  </div>
  <button type="submit" class="btn btn-default">Submit</button>
</form>


<? require_once('tamplates/bottom.php') ?>


Конфиги и сиссия все в топе подключается. делаете все необходимые вам проверки и т.д. По итогу извлекаете id пользователя если все хорошо. и передаете в ссылке на личный кабинет. Предварительно создав страницу кабинета (В этом примере это panel.php).

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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 17:06
15000 руб./за проект
19 апр. 2024, в 16:53
1000 руб./за проект
19 апр. 2024, в 16:45
5000 руб./за проект