• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Проблема с header()

yousher

Начинающий
Пользователь
Регистрация
13 Апр 2020
Сообщения
76
Лучшие ответы
0
Репутация
10
Привет друзья, крч говоря проблема вот такая

я вызываю engine/login.php после нажиматии кнопку "войти" сам форма создаётся так <form id="login-form" action="../engine/login.php" method="POST"> по классике жанра ;)

код самого engine/login.php:


PHP:
<?
    session_start();

    $host = 'localhost'; // адрес сервера
    $database = 'gtav'; // имя базы данных
    $user = 'root'; // имя пользователя
    $password = ''; // пароль
    $mysqli = @new mysqli($host, $user, $password, $database);
    $Password = $mysqli->real_escape_string(stripslashes(htmlspecialchars(trim($_POST['password']))));
    $name = $mysqli->real_escape_string(stripslashes(htmlspecialchars(trim($_POST['username']))));
    //$key = $mysqli->real_escape_string(stripslashes(htmlspecialchars(trim($_POST['scod']))));
   
    $mysqli->set_charset("utf-8");
    $sql = "SELECT `id`, `password` FROM `users` WHERE `username` = '{$name}'";
    $result = $mysqli->query($sql);

    if($result->num_rows == 1)
    {  
        $result->data_seek(0);
        $account = $result->fetch_assoc();
        $dbpassword = $account['password'];
    //    $dbkey = $account['scod'];
        $id = $account['id'];
        if($Password == $dbpassword)
        {          
       
                $_SESSION['account_name'] = $name;
               
                $_SESSION['account_id'] = $id;
                $_SESSION['account_logged'] = 'try';
                header("Location: /cabinet.php");
        //    exit();
           
        }
        else
        {
            $_SESSION['error'] = 2;
            header("Location: /login.php");

        }
    }
    else
    {
        $_SESSION['error'] = 1;
            header("Location: /login.php");
    }
    $result->close();
    $mysqli->close();

?>
ok, теперь вы видите што я вызываю cabinet.php после успешной авторизации.


начало кода cabinet.php:

Код:
<?php  require_once('engine/account.php'); ?>
<!DOCTYPE html>
<html lang="en">
теперь идёт вызов скрипта engine/account.php :


PHP:
<?

    // Подключение к базе
    require_once('engine/connection.php');
    $mysqli = @new mysqli($host, $user, $password, $database);
    // Запрос
    $id = $mysqli->real_escape_string(stripslashes(htmlspecialchars(trim($_SESSION['account_id']))));

    if(empty($_SESSION['account_id']) || $_SESSION['account_logged'] != 'try')
    {      
        echo '<p>У вас нет доступа!</p>';
    }
    else
    {      
        // Запрос аккаунта
        $mysqli->set_charset("utf8");
        $sql = "SELECT * FROM `users` WHERE `id` = {$id}";
        $result = $mysqli->query($sql);
        if($result->num_rows == '0')
        {
            unset($_SESSION['account_name']);
            unset($_SESSION['account_id']);
            unset($_SESSION['account_logged']);
            unset($_SESSION['admin']);
            session_destroy();
            header("Location: /");
        }
        else
        {  
            //$result->data_seek(0);
            $account = $result->fetch_assoc();
        //    $result->close();
           
            // Обработка данных аккаунта
            if($account['online_status'] != 0) $status = 'В игре';
            else $status = 'Не в игре';
            $name = preg_replace('/_/i', ' ', $account['username']);
           
            switch($account['donate'])
            {
                case 0:
                {
                    $pDonateRank= "Нет";
                    break;
                }
                case 1:
                {
                    $pDonateRank= "Bronze";
                    break;
                }
                case 2:
                {
                    $pDonateRank= "Silver";
                    break;
                }
                case 3:
                {
                    $pDonateRank= "Gold";
                    break;
                }

            }
            switch($account['job'])
            {
                case 1: $pJob = "Вор"; break;
                case 2: $pJob = "Механик"; break;
                case 3: $pJob = "Продавец ХотДогов"; break;
                case 4: $pJob = "Таксист"; break;
                case 5: $pJob = "Развозчика продуктов"; break;
                case 6: $pJob = "тренера"; break;
                case 7: $pJob = "Водолаз"; break;
                case 8: $pJob = "Инкассатор"; break;
                case 9: $pJob = "Неизвестно"; break;
                case 10: $pJob = "Мусоровоз"; break;
                case 11: $pJob = "Неизвестно"; break;
                case 12: $pJob = "Развозчик пиццы"; break;
                case 13: $pJob = "Автоугонщик"; break;
                case 14: $pJob = "Боксёр"; break;
                case 15: $pJob = "Местный DJ"; break;
                case 16: $pJob = "Работник Налоговой"; break;
                case 17: $pJob = "Начинающий фермер"; break;
                case 18: $pJob = "Тракторист"; break;
                case 19: $pJob = "Комбайнер"; break;
                case 20: $pJob = "Водитель кукурузника"; break;
                case 21: $pJob = "Строитель"; break;
                default: $pJob = "Безработный"; break;
            }
            switch($account['member'])
            {
                case 1: $pMember = "S.A.P.D"; break;
                case 2: $pMember = "Ф.Б.Р"; break;
                case 3: $pMember = "Армия Авианосец"; break;
                case 4: $pMember = "МЧС Лос-Сантос"; break;
                case 5: $pMember = "La Cosa Nostra"; break;
                case 6: $pMember = "Якудза"; break;
                case 7: $pMember = "Мэрия"; break;
                case 8: $pMember = "Неизвестно"; break;
                case 9: $pMember = "Неизвестно"; break;
                case 10: $pMember = "SFPD"; break;
                case 11: $pMember = "Инструктор"; break;
                case 12: $pMember = "Ballas Gang"; break;
                case 13: $pMember = "Vagos Gang"; break;
                case 14: $pMember = "Russian Mafia"; break;
                case 15: $pMember = "Grove Street Gang"; break;
                case 16: $pMember = "CNN"; break;
                case 17: $pMember = "Aztecas Gang"; break;
                case 18: $pMember = "The Rifa Gang"; break;
                case 19: $pMember = "Армия Зона 51"; break;
                case 20: $pMember = "Неизвестно"; break;
                case 21: $pMember = "LVPD"; break;
                case 22: $pMember = "Закрыто"; break;
                case 23: $pMember = "Хитман"; break;
                case 24: $pMember = "Street Racers"; break;
                case 25: $pMember = "Банк"; break;
                case 26: $pMember = "Правительство"; break;
                case 27: $pMember = "Неизвестно"; break;
                default: $pMember = "Неизвестно"; break;
            }
    
        }
    }
    // Закрываем соединение с базой
    $mysqli->close();
       
?>
после этих действий у меня должно было вводить страничку с информацией об аккаунте но вместо этого я получаю сообщение "У вас нет доступа!" потому что сессия после вызова header аннулируется(по моему потому что если вызываю данные прямо сессии нечего не выходит не ид, не пароль, не игрового ника)

По моему вы поняли суть, прощу помочь))) всем спс!
 
Сверху Снизу