-1
***<?php
session_start();
require_once 'database.php';
if (isset($_POST['login'])) {
    $login = $_POST['login'];
    $password = $_POST['password'];
    $password = md5($password);
    echo $password;
    $link = mysqli_query($sql, "SELECT * FROM `admin` WHERE `login` = '$login' AND `password` = '$password'");
    $result = mysqli_fetch_array($link);
    if (!$result) {
        echo '<p class="error">Неверные пароль или имя пользователя!</p>';
    } else {
        if ($password == $result['password']) {
            $_SESSION['user'] = $result['id'];
            echo
            header("Location:http://tocharosta.miksplt4.beget.tech/admin/admin.php");
        } else {
            echo '<p class="error"> Неверные пароль или имя пользователя!</p>';
        }
    }
}
?>***

после нажатия на кнопку, пользователь авторизируется, но не происходит автоматический переход на страницу, просто выводит хешированный парольвведите сюда описание изображения

Misha
  • 1
  • Какой смысл делать авторизацию вообще, если любой дурак авторизуется через SQL инъекцию вообще без пароля? – Ипатьев Feb 21 '24 at 05:39

1 Answers1

1

В документации чётко написано

Помните, функцию header() разрешено вызывать, только если клиенту ещё не были переданы данные. То есть она должна идти первой в выводе, перед её вызовом не должно быть HTML-тегов, пустых строк и т. п. Иногда возникает ошибка, когда при чтении кода файловыми функциями наподобие include или require в коде попадаются пробелы или пустые строки, которые выводятся до вызова функции header(). Те же проблемы могут возникать, когда в одном файле записаны PHP-код и HTML-разметка.

Теперь взгляните на свой код....и задайте себе вопрос: что делает echo и как это влияет на header?

Так же там есть примечания и примеры, что делать, если хочется и заголовки использовать и что-то вывести.


А если бы ещё вы включили отображение ошибок, то код бы вам сказал о том, что вы что-то делаете неправильно