Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Jak zrobic sprawdzanie czy dany argument jest wlasciwy + else ?
Forum PHP.pl > Forum > Przedszkole
darex11
Witam. Pojawil mi sie pewien problem na stronie www. Zrobilem dwa logowania dla uzytkownikow. Pierwsze dla zwyklych uzytownikow (numer + haslo). A drugie dla wlasnych uzytkownikow (numer + haslo + sprawdza czy jest wlasnym uzytkownikiem w bazie danych "wlasny >=1). Wszystko dziala ok. Nastepnie po zalogowaniu zrobilem opcje. Dla zwyklych userow oraz dla wlasnych. I teraz gdy ktos jest zalogowany na zwyklego usera i zna adres do strony dla "wlasnego" usera, moze wejsc. Nie ma tam sprawdzania i nie potrafie zrobic... System logowania byl duzo prostszy, poprostu przypisalem dodatkowo pewien argument, a w tym pliku nie mam systemu logowania, wiec nie moge takowego przypisac. Podaje tutaj moj plik z zawartoscia i jezeli mozecie naprowadzcie mnie jakos lub pokazcie jak to zrobic, z reszta plikow juz sobie poradze.
  1. <?
  2. echo "<html><head><link rel="stylesheet" type="text/css" href="style.css"/><title>Big Server</title></head>n";
  3. include('database.php');
  4. ?>
  5. <?php
  6. $baza = file('txt/bany.txt');
  7. $ip = count($baza);
  8. for($i = 0; $i < $ip; $i++)
  9. {
  10. $baza[$i] = trim($baza[$i]);
  11. if($baza[$i] == $_SERVER['REMOTE_ADDR']) {
  12. die('<h2>Zostałes zbanowany!</h2><a href="index.php">Powrot</a>');
  13. $error++;
  14.  
  15. }
  16. }
  17. ?>
  18. <center>
  19. Tutaj bedzie tresc na stronie...
  20. </center>


Chodzi mi o to by z bazy danych pobieral wartosc z tabeli "user", pole "wlasny" i gdy jest wpis ">= 1" wtedy dopuszcza uzytkownika, inaczej odrzuca "uzyszkodnika"
Z gory dziekuje i czekam na pomoc.
Pozdrawiam!
Cienki1980
W tym pliku masz odczytywanie z pliku a nie z bazy danych.
Coś tutaj jest nie tak.

Jeżeli chcesz zrobić sprawdzanie, czy użytkownik ma prawo do danej strony, podczas logowanie zapisz dane w sesji ( dane czyli wartość pola wlasny ). Przy wejściu na stronę dla użytkownika własnego sprawdzasz jaką wartość ma ta zmienna. Jeżeli jest OK to pokazujesz stronę, jeżeli nie to pokazujesz jakiś komunikat.
darex11
Tutaj w ogole nie ma tego skryptu, to jest skrypt do banicji, narazie wpadlem na taki pomysl:

  1. <?php
  2. include('database.php');
  3. $account = $_REQUEST['account'];
  4. $password = $_REQUEST['password'];
  5. $wlasny = $_REQUEST['wlasny'];
  6. $query = mysql_query("SELECT * FROM accounts WHERE (`account` = '".$account."' AND `wlasny` >= '1')");
  7. if(mysql_query($query) == 1)
  8.  {
  9.  $sql = mysql_fetch_array($query);
  10. $_SESSION["account"] = $account;
  11. $_SESSION["password"] = $password;
  12. $_SESSION["wlasny"] = $wlasny;
  13. header ("Location: link1.php");
  14.  }
  15. elseif(mysql_query($query) == 0)
  16. {
  17. die('<h2>A buuuu!</h2>');
  18. $error++;
  19. }  
  20. ?>


Tylko ze musze zrobic by byl sprawdzany "accounts" i "wlasny" za jednym razem, bo tak bedzie szukal po calej bazie danych, a mi chodzi tylko o tych ktorzy maja "wlasny" ustawiony na 1 lub wiecej

EDIT:
Przeedytowalem troszeczke skrypt, moze tak ?
Cienki1980
Napisze raz jeszcze.
Musisz sprawdzać podczas wejścia na stronę "wlasnego" użytkownika czy użytkownik ma do tego prawo. Żeby to zrobić musisz mieć jakieś dane tego użytkownika. Możesz przy każdorazowym wejściu na taką stronę prosić o hasło i login i sprawdzać czy ma dostęp .. ale to trochę mija się z celem.

Najlepiej zrobić to tak:
Podczas logowanie ( które masz zrobione ) ustawić zmienną w sesji np $_SESSION['wlasny'] wartością pobraną z bazy danych podczas logowanie użytkownika. Przy wchodzeniu na stronę "wlasnego" użytkownika sprawdzasz jaką wartość ma ta zmienną $_SESSION['wlasny']. Jeżeli jest >=1 pokazujesz stronę, jeżeli nie pokazujesz "BRAK DOSTĘPU".

Przeczytaj o SESJACH i zobaczysz, że wszystko będzie łatwiejsze.
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.