Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Dostęp!
Forum PHP.pl > Forum > Przedszkole
Kenexos
Witam
Jak najprościej można zrobić PA do logowanie ?biggrin.gif
Mam takie coś:
  1. <?
  2.  
  3. if($_SESSION['access'] != 'admin'){
  4. @header ("Location: index.php");
  5. }
  6.  
  7. echo 'wp.pl';
  8.  
  9. ?>

Chciałbym żeby wp.pl widział tylko użytkownik z access admin.
I odpowiednie pliki np:
dodajadmin.php mógł w niego wejść admin jakoś tak by normalny root i nie zalogowany, zawartości pliku nie widział.

Dzięki pozdrawiam!
nexis
  1. <?php
  2. if (!isset($_SESSION['admin']) || $_SESSION['admin'] != true) {
  3.  header('location:logowanie.php');
  4.  exit(); // koniecznie !
  5. }
  6. ?>


BTW: Problem nie ma najmniejszego związku z MySQL, więc polecam edycję tematu.

// Gość nie może edytować swoich postów winksmiley.jpg.
// ~webdicepl
Kenexos
Wiem pomyliłem się;/ Więc moderator musi zmienić temat.
A co do twojego skryptu to chyba nie tak, bo ja mam
  1. <?php
  2. '.$_SESSION['access'].'
  3. ?>

I w access z bazy dahych przechodzi root i admin.
A to co mi dałeś:
  1. <?php
  2. ($_SESSION['admin']) || $_SESSION['admin']
  3. ?>

To chyba u mnie nie zadziała;/

@topic
Dalej szukam pomocy.
Kicok
No to jeżeli $_SESSION['access'] nie istnieje, lub jest różne od 'admin', to przenieś go do logowanie.php i zakończ wykonywanie skryptu.
Kenexos
No tak ale jak bo nie kumam.
Chce tylko by w jakimś tam pliku był dostęp tylko dla access admin.!
Kicok
Cytat
No tak ale jak bo nie kumam.


Masz napisać jedną jedyną instrukcję warunkową, która sprawdzi czy:
- $_SESSION['access'] istnieje (isset" title="Zobacz w manualu PHP" target="_manual). Jeśli nie istnieje, to użytkownik się nawet nie zalogował
- $_SESSION['access'] ma wartość 'admin'.
Jeżeli którykolwiek z tych 2 warunków nie będzie spełniony, to masz gnoja przekierować na logowanie.php i zakończyć wykonywanie skryptu.


session_start" title="Zobacz w manualu PHP" target="_manual, isset" title="Zobacz w manualu PHP" target="_manual, header" title="Zobacz w manualu PHP" target="_manual, exit" title="Zobacz w manualu PHP" target="_manual. Czego tu nie rozumieć?
Kenexos
  1. <?
  2. $_SESSION['username'] = "admin";
  3. questionmark.gif
  4. header ("Location: login.php");
  5. exit(); 
  6. ?>

Coś takiego ale z isset nie kumam...tongue.gif?
simonX
isset jest to funkcja ktora sprawdza czy dana zmienna zostala utworzona

Przyklad:

  1. <?php
  2.  
  3. if(isset($_SESSION['username'])){
  4.  
  5. echo "Witaj użytkowniku";
  6. }
  7. else
  8. {
  9. echo "przykro mi ale musisz sie najpierw zarejestrować";
  10. }
  11. ?>

Tutaj znajdziesz pare rzeczy na temat sesjii :Sesje
Kenexos
No już nie wiem coś takiego?
  1. <?
  2. if(isset($_POST['pass']))
  3. {
  4. if($_POST['pass']=='wwwww')
  5. {
  6. $_SESSION['admin']='ok';
  7. }
  8. }
  9. ?>

sprawdzamy, czy zmienna POST o nazwie pass w ogóle istnieje, a jak istnieje, to czy zawiera poprawne hasło. W moim przypadku hasło to: ‘wwwww’. Można je oczywiście zmienić… Jeżeli hasło jest poprawne, to zmiennej sesyjnej admin przypisujemy wartość ‘ok’, czyli znaczy to, że administrator jest zalogowany

Oczywiście to przykład z jakiejś strony a chciałbym to zastosować w swoim problemie ale nie wiem jak!..
Potrzebuje tylko czegoś takiego by na admin.php mogła wejść osoba zalogowana i z session acces (admin) a tak wszyscy mają root.
simonX
To zróbmy tak chyba wiem o co Ci chodzi(ale za to musi być "+" tongue.gif)

tworzymy plik o nazwie config.php gdzie trzymamy haslo i login do admina
  1. <?php
  2. $login="Admin";
  3. $passwd="haslo";
  4. ?>


teraz plik logowanie.html gdzie bedziemy podawac nasz login i haslo zeby sie zalogowac
  1. <form action="check.php" method="post">
  2. Login:
  3. <input type="text" name="login">
  4. Haslo:
  5. <input type="password" name="pass">
  6. <input type="submit" name="send">
  7. </form>

a teraz pszemy skrypt ktory bedzie sprawdzal czy passy do admina pasuja z pliku config.php
  1. <?php
  2.  
  3. include('config.php');  //tutaj dolaczamy plik config.php
  4. if($_POST['send']){
  5. $wys_login =htmlspecialchars ($_POST['login']);//pobieramy login i haslo z logowanie.html
  6. $wys_pass =htmlspecialchars ($_POST['pass']);
  7. if($wys_login==$login && $wys_pass==$password)/* jezeli haslo sie zgadza to twozy zmienna sesyjna o nazwie admin*/
  8. {
  9. $_SESSION['admin']=$login;
  10. header('Location:index.php');
  11. }else{echo "zmienna nie zostala utowrzona";} 
  12. }
  13. else{echo "Przykro mi, ale podales błędne dane".header('Location:index.htm');}
  14. ?>

Ufff....Ciezko bylo o cus takiego Ci chodzilo??
Kenexos
Ehh ;/ Dzięki za skrypt komuś się przyda ale może ja wytłumaczę jeszcze raz.
Skrypt odpowiedzialny za zapisanie sesji: (chyba tongue.gif)
  1. <?php
  2. $query = "SELECT username, access FROM user WHERE username='$l' AND haslo=password('$h')";
  3. $result = mysql_query($query);
  4. $row = mysql_fetch_array ($result, MYSQL_ASSOC); 
  5.  if($row){
  6. $_SESSION['username'] = $row['username'];
  7. $_SESSION['access'] = $row['access'];
  8. ?>

I takie coś:

  1. <?if($_SESSION['access']==true) {?><li><a href="pages/admin.php">ADMIN Panel</a></li><?}?>

I chce zrobić by ten link pojawił się tylko dla access : admin !

Moja baza:
Cytat
user_id username access email haslo data_rejstacji
5 dawid root email4@o2.pl haslo 2008-07-30 21:33:10
2 karol admin email@o2.pl haslo 2008-07-30 21:33:10

Chyba już wiecie o co chodzi tak..?

Dzięki i pozdrawiam!
Pride
Widać, że szukasz kogoś, kto napisze ci 100% gotowca.
SimonX napisał ci jak powinien taki skrypt wyglądać na podstawie pliku. To powiedz mi, czy to jest taki problem aby teraz trochę pomyśleć i zamiast pliku wyciągnąć login/hasło z bazy?
Powiedziałbym Ci jak to zrobić, ale po co? Jeżeli sam nie chcesz do tego dojść to wybacz...
kayy
ja mam tak:

Przy każdym pomyślnym zalogowaniu generuje liczbe od 1 do do ileśtam, potem wsadzam do sesji.

Przy każdym pomyślnym zalogowaniu wsadzam jego ip zew do sesji.

Przy każdym pomyślnym zalogowaniu wsadzam jego nick do sesji.

a potem tylko sprawdzam:

  1. <?php
  2. if (isset($_SESSION['liczba']) && $_SESSION['liczba'] >=&& $_SESSION['ip'] == $_SERVER["REMOTE_ADDR"] && $_SESSION['username'] == "NickAdmina"
  3. ?>
i wstawiam dane dla admina.. else die ("Brak dostępu"); i koniec ;D



 
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.