Как получить идентификатор пользователя от его имени через сеансы в php? - PullRequest
0 голосов
/ 19 апреля 2020

Мне нужно получить идентификатор пользователя из базы данных, но единственная информация о сеансе, которую я могу получить со страницы входа, это имя пользователя и пароль. Я могу получить имя пользователя, но когда я пытаюсь выполнить запрос, чтобы получить идентификатор, используя эту информацию, он ничего не возвращает. Вот код:

$_SESSION['username'] = $username;

 $connect = mysqli_connect("xxxx","xxxx","xxxx", "xxxx");

          $IDquery = "SELECT UserID FROM User WHERE Username = ".$username.";";

          $result = $connect->query("SELECT UserID FROM User WHERE Username = '$username';");

          if(mysqli_num_rows($result) > 0 ){

            $row = mysqli_fetch_assoc($result);
            $user_id = $row["UserID"];

            $_SESSION["UserID"] = $user_id;
          }

Как я могу получить идентификатор пользователя, если у меня есть только имя пользователя?

1 Ответ

0 голосов
/ 19 апреля 2020

Я подозреваю, что это:

$_SESSION['username'] = $username;

На самом деле должно быть:

$username = $_SESSION['username'];

То есть: вы хотите получить имя пользователя из сеанса, а чем установка переменной сеанса.

Примечание: вы должны действительно использовать параметризованные запросы, а не смешивать переменные в строке запроса. Это более эффективно и безопасно, поскольку предотвращает инъекцию SQL. Вы можете взглянуть на этот знаменитый пост SO , чтобы узнать, почему и как.

...