Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Personalizacja strony
gawellus
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 3.07.2009

Ostrzeżenie: (0%)
-----


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ć.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
alegorn
post
Post #2





Grupa: Zarejestrowani
Postów: 341
Pomógł: 40
Dołączył: 23.06.2009

Ostrzeżenie: (0%)
-----


temat jest zlozony jesli by wdawac sie w szczegoly...
jednym z rozwiazan jest ACL
gotowych rozwiazan jest naprawde sporo... poguglaj, a znajdziesz sporo odnosnikow.
Go to the top of the page
+Quote Post
kfc4
post
Post #3





Grupa: Zarejestrowani
Postów: 195
Pomógł: 18
Dołączył: 7.10.2007

Ostrzeżenie: (0%)
-----


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 }
Go to the top of the page
+Quote Post
gawellus
post
Post #4





Grupa: Zarejestrowani
Postów: 47
Pomógł: 0
Dołączył: 3.07.2009

Ostrzeżenie: (0%)
-----


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ą?

Ten post edytował gawellus 7.07.2009, 10:37:37
Go to the top of the page
+Quote Post
murek92
post
Post #5





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 6.07.2009

Ostrzeżenie: (0%)
-----


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...(IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
zordon
post
Post #6





Grupa: Zarejestrowani
Postów: 358
Pomógł: 78
Dołączył: 4.11.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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/');

Ten post edytował zordon 7.07.2009, 12:03:43
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.09.2025 - 22:30