Задание PHP. ПРИЗ: 1000 монет и 30 рефералов

Авторизация
 
  • Автор

    Делаю сайт на PHP с авторизацией через кукисы... Пробовал сделать, не получается...

    Кто сделает как мне надо...

    Получит от меня 1000 монет и 30 рефералов в аккаунт(поставлю на пиар).

    Начнём с того, что у меня есть...

    index.php

    
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>Мой сайт</title>
    </head>
    <body class="">
    ############################ПЕРВОЕ#####################
    <?php
    include('head.php'); // На этой странице дожен показываться ВХОД/ВЫХОД
    ?>
    ############################ПЕРВОЕ#####################
    <div id="Container">
    <?php
    include('info.php');
    ?>
     <div class="">
    <?php
    include('sidebar.php');
    ?>
     </div>
     <div class="">
     <div class=""><span>Заговок страницы</span> </div>
    
    ######################ВТОРОЕ########################
    <div class="стиль авторизации"> //Начало блока авторизации юзера (При успеха должна пропадать)
     <div class="стиль авторизации"> Авторизация </div>
    <div class="login-from-body">
    <?php
    echo ("<form class='' action='profile.php' method='POST'>
     <div class=''><span>Логин:</span>
     <input type='text' id='login' class='input-txt' name='login' value='' tabindex='1'/>
     </div>
     <div class=''><span>Пароль:</span>
    <input type='text' id='pass' class='' name='pass' tabindex='2'/>
     </div>
     <div class=''><input class='' name='button' type='submit' value='Войти'></div>
    </form>");
    ?>
    
     </div>
     </div> 
    <div style="padding: 200px;"></div> //Конец блока авторизации....
    ######################ВТОРОЕ########################
    <div class="topPart"><h2>Новости сайта</h2></div>
    <div class="topPartNews"></div>
    
    </div>
    <div id="footerClear"></div>
    </div>
    
    <?php
    include('footer.php');
    ?>
    
    </body>
    </html>
    
    
  • Автор

    head.php

    
    <div id="topPanel">
    <h1 id="logo">Название сайта</h1>
    <ul class="menu"><li><a href="/">Главная</a></li></ul>
    ############ 1 ############
    <ul class="menu"><li><a href="/"> Вход </a></li></ul>
    ############ 1 ############
    ############ 2 ############
    <ul class="menu">
    <li><a id="" class="" href="/profile.php">Профиль</a></li>
    <li><a id="logout" href="/">Выйти</a></li>
    </ul>
    ############ 2 ############
    </div>
    
    

    profile.php

    
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>Мой сайт</title>
    </head>
    <body class="">
    #########################ВХОД/ВЫХОД#######################
    <?php
    include('head.php'); // На этой странице дожен показываться ВХОД/ВЫХОД
    ?>
    #########################ВХОД/ВЫХОД#######################
    <div id="Container">
    <?php
    include('info.php');
    ?>
     <div class="">
    <?php
    include('sidebar.php');
    ?>
    </div>
     <div class="">
     <div class=""><span>Заговок страницы</span> </div>
    
    ###### ЕСЛИ ПРОШЛА АВТОРИЗАЦИЯ ПОКАЗЫВАТЬ #######
     <div class="login-form-block">Скрытая информация</div>
    ###### ЕСЛИ ПРОШЛА АВТОРИЗАЦИЯ ПОКАЗЫВАТЬ #######
    
    </div>
    
    <div id="footerClear"></div>
    
    </div>
    
    <?php
    include('footer.php');
    ?>
    
    </body>
    </html>
    
    

    Что мне надо...

    1. на index.php скрывала форма авторизации при входе
    2. в head.php менялось вход на выход
    3. в profile.php надо чтобы не пропада авторизация, при нажатии ссылки "Профиль"

    За самый нормальный ответ - ПРИЗ!


  • Данные для авторизации должны храниться в сессии, либо постоянно передаваться между запросами для ее поддержки.

    А куки, для создания новой сессии, когда истекает старая.

    Проверяем данные в сессии, если все совпадает - юзер авторизован.

  • Автор

    Telonko, да это всё понятно.... только 2 дня уже пытаюсь сесию или куки сделать, не получается.... надоело... 😃


  • Я бы рекомендовал тебе создать header.php, где будет шапка, блоки, то-сё, чтобы центральный блок начинался в конце файла. footer.php, где находится всё, что ниже выкладываемого контента. Либо сделать нормальный шаблон, или как там его называют )

    В твоём случае, если всё правильно понял, я бы сделал бы чуть по другому. Например, чтобы форма была сразу в head, либо отдельную страницу для авторизации. Также, на любой странице обязательно должна начинаться сессия ).
    К примеру, ты делаешь форму на отдельной странице, назовём её login.php:

    
    <?php 
    session_start();
    if(isset($_SESSION['login'])) { header("Location: index.php"); } else { // Если залогинены, то переход на главную.
    
    echo (" 
    <form action='test.php' method='post'>
    Ваш логин:<br>
    <input name='login' type='text' size='15' maxlength='15'>
    Ваш пароль:<br>
    <input name='password' type='password' size='15' maxlength='15'>
    <input type='submit' name='submit' value='Войти'>
    </form> "); }
    exit();
    ?>
    
    

    Отправили данные > Проверяем их на наличие хтмл кодов, пробелов, проверяем, заполнены они, либо пусты > Если всё нормально, то выбираем из БД юзера, где логин = $_POST['login'] > Сверяем пароль с заданным > Если всё нормально, то пихаем $row['login'] ( или как там твоя переменная будет называться ) в $_SESSION['login'] > Перенаправляем на главную, можно добавить текст, сообщающий об удачной авторизации, тоже через сессию.
    Если требуется что-то скрыть, то

    
    <?php
    if(isset($_SESSION['login'])) { echo (" Скрытый текст "); } else { echo ("Вы не авторизированы для просмотра данного текста"); }
    ?>
    
    

    Либо такой вариант:

    
    <?php
    if(isset($_SESSION['login'])) { echo (" Личный кабинет <br> Профили <br> Файлы ... "); } else { echo (" *Форма авторизации* "); }
    ?>
    
    

    Но учти, что сессия должна начинаться на каждой странице в самом начале кода, чтобы не терялась )

    logout.php

    <?php
    session_start();
    session_destroy();
    header("Location: index.php");
    ?>
    

    Если какая ошибка - извиняюсь, на скорую руку.

  • Автор

    Спасибо! Завтра повтыкаю... Скоро спасть)

    Добавлено через 09:09:41 мин.
    Сивак Даниил, это как я понял сессия просто создаётся без куков?


  • Да. И каждый раз надо будет заходить.

  • Автор

    чё-то не совсем у меня получилось...

    нашел видео уроки по php, как создать сайт с нуля про хомячка))

    Понял что надо шаблон переделывать, там тоже весь скрипт шаблона в header.php делается, а в index.php только центральный блок, а потом подключается footer.php

    Сейчас учусь с БД инфу выводить...

    Скоро вернусь к сессиям...

Авторизация