Проблема с системами входа в систему, все время подключаюсь. Это соединяет меня с идентификатором 1 вместо 2, 3 и т.п. - PullRequest
0 голосов
/ 19 марта 2020

Я построил систему входа в систему. Все работает, но когда я вхожу, независимо от того, какой пользователь, он всегда начинается с пользователей с идентификатором 1.

Когда я подключаюсь, он всегда подключается к одному и тому же пользователю. Хотя я хочу подключиться к другому пользователю.

<?php

session_start();
if (isset($_SESSION['admin'])) {
    header("Location: admin/index.php");
    exit;
}
if (isset($_POST['submit'])) {
    /*     * * Secure vars ** */
    $username = mysqli_real_escape_string($connect, $_POST['username']);
    $password = mysqli_real_escape_string($connect, $_POST['password']);

    $result = mysqli_query($connect, "
        SELECT
            `username`
        FROM
            `login`
        WHERE
            `username` = '{$username}'
            AND
            `password` = MD5('{$password}')

           LIMIT
            1;
    ");
    if ($myrow = mysqli_fetch_assoc($result)) {
        $_SESSION['admin'] = $myrow['username'];
        header("Location: admin/index.php");
        exit;
    } else {
        echo "שם המשתמש או הסיסמא אינם נכונים !";
    }
}
?>

Ответы [ 2 ]

0 голосов
/ 19 марта 2020
<?php
session_start();
if (isset($_POST['submit']))
{
    /*** Secure vars ***/
    $username = mysqli_real_escape_string($connect, $_POST['username']);
    $password = mysqli_real_escape_string($connect, $_POST['password']);

    $result = mysqli_query($connect,"SELECT username,password FROM login WHERE username ='$username' AND password=md5($password)");
    if ($myrow = mysqli_fetch_assoc($result))
    {
        if(mysqli_num_rows($result) === 1){
        $_SESSION['admin'] = $myrow['username'];
        header ("Location: admin/index.php");
        exit;
        }
    }
    else
    {
        echo "שם המשתמש או הסיסמא אינם נכונים !";    
    }
} 
else if (isset($_SESSION['admin']))
{
    header ("Location: admin/index.php");
    exit;
}
?>
0 голосов
/ 19 марта 2020

Я отредактировал код ниже. Сеанс с идентификатором Попробуйте сделать это

<?php
session_start();

if (isset($_SESSION['admin'])) {
    header("Location: admin/index.php");

}
if (isset($_POST['submit'])) {
    /*     * * Secure vars ** */
    $username = mysqli_real_escape_string($connect, $_POST['username']);
    $password = mysqli_real_escape_string($connect, $_POST['password']);

    $hash = md5($password);

 $result = mysqli_query($connect,"SELECT id,username,password FROM login WHERE username ='$username' AND password='$hash'");

if(mysqli_num_rows($result) === 1){

 $_SESSION['admin'] = $myrow['id'];

 header("Location: admin/index.php");
}
else{
//error message
}
}
?>

А затем в вашем индексе. php выберите из таблицы, где id - сеанс admin

<?php

$id = $_SESSION['admin'];
$sql = "SELECT * FROM login WHERE id = '$id'";
//then proceed here
?>

Надеюсь, это поможет

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