Инструменты пользователя

Инструменты сайта


software:development:demo:cms:ucms:sample_php_deny_access

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

software:development:demo:cms:ucms:sample_php_deny_access [2026/02/22 12:06] – создано VladPolskiysoftware:development:demo:cms:ucms:sample_php_deny_access [2026/02/22 12:27] (текущий) – [Введение] VladPolskiy
Строка 20: Строка 20:
       * [[software:development:demo:cms:ucms:sample_php_page_404.php|4.7.5. Файл 404.php]]       * [[software:development:demo:cms:ucms:sample_php_page_404.php|4.7.5. Файл 404.php]]
 ===== Введение ===== ===== Введение =====
 +
 +
 +===== Файл index.php =====
 +В файле **index.php** добавляем в //строке 3// кода, в список разрешенные страницы добавим **users** и **users_logout**.
 +<code php index.php [enable_line_numbers="true",highlight_lines_extra="3"]>
 +<?php
 +include 'pages/header.php';
 +$allowed_pages = array('home', 'about', 'contact', 'like', '404' , 'users', 'users_logout');
 +$page = $_GET['page'] ?? 'home'; // По умолчанию 'home'
 +?>
 +    <!-- Здесь основное содержимое нашей страницы -->
 +<main>
 +</code>
 +
 +===== Файл header.php =====
 +В файле **header.php** добавляем в //строке 32// кода меню, ссылки на дополнительные страницы,  страницу авторизации **users** и  выхода из системы **users_logout**.
 +<code php header.php [enable_line_numbers="true",highlight_lines_extra="7"]>
 +<nav class="navbar">
 + <ul>
 + <ul>
 +<li><a class="active" href="/">Home</a></li>
 +<li><a href="index.php?page=about">About</a></li>
 +<li><a href="index.php?page=contact">Contact</a></li>
 +<li><a href="index.php?page=users">login</a></li>
 +<li><a href="index.php?page=users_logout">logout</a></li>
 +</code>
 +
 +===== Файл user.php =====
 +Создадим **user.php** 
 +<code php user.php [enable_line_numbers="true"]>
 +<?php
 +session_start();
 +echo 'test';
 +echo '<br/>';
 +$users = [
 +['eva', '123', 'admin_test'],
 +['tom', '456', 'admin_test'],
 +['bob', '456', 'user_test'],
 +['alisa', '789', 'user_test']
 +
 +];
 +
 +foreach ($users as $user) {
 + list($name, $pass, $status) = $user;
 +    echo "$name, $pass, $status <br>";
 +}
 +///////
 + // проверить блокировку по IP
 + // проверить, что не бот
 + // вывести капчу
 +
 + 
 +if ($_SERVER["REQUEST_METHOD"] == "POST") {
 +    $username = $_POST['userform'];
 +    $password = $_POST['passform'];
 +    $err = '';
 +    foreach ($users as $user) {
 +        list($name, $pass, $status) = $user;
 + 
 +        if ($username === $name && $password === $pass) {
 + $_SESSION['user_name'] = $name;
 +            $_SESSION['user_status'] = $status;
 + echo $_SESSION['user_name'] . ", Ваш статус: " . $_SESSION['user_status'] . " <br>";
 +            //header('Location: /auto/profile.php');
 +            //exit();
 +        } 
 +    }
 +     
 +
 +  
 +    $err = '<small class="form-text text-danger mb-2">Неверное имя пользователя или пароль.</small>';
 +}
 +else 
 +
 + $_SESSION['user_name'] = [];
 + $_SESSION['user_status'] = 'gost';
 + echo "Вы не авторизированны, вы - " . $_SESSION['user_status'] . "<br>";
 + //header('Location: /auto/profile.php');
 + //exit();
 + }
 +///////
 +?>
 +<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
 +  <head>
 +    <meta charset="utf-8">
 +    <!-- запрет автоперевода перевода google translate -->
 +    <meta name="google" content="notranslate">
 + <!-- отображение файктической ширины экрана для адаптивного дизайна -->
 + <meta name="viewport" content="width=device-width, initial-scale=1.0">
 + </head>
 +<form method="post" >
 +<center>
 +<table border=0>
 +<tr>
 +<td><label for="userform">Username:</label></td>
 +<td><input type="text" id="userform" name="userform" maxlength="50" /></td>
 +</tr> <tr>
 +<td><label for="passform">Password:</label></td>
 +<td><input type="password" id="passform" name="passform" /></td>
 +</tr>
 +</table><br />
 +<input type="submit" value="Log in" />
 +</form>
 +</html>
 +</code>
 +
 +===== Файл user_logout.php =====
 +Создадим **user_logout.php** 
 +<code php user_logout.php [enable_line_numbers="true"]>
 +<?php
 +session_start();
 +header('Location: index.php?page=home');
 +session_destroy();
 +exit();
 +?>
 +</code>
 +
 +===== Файл about.php =====
 +В начале кода **about.php.php** добавим код разрешения просмотра содержимого
 +<code php about.php.php [enable_line_numbers="true"]>
 +<?php
 +// блоктровка страниц, если пользователь не авторизирован
 +session_start();
 +echo "Ваш статус: " . $_SESSION['user_status'] . " <br>";
 +if (!isset($_SESSION['user_status']) || $_SESSION['user_status'] !== 'admin_test' && $_SESSION['user_status'] !== 'user_test')
 +
 +echo 'это недоступная информация';
 +include '404.php';
 +exit();
 +}
 +echo "Добро пожаловать...";
 +?>
 +</code>
 +
 +Сохраняем и проверяем ссылку http://localhost/index.php?page=about в браузере
 +<note shadow>{{:software:development:demo:cms:ucms:sample_php_deny_access_8.png?|}}</note>
 +
 +===== Дополнения и Файлы =====
 +<note shadow>{{ :software:development:demo:cms:ucms:htdocs_20.02.2026.rar | Архив примеров этой главы}}</note>
software/development/demo/cms/ucms/sample_php_deny_access.1771751208.txt.gz · Последнее изменение: VladPolskiy

Если не указано иное, содержимое этой вики предоставляется на условиях следующей лицензии: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki