Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Personalizacja strony
Forum PHP.pl > Forum > Przedszkole
gawellus
Witam
Czy ktoś mógłby mi polecić tutorial lub kurs lub cokolwiek odnośnie personalizacji strony w php?
Chodzi o to, że muszę wprowadzić na stronę dwie kategorie użytkowników z różnymi prawami (jedni mogą zobaczyć więcej inni mniej) i nie bardzo wiem jak się do tego zabrać.
alegorn
temat jest zlozony jesli by wdawac sie w szczegoly...
jednym z rozwiazan jest ACL
gotowych rozwiazan jest naprawde sporo... poguglaj, a znajdziesz sporo odnosnikow.
kfc4
Tak na szybko:
- Dodajesz w tabeli koejne pole: uprawnienia;
- Uprawnienia to są: 0,1,2,3 i ile tam chcesz;
- Opcjonalnie w innej tabeli możesz sobie je jakoś ponazywać (relacje);
- A póżniej przy logowaniu dodajesz do sesji numer uprawnienia
- if ($_SESSION['upr'] === 0) { root } elseif ($upr === 1) { Admin } else { Zwykły user }
gawellus
poproszę o sprawdzenie kodu, który de facto nie działa:/
chodzi w nim o to, że po zalogowaniu (logowanie działa) użytkownik po kliknięciu w stronę członkowską jest przekierowany tutaj,
w zależności od jego praw dostępu jest mu wyświetlana lista miejscowości lub nie, problem w tym, że za każdym razem pokazuje "brak praw dostępu"
(komunikat który ustawiłem dla praw <>0)


CODE
<?php
session_start();

echo '<h1>Część członkowska</h1>';

if(isset($_SESSION['prawa']))
{
echo '<p>Użytkownik zalogowany jako '.$_SESSION['prawa'].'</p>';
echo '<p>Oto zawartość dostępna tylko dla członków</p>';

if ($_SESSION['prawa'] === 0)
{

@ $db = new mysqli('localhost', 'root', 'root', 'trwale_test');

if (mysqli_connect_errno())
{
echo 'Blad w polaczeniu';
exit;
}

$db->query("SET NAMES 'utf8'");
$db->query("SET collation_connection = utf8_polish_ci;");
$zapytanie = "SELECT nazwa FROM miejscowosci";
$wynik = $db->query($zapytanie);

echo "<select name=Miejscowosc value=''";

while($nt=mysqli_fetch_array($wynik))
{
echo "<option value=$nt[nazwa]>$nt[nazwa]</option>";

}
echo "</select>";
echo '<form action="...">';
}
else
{
echo 'Brak praw dostepu';
}
}
else
{
echo '<p>Użytkownik niezalogowany.</p>';
echo '<p>Tylko zalogowani użytkownicy mogą oglądać tę stronę.</p>';
}

echo '<a href="uwierz_glowny.php">Powrót do strony głównej</a>';
?>


dodatkowo pytanie:
ile może być zmiennych sesyjnych, jak je ustawiać i odwoływać się do nich?
oraz jak zrobić, żeby po zalogowaniu strona automatycznie przekierowywała na stronę członkowską?
murek92
Hmmm.. Ja bym to zrobił tak że:
Pobierasz z bazy danych uprawnienia usera.
Switch(uprawnienia) case include(tresc_dla_danych_uprawnien) itd.
Później w tych plikach z treścią jeszcze raz sprawdzić uprawnienia (if uprawnienia == X { treść strony} else { komunikat o potrzebie zalogowania }


Jak zrozumiesz to może będzie to lepsze rozwiązanie.

PS Nie karcić mnie, uczę się php od 2 dni...tongue.gif
zordon
daj sobie var_dump($_SESSION) , żeby sprawdzić, co konkretnie masz w sesji. Dałeś sobie operator '===', który sprawdza, czy wyrażenia są równe tożsamościowo - czyli dokładnie liczbie zero. Być może w sesji masz null, false, '' czy jeszcze cos podobnego

poza tym lepiej unikać nadawania ważnym zmiennym wartości '0', lepiej zarezerwować ją dla 'brak dostępu', żeby później nie było problemów z brakiem zmiennej, braku jej wartości, wartości pustej itp.

co do sesji to najlepiej zrób tak:
$sess = 'jakis tam tekst';
$_SESSION[$sess]['twojaZmienna'] = $twojaZmienna;

$sessid powinienes sobie zmieniac przy kazdym projekcie - wtedy, przy pracy z kilkoma projektami na raz gdy powtórzą ci się nazwy zmiennych - nie będą się gryzły

a przekierować stronę możesz tak:
header('Location: http://www.example.com/');
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.