Задание 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>
Что мне надо...
- на index.php скрывала форма авторизации при входе
- в head.php менялось вход на выход
- в 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
Сейчас учусь с БД инфу выводить...
Скоро вернусь к сессиям...