![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 5 Pomógł: 0 Dołączył: 9.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam, pilnie potrzebuję pomocy. Robię vortal komputerowy, zrobiłem już cms'a brakuje tylko logowania i zabezpieczenia panelu administratora... Wpadłem na pomysł, żeby konta załozone na forum działały w serwisie, czyli logowanie ma korzystac z bazy forum.
problem jest nastepujący. Stworzywszy sesje efekt widoczny jest tylko na stronie index.php?id=pole... Zamieszcze fragmenty kodu. cms/rangi/login.php Ta podstrona jest includowana w polu przeznaczonym na logowanie, albo jeżeli jest juz ktoś zalogowany to do bajerów profilu... (admin.php, modek.php czy user.php) Kod <?php if (isset($_SESSION['admin']) && $_SESSION['admin']=='123') { include('cms/rangi/admin.php'); } else if (isset($_SESSION['user']) && $_SESSION['user']=='abc') { include('cms/rangi/user.php'); } else { ?> <table cellpadding="0" cellspacing="0" align="center"> <form name="login" method="POST" action="index.php?id=pole"> <tr><td><input type="text" class="log" name="login" value="login" onFocus="if(this.value=='login') {this.value='';}" onBlur="if(this.value=='') {this.value='login';}"></td><td rowspan="3" width="2"></td><td rowspan="3"><input type="image" SRC="_img/ikony//ok.png" ALT="OK"></td></tr> <tr><td height="6"></td></tr> <tr><td><input type="password" class="log" name="pass" value="haslo" onFocus="if(this.value=='haslo') {this.value='';}" onBlur="if(this.value=='') {this.value='haslo';}"></td></tr> <tr><td colspan="3" height="3"></td></tr> <tr><td colspan="3"><a href="#" class="srodek">Rejestracja w Portalu</a> <a href="#" class="srodek">Przypomnienie hasła</a></td></tr> </form> </table> <?php } ?> Jeszcze tylko mała uwaga, do tych sesji dodaje wartość abc lub 123 tylko przykładowo. Celem wstawiania tych wartości jest zabezpieczenie sie przed tworzeniem fake sesji, które dawałyby uprawnienia... cms/rangi/pole.php do tego odwoluje sie login.php tu sprawdzane sa wartosci login i haslo i tworzone sa sesje... Kod <?php session_start(); $link = mysql_connect('127.0.0.1','root','haslo); mysql_select_db('portal'); $user = $_POST['login']; $result = mysql_query("SELECT * FROM phpbb_users WHERE username = '$user'"); $pass = $_POST['pass']; $pass = md5($pass); $row = mysql_fetch_array($result); if($pass == $row['user_password']){ switch ($row['user_id']) { case 2: $_SESSION[$user] = '123'; break; case 3: $_SESSION[$user] = 'abc'; break; default: echo('zalogowany jako none'); break; } } mysql_close($link); ?> i chyba to wszystko. Problem tkwi w tym, że include np. admin.php jeżeli jestesmy zalogowani na admina działa tylko, gdy jestesmy na stronie index.php?id=pole (normalna strona główna z dodaną wartością cms/rangi/pole.php). Bawię się w PHP od września, więc nie wymagajcie odemnie za dużo... prosiłbym o radę, żebym wreszcie uporał się z tym problemem, dziekuję z góry! Ten post edytował Cysiaczek 9.11.2007, 23:06:08
Powód edycji: dodalem tag (cysiaczek)
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 02:48 |