Запомнить идентификатор имени пользователя и пароля из mysql

#php

#php

Вопрос:

Я пытаюсь выучить php, и мне нужна некоторая помощь. Как я могу установить «id» из mysql в сеансе? таким образом, $ _SESSION[‘id’] будет работать. Я буду очень благодарен, если кто-нибудь сможет мне помочь 🙂

 <?php
session_start();

?>

<?php

if(isset($_POST["navn"]) amp;amp; isset($_POST["passord"])){
    // Connect to mySQL
    include "include/config.php"

    // Query the person
    $sql = $conn->query("SELECT id FROM users WHERE navn='$navn' AND password='$passord' LIMIT 1");

    // Make sure person exists
    $existCount = $sql->rowCount();

    // Evaluate the count
    if($existCount == 1){
        while($row = $result->fetch(PDO::FETCH_ASSOC)){
            $id = $row["id"];
        }
        $_SESSION["id"] = $id;
        $_SESSION["user"] = $user;
        $_SESSION["password"] = $password;
        header("location:index.php");
        exit();
    }else{
        echo"Login details incorrect, try again <a href='index.php'>Click here</a>";
        exit();
    }
}
?>  

Комментарии:

1. Это должно просто сработать?

2. Перенаправление может не сработать. При закрытии тега php под session_start();

3. $navn и $passord не задано.

4. Я знаю, что ты учишься. Но, пожалуйста, проведите некоторое исследование по подготовленным операторам и sql-инъекции. Это стоит изучить с нуля.

Ответ №1:

Вы получаете данные из запроса POST, которые вы на самом деле не используете isset($_POST["navn"]) amp;amp; isset($_POST["passord"])

Затем вы пытаетесь использовать неопределенные переменные navn='$navn' AND password='$passord'

Исправить. Просто задайте свои переменные из запроса POST.

 $navn = $_POST["navn"];
$passord = $_POST["passord"];

  

Это должно исправить.