Napisałem prosty skrypt dla administratorów. Posiada on opcje czy administrator może wejść na daną stronę czy nie.
W bazie przy tworzeniu użytkownika jest albo 0 albo 1 przy danym dziale, co znaczy 0 że nie może wejść na tą stronę - 1 może.
Mam problem z sesjami, ponieważ nie umiem rozgraniczyć danych użytkowników, tzn. jeśli zaloguje się jeden użytkownik i w tym samym czasie drugi to ten drugi i/lub pierwszy oddziałowywują na siebie wzajemnie. Przypuszczam że muszę użyć identyfikatora sesji ale nie wiem dokładnie jak to zrobić może mi ktoś poradzić?. Poniżej przedstawiam kod.
<?php
ob_start();
include ("../db.php");
session_start();
// Jeśli osoba się zaloguje pokaże górny pasek dla administratora
if ($_SESSION['autorize'] == 'Tak')
{
include ("header.php");
}
// Jeśli wpisano login i hasło i potwierdzono przyciskiem ok wykonuj dalej
if (($_POST['Login'] != '') && ($_POST['Password'] != '') && ($_POST['Ok'] == 'Przeslij'))
{
$Login = $_POST['Login'];
$Password = $_POST['Password'];
}
// Jeśli wypełniono pola formularza rozpocznij pętle wyszukania użytkownika
if ((isset($Login)) && (isset($Password)))
{
$Autoryzacja = mysql_query('SELECT * FROM autoryzacja');
while($Autorize = mysql_fetch_array($Autoryzacja))
{
// Jeśli znaleziono użytkownika zobacz jakie ma ID i wybierz dla niego odpowiednie wartości
if (($Autorize['login'] == $Login) && ($Autorize['password'] == $Password) && ($Autorize['id'] != ''))
{
$Uzytkownik = mysql_query("SELECT * FROM autoryzacja WHERE id=$Autorize[id]");
$Uzytkownik_ID = mysql_fetch_array($Uzytkownik);
// Przypisywanie czy jest autoryzacja i do jakich działów ma dostęp
$_SESSION['autorize'] = 'Tak';
$_SESSION['onas'] = $Uzytkownik_ID['onas'];
$_SESSION['ewydanie'] = $Uzytkownik_ID['ewydanie'];
$_SESSION['reklama'] = $Uzytkownik_ID['reklama'];
$_SESSION['prenumerata'] = $Uzytkownik_ID['prenumerata'];
$_SESSION['kontakt'] = $Uzytkownik_ID['kontakt'];
$_SESSION['wiadomosci'] = $Uzytkownik_ID['wiadomosci'];
$_SESSION['wnumerze'] = $Uzytkownik_ID['wnumerze'];
$_SESSION['ksiazkiidodatki'] = $Uzytkownik_ID['ksiazkiidodatki'];
$_SESSION['pietnascielat'] = $Uzytkownik_ID['pietnascielat'];
$_SESSION['dzienpolskiejfarmacji'] = $Uzytkownik_ID['dzienpolskiejfarmacji'];
$_SESSION['szkolenia'] = $Uzytkownik_ID['szkolenia'];
$_SESSION['redaktorpolecatekst'] = $Uzytkownik_ID['redaktorpolecatekst'];
$_SESSION['redaktorpolecagrafika'] = $Uzytkownik_ID['redaktorpolecagrafika'];
$_SESSION['olowkiem'] = $Uzytkownik_ID['olowkiem'];
$_SESSION['obiektywem'] = $Uzytkownik_ID['obiektywem'];
$_SESSION['adm_wiadprzewijane'] = $Uzytkownik_ID['adm_wiadprzewijane']; // !
$_SESSION['adm_pozycjonowanie'] = $Uzytkownik_ID['adm_pozycjonowanie']; // !
$_SESSION['adm_ustawienia'] = $Uzytkownik_ID['adm_ustawienia']; // !
$_SESSION['adm_reklama'] = $Uzytkownik_ID['adm_reklama']; // !
}
}
}
switch( $_REQUEST['edycja'] )
{
case "z_informacja":
include ("z_informacja.php");
break;
case "w_przewijane":
include ('w_przewijane.php');
break;
case "pozycja":
include ('pozycja.php');
break;
case "ustawienia":
include ('ustawienia.php');
break;
case "reklama":
include ('reklama.php');
break;
case "info":
include ('info.php');
break;
case "wyloguj":
session_unset();
header("Location: index.php");
exit;
}
ob_end_flush(); ?>
<center>
<!-- Jeśli nie ma autoryzacji wyswietlaj formularz -->
<?php if ($_SESSION['autorize'] != 'Tak') { ?>
<form method="POST" action="">
<a href="../index.php"><font face="Verdana" style="font-size: 9pt" color="#CC3300">Powrot do srony glownej</a></font><br>
<br><font face="Verdana" style="font-size: 9pt" color="#CC3300">Login: <input type="text" name="Login" size="20"><br>
Haslo: <input type="text" name="Password" size="20"><br>
<input type="submit" value="Przeslij" name="Ok"><input type="reset" value="Resetuj" name="Reset"></font>
</form>
<?php } ?>
<!-- Tutaj już warunki, w przypadku niektórych czynności -->
<?php if ($_SESSION['autorize'] != 'Tak') { ?>
<?php if (($Password == '') || ($Login == '') && ($_POST['Ok'] == 'Przeslij'))
{
echo '<font face="Verdana" style="font-size: 9pt" color="#CC3300">Nic nie wpisano, prosze wpisac nazwe uzytkownika oraz haslo</font>';
}
if (($_SESSION['autorize'] == false) && ($Login != '') && ($Password != ''))
{
echo '<font face="Verdana" style="font-size: 9pt" color="#CC3300">Podano zly login lub haslo</font>';
}
} ?>
<?php if (($_SESSION['autorize'] == 'Tak') && ($Password != '') && ($Login != '')) { echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL=index.php">'; } ?>
<!-- Tutaj już warunki, w przypadku niektórych czynności -->
</center>
[b]Następnie na kolejnych stronach dodałem odpowiednio dla konkretnych działów - tutaj np. dział reklama:[/b]
if (($_SESSION['adm_reklama'] == '0') || ($_SESSION['adm_reklama'] == ''))
{
echo '<br><center><font face="Verdana" style="font-size: 9pt" color="#CC3300">Nie masz dostepu do tej strony, skontaktuj sie z administratorem</font></center>';
}
if ($_SESSION['adm_reklama'] == '1')
{
echo 'Zawartosc strony.....';
}
?>