Работа с сессиями в php [Немного практики]

Fatal Error

Новичок
post-1348-0-57563500-1399219208.jpg |


Решил продолжить предыдущую статью практическим уроком, если это можно таковым назвать


Сейчас мы напишем небольшой сайтик,состоящий из 3 страниц:
● Главная (index.php)
● Админпанель (admin.php)
● Форма входа (enter.php)

Для того, чтобы мы могли работать с сессиями, на нужна форма входа.
Рассмотрим файл enter.php

Откроем тэг php


PHP:
<?php


откроем сессию и заведем пользователя, которого будем авторизовать


Код:
session_start();
$admin = 'admin';
$pass = 'admin';


теперь сделаем саму форму входа

Код:
echo "<p><a href='index.php'>Главная</a> | <a href='admin.php'>Админпанель</a> | <a href='enter.php'>Авторизация</a></p>
    <hr>
    <h2>Форма входа</h2>
    <br />
    <form method='post'>
        Имя: <input type='text' name='user' /><br />
        Пароль: <input type='password' name='pass' /><br />
        <input type='submit' name='submit' value='Войти' />
    </form>
    <hr>";


а над ней обработчик данных, введенных в форме

Код:
if($_POST['submit']){
    if($admin == $_POST['user'] AND $pass == $_POST['pass']){
        $_SESSION['admin'] = $admin;
        header("Location: admin.php");
        exit;
    }else echo '<p>ERROR!</p>';
}


и над обработчиком вставим это (эта штука проверяет, стартовала ли сессия, если да, то она перенаправляет нас на страницу admin.php)


Код:
if($_SESSION['admin']){
    header("Location: admin.php");
    exit;
}


ну и, собственно, закроем тэг php


PHP:
?>


//************************//

Рассмотрим файл index.php

Откроем тэг php


PHP:
<?php


Вверху страницы расположим меню

Код:
echo "<p><a href='index.php'>Главная</a> | <a href='admin.php'>Админпанель</a> | <a href='enter.php'>Авторизация</a></p>";
?>


Ниже разместим какую-нибудь информацию


Код:
echo "<hr>
    <h2>Главная страница</h2>
    <h3>Урок написан Валентином Третьяковым<h3>
    <hr>";


И еще ниже какой-нибудь текст, который в будущем скроем от посторонних глаз


Код:
echo "<a href='admin.php'>Невидимый текст</a>";


ну и, собственно, закроем тэг php

PHP:
?>


теперь перейдем к самому интересному:
как же нам скрыть текст от неавторизованных пользователей?
Очень просто!
Нам нужно всего-лишь проверить, авторизован пользователь или нет.
Получится следующее


Код:
if($_SESSION['admin']){
    echo "<a href='admin.php'>Невидимый текст</a>";
}


//************************//

В файле admin.php нет ничего такого, чтобы мы не рассмотрели
Поэтому я просто прицеплю код всей страницы.

PHP:
<?php
session_start();
if(!$_SESSION['admin']){
    header("Location: enter.php");
    exit;
}

if($_SESSION['admin']){
    echo "<p><a href='index.php'>Главная</a> | <a href='admin.php'>Админпанель</a> | <a href='enter.php?do=logout'>Выход</a></p>";
}else{
    echo "<p><a href='index.php'>Главная</a> | <a href='admin.php'>Админпанель</a> | <a href='enter.php'>Авторизация</a></p>";
}
echo "<hr>
    <h2>Админпанель</h2>
    <h3>Урок написан Fatal Error<h3>
    <hr>";
if($_SESSION['admin']){
    echo "<a href='admin.php'>Невидимый текст</a>";
}  
?>
 

forZone

Профессионал
Буду рад, если объяснишь как сделать авторизацию по данным из БД.
 
Сверху Снизу