Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php,mysql] dodanie banowania .
Forum PHP.pl > Forum > PHP
wosix
Dodałem do tabeli " uzydkownicy " pole " status
a w nim zawartość:
OK = konto nie zbanowane
BLOCK = Konto zbanowane
jest też pole adres_ip


logowanie :
Kod
<form method="post" action="<? echo $PHP_SELF;?>" METHOD=POST enctype="multipart/form-data">
<center>
        <b>Nazwa logowania :<b><br />
    <input type="text" name="login" style="font-size: 10pt; font-family: Tahoma; font-weight: bold" /><br />
        <b>Hasło:</b><br />
    <input type="password" name="haslo" style="font-size: 10pt; font-family: Tahoma; font-weight: bold" /><br />
        <input type="submit" value="Zaloguj Mnie!" style="font-size: 10pt; font-family: Tahoma; font-weight: bold" />
        <br /><br>

            <b><a href="rejestracja.php">Chcę Założyć Konto! </a><br>
            </b></center>
</form>
<?
// 1 linijka sprawdza czy jest login i haslo (jesli tego by nie bylo wyskakiwalo by nie ma takiego loginu)
if (isset($_POST['login']) && isset($_POST['haslo'])){
$login = trim($_POST['login']); // z loginu usuwamy spacje
$haslo = md5($_POST['haslo']); //haso kodujemy w MD5
$loguj = mysql_query ("select login,haslo from usery_dane where login='$login' and haslo='$haslo'");//pobranie z bazy loginu i hasa wpisanego w formularzu
if(mysql_num_rows($loguj)==0)// sprawdzenie czy dany uytkownik istnieje w bazie
{
echo "<script>alert('Login lub Hasło jest nie poprawne')</script>"; // jeeli nie istnieje taki uytkownik to wywietla bd
exit;
}
else
{
$_SESSION['zalogowany'] = $_POST['login']; // jeeli istnieje taki uytkownik w bazie
Header('location: index.php');//To juz jest w innym pliku
exit;
}}
?>


Jest też tabela " zbanowane_ip "
w którym jest pole " jakie_ip ".

I jak wdrożyć takie coś że po kliknięciu zaloguj , skrypt pierw sprawdzi czy konto jest "BLOCK czy OK" a potem pobierze IP z przeglądarki...i sprawdzi czy adres "IP" znajduje się na liście.(zbanowane_ip)
Jeśli jest OK i nie znajduje się to pozwala wejść.
jeśli jest OK , ale ip znajduje się na liście odrzuca i pisze że IP jest zbanowane.
Jeśli jest BLOCK , ale IP nie znajduje się na liśćie -> odrzuca i pisze że konto zablokowane
jeśli BLOCK i IP to ma bana.

Moge prosić o rady?. i jak do tego się zabrać?.
lord2105
pokaż zrzut całej tabeli usery_dane
wosix
Cytat(lord2105 @ 27.09.2010, 23:59:35 ) *
pokaż zrzut całej tabeli usery_dane



Kod
CREATE TABLE `usery_dane` (
  `id` int(15) NOT NULL auto_increment,
  `login` varchar(30) NOT NULL,
  `haslo` varchar(40) NOT NULL,
  `ustaw_wlasne` varchar(10) NOT NULL,
  `ip` varchar(15) NOT NULL, // te ip jest zapisywany przy rejestracji.
  `data_rej` int(15) NOT NULL,
  `data_log` int(15) NOT NULL,
  `email` varchar(100) NOT NULL,
  `skype` varchar(50) NOT NULL,
  `gadu` int(15) NOT NULL,
  `plec` varchar(5) NOT NULL,
  `miasto` varchar(20) NOT NULL,
  `wojew` varchar(5) NOT NULL,
  `kraj` varchar(50) NOT NULL,
  `data_ur` varchar(8) NOT NULL,
  `stronawww` varchar(100) NOT NULL,
  `frekwenc` int(15) NOT NULL,
  `avatar` varchar(30) NOT NULL,
  `opis` text NOT NULL,
  `zainteresow` varchar(255) NOT NULL,
  `ilosc_odwiedz` int(10) NOT NULL,
  `pole_doda1` varchar(50) NOT NULL,
  `pole_doda2` varchar(50) NOT NULL,
  `typ_konta` varchar(10) NOT NULL,   // to ten " status "...;)
  UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=551 DEFAULT CHARSET=latin1;




CREATE TABLE `zbanowane_ip` (
`jakie_ip` varchar(100) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

a tu są te IP dodane które są na czarnej liście winksmiley.jpg
lord2105
to teraz musisz rozróżnić bana na IP od bana na konto - bo podejrzewam, że podczas nakładania bana updatujesz typ_konta oraz wpisujesz IP takowego usera do tabeli zbanowane_ip

Teraz pytanie czy twoim założeniem jest to, że user dostaje bana na konto i gdy założy sobie drugie to też nie będzie mógł się logować? (bo jego ip nadal jest w zbanowane_ip)
wosix
Cytat(lord2105 @ 28.09.2010, 00:14:24 ) *
to teraz musisz rozróżnić bana na IP od bana na konto - bo podejrzewam, że podczas nakładania bana updatujesz typ_konta oraz wpisujesz IP takowego usera do tabeli zbanowane_ip

Teraz pytanie czy twoim założeniem jest to, że user dostaje bana na konto i gdy założy sobie drugie to też nie będzie mógł się logować? (bo jego ip nadal jest w zbanowane_ip)


Założenie jest takie :....

Jest status zmienia się z OK na BLOCKED kiedy zajdzie konkretnie za skórę i chcę go utemperować ;].
Jego ip sobie ręcznie kopiuje z "ip z " usery_dane" do "jakie_ip' w tabeli "zbanowane_ip" kiedy nagminnie łamie zasady i nie da się go ujażmić .

Oczywiście , może zrobić nowe konto ( strata 3ech - 20 minut ) w zależności jak długo leci mail ).... a przy próbie zalogowania się i tak pokaże środkowy palec, bo ban jest na IP smile.gif.
lord2105
  1. <?
  2. define("USER_IP", $_SERVER['REMOTE_ADDR']);
  3.  
  4. // 1 linijka sprawdza czy jest login i haslo (jesli tego by nie bylo wyskakiwalo by nie ma takiego loginu)
  5. if (isset($_POST['login']) && isset($_POST['haslo'])){
  6. if (mysql_num_rows(mysql_query("SELECT * FROM zbanowane_ip WHERE jakie_ip = '".USER_IP."'"))) { //check IP ban in DB
  7. echo "<script>alert('Masz bana na IP')</script>"; // if IP is banned
  8. }
  9. else {
  10. $login = trim($_POST['login']); // z loginu usuwamy spacje
  11. $haslo = md5($_POST['haslo']); //haso kodujemy w MD5
  12. $loguj = mysql_query ("select login,haslo from usery_dane where login='$login' and haslo='$haslo' && typ_konta = 'OK'");//pobranie z bazy loginu i hasa wpisanego w formularzu
  13. if(mysql_num_rows($loguj)==0)// sprawdzenie czy dany uytkownik istnieje w bazie
  14. {
  15. echo "<script>alert('Login lub Hasło jest nie poprawne')</script>"; // jeeli nie istnieje taki uytkownik to wywietla bd
  16. }
  17. else
  18. {
  19. $_SESSION['zalogowany'] = $_POST['login']; // jeeli istnieje taki uytkownik w bazie
  20. Header('location: index.php');//To juz jest w innym pliku
  21. }
  22. }
  23. }
  24. ?>


Pozdrawiam
wosix
Cytat(lord2105 @ 28.09.2010, 00:29:36 ) *
  1. <?
  2. define("USER_IP", $_SERVER['REMOTE_ADDR']);
  3.  
  4. // 1 linijka sprawdza czy jest login i haslo (jesli tego by nie bylo wyskakiwalo by nie ma takiego loginu)
  5. if (isset($_POST['login']) && isset($_POST['haslo'])){
  6. if (mysql_num_rows(mysql_query("SELECT * FROM zbanowane_ip WHERE jakie_ip = '".USER_IP."'"))) { //check IP ban in DB
  7. echo "<script>alert('Masz bana na IP')</script>"; // if IP is banned
  8. }
  9. else {
  10. $login = trim($_POST['login']); // z loginu usuwamy spacje
  11. $haslo = md5($_POST['haslo']); //haso kodujemy w MD5
  12. $loguj = mysql_query ("select login,haslo from usery_dane where login='$login' and haslo='$haslo' && typ_konta = 'OK'");//pobranie z bazy loginu i hasa wpisanego w formularzu
  13. if(mysql_num_rows($loguj)==0)// sprawdzenie czy dany uytkownik istnieje w bazie
  14. {
  15. echo "<script>alert('Login lub Hasło jest nie poprawne')</script>"; // jeeli nie istnieje taki uytkownik to wywietla bd
  16. }
  17. else
  18. {
  19. $_SESSION['zalogowany'] = $_POST['login']; // jeeli istnieje taki uytkownik w bazie
  20. Header('location: index.php');//To juz jest w innym pliku
  21. }
  22. }
  23. }
  24. ?>


Pozdrawiam


Dziękuję , kłaniam sie nisko ;]...
Tylko banowanie na IP nie działa , wpisałem swoje ip i mnie wpuściło biggrin.gif
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.