Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PI_lektsii_2016.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
6 Мб
Скачать
☆

15.2.2 Адміністрування списку користувачів.

При вході на багато сайтів користувачі повинні авторизуватись і потім продовжити перегляд вмісту сайту. Дані про користувачів зазвичай зберігаються в базі даних, куди їх вносять самі користувачі при реєстрації.

Адміністратор сайту повинен мати можливість переглядати список користувачів, редагувати і видаляти записи. Редагування записів може бути необхідно, якщо адміністратор формує або змінює паролі користувачів, визначає тип користувача і т. п. Отже, адміністратор повинен мати можливість:

1. входити на сторінку адміністрування;

2. відкривати список користувачів;

3. редагувати будь-який запис з даними користувача;

4. видаляти записи користувачів.

15.2.3 Вхід на сторінку адміністрування

Для забезпечення входу в розділ адміністрування необхідно заздалегідь внести в базу даних інформацію про адміністратора, наприклад вказавши в полі usertype значення admin.

У цьому випадку в каталозі admin можна розмістити файл index.php такого змісту:

<?php

$title = 'Вхід на сторінку адміністрування';

include "utils/topadmin.php";

?>

<TABLE width=100% bgColor=white border=0>

<form name=admin_auth action=adminpage.php method=POST>

<tr> <td colspan=2 > Вхід для адміністратора:</td>

<tr><td align="right"> Ім'я (Login):</td>

<td align="left"><input type="text" name=login maxlength="50" size="20">

</td></tr>

<tr><td align="right">Пароль:</td>

<td align="left"><input type="password" name="password" maxlength="50"

size="20">

</td></tr>

<tr><td align=center colspan=2><input type="submit" size=20 value="Вхід" >

</td></tr>

</form>

</table>

<?php

include "utils/bottomadmin.php";?>

На сторінці index.php виконується тільки введення імені і пароля адміністратора, обробка введених даних здійснюється на сторінці adminpage.php

Код для авторизації адміністратора може мати наступний вигляд:

<? session_start();

$adminlogin=$_POST[‘login’];

$adminpsw=$_POST[‘password’];

include "utils/topadmin.php";

…

$dostup=false;

//відбір даних про адміністратора БД

$query=”SELECT FROM users WHERE login=’”.$adminlogin.”’ AND password=’”.$adminpsw.”’”;

$rowsnum=$mysql_num_rows($query);

if ($rowsnnum==1)

$res=mysql_fetch_array($query);

if($res[‘usertype’]==”admin”)

$dostup=true;

If(!$dostup)

echo “ У вас немає прав для входу на цю сторінку ”

else

{

$_SESSION[‘adminlogin’]=$adminlogin;

$_SESSION[‘adminpsw’]=$adminpsw;

$_SESSION[‘admintype’]=$res[‘usertype’];

Код сторінки adminpage.php}

include "utils/bottomadmin.php";

Сторінки index.php і adminpage.php забезпечили авторизацію адміністратора, його допуск до сторінок адміністрування і збереження характеристик адміністратора в глобальному масиві $ _SESSION [].

15.2.4 Відкриття списку користувачів.

Після входу на сторінку адміністрування (adminpage.php) адміністратору стало е посилання на сторінку зі списком користувачів (users / index.php). При переході по цьому посиланню виконується код, що зберігається в файлі users / index.php. Цей код повинен забезпечити знову авторизацію адміністратора, щоб стороння людина не змогла відкрити сторінку, знаючи її ім'я.

Якщо адміністратор авторизований, то код повинен сформувати і відобразити список користувачів і інструменти для обробки цього списку.

Завдання авторизації вирішується також як в файлі adminpage.php? тільки дані беруться не з масиву $ _POST [], а з масиву $ _SESSION []:

<? session_start();

$adminlogin=$_SESSION[‘adminlogin’];

$adminpsw=$_SESSION[‘adminpsw’];

include "../utils/topadmin.php";

…

$dostup=false;

// відбір даних про адміністратора з БД

$query=”SELECT FROM users WHERE login=’”.$adminlogin.”’ AND password=’”.$adminpsw.”’”;

$rowsnum=$mysql_num_rows($query);

if ($rowsnnum==1)

$res=mysql_fetch_array($query);

if($res[‘usertype’]==”admin”)

$dostup=true;

Ця частина коду буде однакова для всіх сторінок адміністрування, тому можна оформити її у вигляді файлу dostup.php, зберегти цей файл у каталозі admin і підключати його до потрібних сторінок. У цьому випадку код сторінки зі списком користувачів матиме вигляд:

<? include “../dostup.php”

If(!$dostup)

echo “ У вас немає прав для входу на цю сторінку"

else

{//формуємо список користувачів

<span>Список користувачів<span>

// Формуємо SQL-запит на вибірку даних користувача

$query = "SELECT * FROM users ORDER BY user_id;

// Виконуємо SQL-запит

$res = mysql_query($query);

// Зупиняємо виконання скрипта, якщо відбувається помилка при

// виконанні SQL-запиту

if(!$res) echo("Помилка при зверненні до списку користувачів");

if (mysql_num_rows($res)>0)

{

?>

<table border="1">

<tr>

<td>user_ID</td>

<td>Пользователь</td>

<td>Адреса</td>

<td>Телефон</td>

<td>E-mail</td>

<td>Login</td>

<td>Password</td>

<td>usertype</td>

<td> Дія </td>

</tr>

<?

while($users = mysql_fetch_array($art))

{

echo "<tr>

<td>".$users['user_id']."</td>

<td>".$users['userName']."</td>

<td>".$users['userAddress']."</td>

<td>".$users['userPhone']."</td>

<td>".$users['userEmail']."</td>

<td>".$users['Login']."</td>

<td>".$users['Password']."</td>

<td>".$users['usertype']."</td>

<td><a href=edituserform.php?user_id=".$users['user_id'].

"> Редагувати </a><br>

<a href=deluser.php?user_id=".$users['user_id'].

"> Видалити </a><br>

</tr>";

}

echo "</table>";

}

include “../util/bottomadmin.php”;

В результаті виконання вищенаведеного коду в браузері буде відображатися таблиця зі списком користувачів, в останньому стовпці цієї таблиці в кожному рядку будуть відображатися гіперпосилання з текстом «Редагувати» і «Видалити», які здійснюють перехід на файли edituserform.php і deluser.php відповідно із зазначенням ідентифікатора користувача, що дозволить в цих файлах проводити обробку обратного запису.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]