Не работает отображение ника на сайте

Рейтинг: 0Ответов: 0Опубликовано: 01.03.2023

Суть проблемы, как бы догадываюсь, но незнаю, как исправить.

<?php 
    require 'db.php';
  session_start();
    $data = $_POST;

    

    //если кликнули на button
    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_2'] != $data['password'] )
        {
            $errors[] = 'Повторный пароль введен не верно!';
        }

        //проверка на существование одинакового логина
        if ( R::count('users', "login = ?", array($data['login'])) > 0)
        {
            $errors[] = 'Пользователь с таким логином уже существует!';
        }
    
    //проверка на существование одинакового email
        if ( R::count('users', "email = ?", array($data['email'])) > 0)
        {
            $errors[] = 'Пользователь с таким Email уже существует!';
        }

    $sex=($data['sex']);

        if ( empty($errors) )
        {
            //ошибок нет, теперь регистрируем
            $user = R::dispense('users');
            $user->login = $data['login'];
            $user->email = $data['email'];
      $user->sex = $data['sex'];
      $user->status = 1;
            $user->password = password_hash($data['password'], PASSWORD_DEFAULT); //пароль нельзя хранить в открытом виде, мы его шифруем при помощи функции password_hash 
            R::store($user);
       

      if (!empty($user)) {
        $_SESSION['logged_user'] = true;
      } 
      header('Location: index.php');
        }else
        {
            echo '<div id="errors" style="color:red;">' .array_shift($errors). '</div><hr>';
        }

    }

  
?>

<form action="/signup.php" method="POST">
    <strong>Ваш логин</strong>
    <input type="text" size="15" name="login" value="<?php echo @$data['login']; ?>"><br/>

    <strong>Ваш Email</strong>
    <input type="email" name="email" value="<?php echo @$data['email']; ?>"><br/>

    <strong>Ваш пароль</strong>
    <input type="password" size="15" name="password" value="<?php echo @$data['password']; ?>"><br/>

    <strong>Повторите пароль</strong>
    <input type="password" size="15" name="password_2" value="<?php echo @$data['password_2']; ?>"><br/>
  <strong> Пол:</strong>
<select name="sex"><option value="m">Мужской</option><option value="w">Женский</option></select><br/>


    <button type="submit" name="do_signup">Регистрация</button>
</form>

Это форма регистрация. Стоит из нее убрать

if (!empty($user)) {
            $_SESSION['logged_user'] = true;
          } 

То все работает.

Код index.php

<?php 
session_start();
    require 'db.php';
?>

<?php

if (!empty($_SESSION['logged_user']))  : ?>
    Авторизован! <br/>
   
    Привет,<?php echo $_SESSION['logged_user']->login;  ?>  !<br/>

    <a href="logout.php">Выйти</a>

<?php else : ?>
Вы не авторизованы<br/>
<a href="/login.php">Авторизация</a>
<a href="/signup.php">Регистрация</a>
<?php endif; ?>

. В чем допустил ошибку?

Ответы

Ответов пока нет.