Получить все значения, используя $ _SESSION - PullRequest
0 голосов
/ 19 октября 2018

Я создал систему, в которой пользователям необходимо зарегистрироваться с указанием Имени , Электронной почты и Пароль .

Когда онинажмите Отправить все эти данные отправляются в базу данных.

Ниже приведен код сохранения сеанса.

if (isset($_POST['login_user'])) {
    $email = mysqli_real_escape_string($db, $_POST['email']);
    $password = mysqli_real_escape_string($db, $_POST['password']);

    if (empty($email)) {
        array_push($errors, "email is required");
        echo "Email is required<br>";
    }
    if (empty($password)) {
        array_push($errors, "Password is required");
        echo "Password is required";
    }

    if (count($errors) == 0) {
        $password = md5($password); 
        $query = "SELECT * FROM $tbl_name2 WHERE email='$email' AND password='$password'";
        $results = mysqli_query($db, $query);
        if (mysqli_num_rows($results) == 1) {
          $_SESSION['email'] = $email;
          $_SESSION['success'] = "You are now logged in";
          header('location: store/generatetrans.php');
    }
    else {
        array_push($errors, "Wrong username/password combination");
        echo "Wrong username/password combination";
    }
    }
    }

Они могут войти в систему, используя свой адрес электронной почты и пароль..

<?php 
  session_start(); 

  if (!isset($_SESSION['email'])) {
    $_SESSION['msg'] = "You must log in first";
    header('location: ../login.php');
  }
  if (isset($_GET['logout'])) {
    session_destroy();
    unset($_SESSION['email']);
    header("location: ../login.php");
  }
?>

Я использовал этот код для системы, чтобы определить, кто вошел в систему.

Когда они вошли в систему, система показывает "Welcome user@email.com", используя этот код.

<?php  if (isset($_SESSION['email'])) : ?>
      <p>Welcome <strong><?php echo $_SESSION['email']; ?></strong></p>
      <p> <a href="index.php?logout='1'" style="color: red;">logout</a> </p>
    <?php endif ?>

Мой вопрос заключается в том, как я могу получить ИМЯ , который пользователь использовал при регистрации, и показать его рядом с приветствием вместо электронного письма.Я все еще хочу использовать $ _ SESSION ['email'] , а не имя для идентификации пользователя.это возможно?

1 Ответ

0 голосов
/ 19 октября 2018

(Чтобы помочь вам).

В вашем запросе, где у вас есть логин людей, вы, вероятно, делаете какой-то цикл, такой как:

while($row = mysqli_fetch_assoc($result)){

    $_SESSION['email'] = $row['email'];

}

Просто добавьте вчто:

while($row = mysqli_fetch_assoc($result)){

    $_SESSION['email'] = $row['email'];
    $_SESSION['name'] = $row['name'];

}

Затем вы можете использовать этот массив сеансов на других страницах.

Убедитесь, что каждый массив сеансов задан, а не пуст и что сеанс запущен.

Редактировать:

Вы также можете назначить массив сеансов для массива записей.

Т.е. и предполагая, что $_POST['login_user'] - это то, что вы хотите использовать здесь:

$_SESSION['name'] = $_POST['login_user'];

Сноска:

Как я уже говорил в комментариях:

MD5 уже более 30 лет и он небезопасен.Используйте password_hash () / password_verify () вместе с подготовленным оператором.Не практикуйте с небезопасным кодом, поскольку он порождает вредные привычки.

Поэтому, пожалуйста, сделайте себе одолжение и начните с правой ноги.

Ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...