Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] panel administratora, jak to powinno wygladac w php
-piotrekCK-
post 1.06.2006, 18:46:02
Post #1





Goście







hej, zaczalem na powaznie uczyc sie php i w momencie zabrania sie za sesje zaczelo nurtowac mnie pewne pytanie smile.gif wezmy np. ze mamy do napisania panel administracyjny. Na poczatku jest strona z formularzem, na ktorej np. jest

  1. <form action="go.php" method="post">


w go.php mamy sprawdzanie hasla, jezeli jest dobre to wyswietlamy panel. i ... no wlasnie.

Taki panel to cos wiecej niz wyswietlenie "hej jestes zalogowany" - a mniej wiecej tyle moglem znalezc w kursach php jakie przeszukalem. To przeciez dosc duzy kod (i dlatego mowilem o sesjach jezeli wszystko znajdowaloby sie nawet w kilku plikach). Czy jedyna metoda jest umieszcanie go w sposob

  1. <?php
  2.  
  3. $login=$_POST['login'];
  4. $haslo=$_POST['password'];
  5.  
  6. if(md5("$haslo")=='cffe219e4413b95dd8c35u0085930789' AND $login=='piotrek') {
  7.  echo "<html>"
  8.  echo "<body> PANEL ADMINISTRACYJNY..."
  9. // i tak dalej... 
  10.  
  11. exit();
  12. }
  13.  
  14. else {
  15. echo("access deniedn");
  16. }
  17. ?>


na pewno nie bo to by bylo idiotyczne.

Nie umiescilem tutaj rejestrowania sesji, no ale gdyby, to wygladaloby to tak ze powiedzmy :

jeżeli hasło ok to rejestruj sesje i przejdz to pliku3
a w pliku3 trzeba sprawdzic czy jest zarejestrowana sesja i dalej if / else php wiec umieszczanie kodu panelu w php identycznie by wygladalo :/

Na pewno jest jakies rozwiazanie inne, sciagalem darmowe skrypty do newsow i przegladalem jak tam jest rozwiazane to wszystko, ale niestety bylo to tak juz rozbudowane ze jako poczatkujaca osoba w php nie moglem sie polapac sad.gif

pozdrawiam i dziekuje za poswiecony czas i uwage ! smile.gif
Go to the top of the page
+Quote Post
macza
post 1.06.2006, 18:54:42
Post #2





Grupa: Zarejestrowani
Postów: 236
Pomógł: 4
Dołączył: 1.05.2006
Skąd: Lublin

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


ja uważam że sesje są najlepszym rozwiązaniem.
chcesz zeba napisac jak ich sie uzywa i jak sprawdzic czy jest zarejestrowana?


--------------------
_tworzenie stron www tanio Lublin - tworzenie stron www, tanio, szybko, solidnie, własny CMS.
Go to the top of the page
+Quote Post
-piotrekCK-
post 1.06.2006, 20:00:29
Post #3





Goście







nie, nie o to mi chodzi smile.gif nie zrozumiales, albo ja zle napisalem.
Jezeli uzyjemy sesji tak jak mowisz to trzeba sprawdzic czy jest ona zarejestrowana. wiec wychodzi nam np.

  1. <?php
  2.  
  3. if($_SESSION['zalogowany']) {
  4. echo "zalogowany";
  5.  }
  6.  
  7. else {
  8.  echo "nic z tego...";
  9. }
  10.  
  11. ?>


i widzisz - to wyswietla tylko "zalogowany". a jezeli chcielibysmy tam dac kod panelu administratora na 100 linijek w HTML to przeciez nie bedziemy ich umieszczac w echo "". (chyba).
no bo jezeli uzywamy sesji to wiadomo ze uzywamy php i struktury if/else. a jezeli tak to nie mozemy dopisac tam "tak po prostu" kodu html. ale echo"". wiec przy wiekszych objetosciowo kodach panelu admina wychodzi nam dziwolag (o ile w ogole to sie bedzie dalo napisac smile.gif).
i czy nie ma innej metody jak to if (...) else
Chyba teraz bedzie wiadomo o co mi chodzi smile.gif
Go to the top of the page
+Quote Post
Jarod
post 1.06.2006, 20:24:49
Post #4





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

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


@piotrekCK: w czym proble? zamiast echo dajesz include 'plik_z_panelem_administratora.php';


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
Go to the top of the page
+Quote Post
-Gość-
post 1.06.2006, 20:44:32
Post #5





Goście







no widzisz- jest problem smile.gif

bo kiedy uzywamy include("plik_z_panelem.php");
to ktos moze wejsc sobie po prostu serwer.pl/panel/plik_z_panelem.php i nie ma sensu zeby podawal haslo, bo panel dostanie jak na raczce, Prawda taka ze musi wyczaic nazwe pliku, ale przeciez nie jest to niewykonalne.

no chyba ze w plik_z_panelem.php dasz znowu sprawdzanie sesji - ale wtedy bedziemy znow w punkcie wyjscia smile.gif
Go to the top of the page
+Quote Post
Jarod
post 1.06.2006, 21:09:38
Post #6





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

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


Ja rozwiązałem to tak, że napisałem funkcje weryfikuj. Jest ona dołączana, np w panelu na początku skryptu i wygląda mniej więcej tak:
  1. <?php
  2.  
  3. //JEŚLI NIE ISTNIEJE SESJA UŻYTKOWNIKA TO POWRÓT NA STRONĘ LOGOWANIA
  4. if ( (!isset($_SESSION['LOGIN'])) && (!isset($_SESSION['HASLO'])) )
  5. {
  6. ?>
  7. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  8. <html xmlns="http://www.w3.org/1999/xhtml" lang="pl" xml:lang="pl">
  9.  
  10. <head> 
  11. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
  12. <meta http-equiv="Content-language" content="pl" />
  13. <meta name="Description" content="..." />
  14. <meta name="Author" content="J4r0d" />
  15. <meta name="Robots" content="all" />
  16. <meta name="Pragma" content="no-cache" />
  17. <meta name="Cache-Control" content="no-store, no-cache, must-revalidate" />
  18.  
  19. <title>DOSTĘP WZBRONIONY</title>
  20.  
  21. <!-- dołączenie styli głównych -->
  22. <link rel="stylesheet" href="../css/autoryzacja.css" type="text/css" />
  23. </head>
  24.  
  25. <body>
  26.  
  27. <div id="log" style="padding: 10px; background-color: #FFFFFF; height: 85px;">
  28. <img style="float: left; margin: 0 0 0 30px;" src="../img/stop.gif" width="83px" height="83px" alt="Stop" name="Stop" border="0" />
  29. <div class="ostrzezenie" style="margin: 25px 0 0 25px; padding: 10px; text-align: center; font-size: 11px; font-weight: bold; float: left;" >
  30. Nie masz uprawnień !
  31. </div>
  32. </div>
  33.  
  34. </body>
  35.  
  36. </html>
  37. <?php
  38. echo "<META HTTP-EQUIV='Refresh' CONTENT='4; URL=index.php'>";
  39. exit();
  40. }
  41.  
  42. ?>


To spowoduje , że trzeba być zalogowanym, żeby załadować bezpośrednio napel.php. A dodatkowo sprawdzasz czy zalogowany użytkownik ma prawa administratora.

pozdrawiam


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
Go to the top of the page
+Quote Post
-piotrekCK-
post 1.06.2006, 22:42:52
Post #7





Goście







aaa widzisz smile.gif

bo wszystko obracalo sie wokol tego, ze nie wiedzialem jak przejsc z php do html a potem wrocic do niego winksmiley.jpg

ogolnie o to sie rozchodzilo:

  1. <?php
  2. if(costam) { 
  3. ?>
  4.  
  5. ---kod html---
  6.  
  7. <?php 
  8. }
  9. ?>


dziekuje bardzo smile.gif
Go to the top of the page
+Quote Post
-Gość-
post 1.06.2006, 23:02:59
Post #8





Goście







Ogolnie to nie problem zbyt duzy:

Masz plik go.php i panel.php
w go.php sprawdzasz :
  1. <?php
  2. $login=$_POST['login'];
  3. $haslo=$_POST['password'];
  4. if(md5("$haslo")=='cffe219e4413b95dd8c35u0085930789' AND $login=='piotrek') { 
  5.  $_SESSION['login']=$login; 
  6.  $_SESISON['haslo']=$haslo; 
  7.  include ("./panel.php"); 
  8. }
  9. else {
  10.  echo("access deniedn");
  11. }
  12. ?>


A zeby nikt nie powolany dostal sie do pliku panel.php wywolujac go z przegladarki mozesz zrobic tak :
  1. <?php
  2. if (!isset($_SESSION['login'] && !isset($_SESSION['haslo'])) {
  3.  header ('Location : ./go.php'); 
  4.  die(); 
  5. } 
  6. // juz nie musisz dawac else bo jak przejdzie powyzszego ifa to znaczy ze logowani
    e poprawne. Jezeli nie, to czesc ponizej juz nie zostanie wyswietlona, bo zostani
    esz znow przeniesiony na strone go.php
  7. echo "Witaj w Panelu Admina";
  8. ?>
Go to the top of the page
+Quote Post
-piotrekCK-
post 2.06.2006, 22:34:27
Post #9





Goście







hm nie jestem pewien czy ostatni zaprezentowany sposob jest prawidlowy.

Zobacz-on sprawda tylko czy są zarejestrowane te zmienne sesyjne (tak to nazwac?).

wlasciwie to czy NIE są

bo jezeli nie sa - powrot na strone glowna.
a jezeli sa wyswietla sie panel.

tylko teraz, czy to ze jakies zmienne sa zarejestrowane swiadczy o tym, ze podano dobre haslo smile.gif no niekoniecznie. zakladajac nawet ze plik z panelem logowania zaklada sesje tylko wtedy kiedy podany login i haslo sa ok, to przeciez do pliku z panelem mozna dojsc z jakiegokolwiek innego pliku na tym samym serwerze, jezeli tylko stworzymy sobie sesje winksmiley.jpg (a moze nawet po prostu przez phpessid=? - tego nie jestem pewien winksmiley.jpg) jedyne zastrzezenie to ze trzeba wiedziec ze te 'zmienne sesyjne' nazywaja sie login i haslo ;>

trzeba by jeszcze ich wartosc chyba sprawdzac ?
Go to the top of the page
+Quote Post
raf_gc
post 3.06.2006, 06:08:18
Post #10





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 12.05.2006

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


wystarczy w pliku panel.php sprawdzić identyfikator sesji, który trzeba podac w pasku adresu np:
go.php?sid="identyfikator sesji"; i problem nieautoryzowanym dostępem z głowy
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 15.06.2024 - 21:07