![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 7.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mam problem, mianowicie mam system z logowaniem itd. ale chciał bym w nim wprowadzić sesję, która sprawdzała by zgodność hasła z daną rangą np. mod=111 admin=222 sysop=333
Aktualnie zrobiłem coś takiego... Główny plik, z którego pobierane są wszystkie funkcje... Kod function maxsysop () { // Sprawdz czy istnieja sesje jezeli tak to przejdz dalej if(isset($_SESSION['code'])) { require "include/piny.php"; // Sprawdz czy haslo dla danej rangi jest poprawne jezeli tak wyswietl strone if($_SESSION['code'] == $sysop_code && $user['class'] == UC_SYSOP || $_SESSION['code'] == $semi_sysop_code && $user['class'] == UC_SEMI_SYSOP || $_SESSION['code'] == $administrator_code && $user['class'] == UC_ADMINISTRATOR || $_SESSION['code'] == $moderator_code && $user['class'] == UC_MODERATOR) header('Location: panel.php'); else header('Location: sprpin.php'); } else { header('Location: sprpin.php'); } } Plik sprpin.php Kod <?php require "include/bittorrent.php"; dbconn(); loggedinorreturn(); noaccess("spr.php", UC_VIP); if (get_user_class() < UC_MODERATOR) stderr('Błąd', 'brak dostępu!'); stdhead("Sprawdzanie PINu"); $res = mysql_query("SELECT username FROM users WHERE id=" . $CURUSER['id'] . "") or sqlerr(__FILE__, __LINE__); $user = mysql_fetch_assoc($res); print("<table border=1 cellspacing=0 cellpadding=5>"); print("<tr>"); print("<td class='colhead'>"); print("<p align='center'>Wpisz swój PIN <a href='userdetails.php?id=" . $CURUSER['id'] . "'>" . $user['username'] . "</a></p>"); print("</td>"); print("</tr>"); print("<tr>"); print("<td>"); print("<form action='sprpin.php' method='post'>"); print("<p align='center'><input name='code' type='text' size='5'></p>"); print("<p align='center'><input name='start' type='submit' value='Zatwierdź wprowadzony kod'></p>"); print("</form>"); print("</td>"); print("</tr>"); print("</table>"); stdfoot(); if($_POST["start"]) { session_start(); $_SESSION['code'] = $_POST['code']; header('Location: panel.php'); } ?> No i include/piny.php dla czystej formalności, z przykładowymi hasłami... Kod <? $sysop_code = '444'; $semi_sysop_code = '333'; $administrator_code = '222'; $moderator_code = '111'; ?> Widzicie gdzieś na starcie błąd? Grzebie się z tym już jakiś czas i nie działa tam gdzie jest funkcja maxsysop(); w pliku wywołany to zawsze się wyświetla plik nawet jak sesja nie istnieje :/ Ten post edytował nightmoon 10.11.2008, 22:39:43 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 141 Pomógł: 17 Dołączył: 2.04.2008 Skąd: z Zabrza Ostrzeżenie: (0%) ![]() ![]() |
Sprawdź czy na pewno podczas wywoływania tej funkcji $_SESSION['code'] wyświetla jakąś wartość (jeśli podany), a następnie zamiast
ustaw
Ten post edytował lukaszgolder 10.11.2008, 23:11:59 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 24 Pomógł: 0 Dołączył: 7.12.2007 Ostrzeżenie: (0%) ![]() ![]() |
Inaczej strasznie to uprościłem, ponieważ blokowany ma być dostęp tylko i wyłącznie do 1 pliku administracyjnego, tego głównego...
Więc stworzyłem funkcję Kod function sesja() { // Sprawdz czy istnieja sesje jezeli tak to przejdz dalej if(isset($_SESSION['code'])) { require "piny.php"; // Sprawdz czy haslo dla danej rangi jest poprawne jezeli tak wyswietl strone if($_SESSION['code'] == $sysop_code && $user['class'] == UC_SYSOP || $_SESSION['code'] == $semi_sysop_code && $user['class'] == UC_SEMI_SYSOP || $_SESSION['code'] == $administrator_code && $user['class'] == UC_ADMINISTRATOR || $_SESSION['code'] == $moderator_code && $user['class'] == UC_MODERATOR) header('Location: panel.php'); else header('Location: sprpin.php'); } else { header('Location: sprpin.php'); } } I w tym panel.php po prostu się do niej odwołałem tylko niestety przy pomocy tego skryptu Kod <?php require "include/bittorrent.php"; dbconn(); loggedinorreturn(); if (get_user_class() < UC_MODERATOR) stderr('Błąd', 'brak dostępu!'); stdhead("Sprawdzanie PINu"); $res = mysql_query("SELECT username FROM users WHERE id=" . $CURUSER['id'] . "") or sqlerr(__FILE__, __LINE__); $user = mysql_fetch_assoc($res); print("<table border=1 cellspacing=0 cellpadding=5>"); print("<tr>"); print("<td class='colhead'>"); print("<p align='center'>Wpisz swój PIN <a href='userdetails.php?id=" . $CURUSER['id'] . "'>" . $user['username'] . "</a></p>"); print("</td>"); print("</tr>"); print("<tr>"); print("<td>"); print("<form action='sprpin.php' method='post'>"); print("<p align='center'><input name='code' type='text' size='5'></p>"); print("<p align='center'><input name='start' type='submit' value='Zatwierdź wprowadzony kod'></p>"); print("</form>"); print("</td>"); print("</tr>"); print("</table>"); if($_POST["code"] == '') { print("Źle..."); } else { print("Hasło:".$pinver.""); } stdfoot(); if($_POST["start"]) { session_start(); $_POST['code'] = $_SESSION['code']; $pinver = $_SESSION['code']; } ?> Za żadne skarby nie mogę wywołać $pinver samo $_POST['code'] pokażę poprawnie zwróci jego wartość jeśli To Kod print("Hasło:".$pinver.""); Zmienimy na to: Kod print("Hasło:"$_POST['code']""); Temat można zamknąć sprawę rozwiązałem w zupełnie inny sposób zamiast sesji natomiast w tym przypadku rozpisanym wyżej nie przechwytuje zmiennych sesji (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Ten post edytował nightmoon 11.11.2008, 11:28:28 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.09.2025 - 20:49 |