Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Skrypt logowania, Wszelkie sugestie na temat...
The Night Shadow
post
Post #1





Grupa: Zarejestrowani
Postów: 495
Pomógł: 2
Dołączył: 5.02.2006
Skąd: Wrocław

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


Stworzyłem skrypt logowania. Ciekaw jestem jak go widzicie i co ewentualnie moznaby poprawić. Znajduje się w nim dużo komentarzy, które powinny pomóc. Tak więc pytanie. Co jest źle, tudziez mogłoby być lepiej, jak zmienić i przede wszystkim po co? :- )

Pozdrawiam... :- )

  1. <?php
  2.     session_start();
  3.     $mysql_host = '***';
  4.     $mysql_login = '***';
  5.     $mysql_haslo = '***';
  6.     $mysql_baza = '***';
  7.  
  8.     $nlogin = strip_tags(htmlspecialchars( mysql_escape_string(trim($_POST["login"])), ENT_QUOTES));
  9.     $nhaslo = strip_tags(htmlspecialchars( mysql_escape_string(trim($_POST["haslo"])), ENT_QUOTES));
  10.     $zakonczenie = strip_tags(htmlspecialchars( mysql_escape_stringtrim($_GET["login"])), ENT_QUOTES));
  11.     
  12.     if ($zakonczenie=='koniec') 
  13.     {
  14.  
  15.         // USUWANIE SESJI JEŚLI W ADRESIE STRONY POJAWIŁA SI ZMIENNA "LOGIN" RÓWNA "KONIEC"
  16.  
  17.         session_unset(); 
  18.         session_destroy();
  19.     }
  20.     if ($_SESSION['zalogowany']<>'tak')
  21.     {
  22.  
  23.         // JEŻELI UŻYTKOWNIK JEST ZALOGOWANY
  24.  
  25.         if ($nlogin<>'') 
  26.         {
  27.  
  28.             // JEŻELI PODANO LOGIN Z FORMULARZA KODOWANIE HASŁA
  29.  
  30.             $nhaslo = md5($nhaslo);
  31.             if ($baza = mysql_connect($mysql_host, $mysql_login, $mysql_haslo)) 
  32.             {
  33.                 if (mysql_select_db($mysql_baza)) 
  34.                 {
  35.  
  36.                     // ŁĄCZENIE Z BAZĄ DANYCH MYSQL I SPRAWDZANIE KOLEJNYCH WŁAŚCIWOŚCI PODANYCH W FOR
    MULARZU DANYCH
  37.  
  38.                     $sprawdzanie_loginu = mysql_query("SELECT login FROM logowanie WHERE login='$nlogin'");
  39.                     if (mysql_num_rows($sprawdzanie_loginu)==0)
  40.                     {
  41.  
  42.                         // GENEROWANIE BŁDU JEŚLI LOGIN NIE ISTNIEJE W BAZIE DANYCH
  43.  
  44.                         $blad++;
  45.                         $wykrytoblad = "Użytkownik <b>$nlogin</b> nie istnieje...";
  46.                     }
  47.                     else 
  48.                         if (mysql_num_rows($sprawdzanie_loginu)==1)
  49.                         {
  50.                         
  51.                             // JEŻELI W BAZIE ISTNIEJE JEDEN PODANY PRZEZ UŻYTKOWNIKA W FORMULARZU LOGIN SPRAW
    DZANIE POPRAWNOŚCI WPISANEGO HASŁA
  52.                         
  53.                             $sprawdzanie_hasla = mysql_query("SELECT login, haslo FROM logowanie WHERE (login='$nlogin' and haslo='$nhaslo')");
  54.                             if (mysql_num_rows($sprawdzanie_hasla)==0) 
  55.                             {
  56.                             
  57.                                 // GENEROWANIE BŁDU JEŚLI PODANE HASŁO NIE JEST POPRAWNE
  58.                             
  59.                                 $blad++;
  60.                                 $wykrytoblad = 'Podałeś błędne hasło...';
  61.                             }
  62.                             else 
  63.                             {
  64.                             
  65.                                 // JEŚLI HASŁO PODANE ZOSTAŁO W FORMULARZU PRAWIDŁOWO 
  66.                             
  67.                                 $sprawdzanie_statusu = mysql_query("SELECT * FROM logowanie WHERE (login='$nlogin' and status=5)");
  68.                                 if (mysql_num_rows($sprawdzanie_statusu)==0) 
  69.                                 {
  70.                                     $blad++;
  71.                                     $wykrytoblad = 'Twoje konto nie zostało przez Ciebie aktywowane...';
  72.                                 }
  73.                             }
  74.                         }
  75.                         else
  76.                         {
  77.                         
  78.                             // GENEROWANIE BŁDU JEŚLI W BAZIE ZNALEZIONO DWA IDENTYCZNE LOGINY
  79.                         
  80.                             $blad++;
  81.                             $wykrytoblad = 'BŁĄD KRYTYCZNY - w bazie danych znajdują się co najmniej dwa identyczne loginy! Skontaktuj się z
     administratorem i powiadom o zaistniałym fakcie...'
    ;
  82.                         }
  83.                     if ($blad==0)
  84.                     {
  85.                     
  86.                         // JEŻELI NIE WYKRYTO ŻADNYCH BŁDÓW TWORZENIE SESJI. WSZYSTKIE DANE Z TABELI LOGOW
    ANIE SĄ UŻYTE, PONIEWAŻ BDĄ POTRZEBNE W SKRYPTACH NA INNYCH STRONACH
  87.                     
  88.                         $dane=mysql_fetch_array($sprawdzanie_statusu);
  89.                         $_SESSION["zalogowany"] = 'tak';
  90.                         $_SESSION["id"] = $dane["id"];
  91.                         $_SESSION["login"] = $dane["login"];
  92.                         $_SESSION["imie"] = $dane["imie"];
  93.                         $_SESSION["email"] = $dane["email"];
  94.                         $_SESSION["gadu"] = $dane["gadu"];
  95.                         $_SESSION["tlen"] = $dane["tlen"];
  96.                         $_SESSION["skype"] = $dane["skype"];
  97.                         $_SESSION["www"] = $dane["www"];
  98.                         $_SESSION["pytanie"] = $dane["pytanie"];
  99.                         $_SESSION["odpowiedz"] = $dane["odpowiedz"];
  100.                         $_SESSION["dataurodzenia_dzien"] = $dane["dataurodzenia_dzien"];
  101.                         $_SESSION["dataurodzenia_miesiac"] = $dane["dataurodzenia_miesiac"];
  102.                         $_SESSION["dataurodzenia_rok"] = $dane["dataurodzenia_rok"];
  103.                         $_SESSION["ranga"] = $dane["ranga"];
  104.                         $adresip = $_SERVER['REMOTE_ADDR'];
  105.                         $hostuzytkownika = gethostbyaddr($_SERVER['REMOTE_ADDR']);
  106.                         $ndata = time();
  107.                         
  108.                         // DODAWANIE DATY LOGOWANIA DO TABELI DATYLOGOWAŃ
  109.                         
  110.                         $dodanie_daty_logowania = mysql_query("INSERT INTO datylogowan SET datylogowan_id_uzytkownika='".$_SESSION["id"]."', datylogowan_data='$ndata'");
  111.                         
  112.                         // AKTUALIZACJA TABELI LOGOWANIE. NADPISYWANIE OSTATNIEGO IP, HOST I DATY LOGOWANI
    A
  113.                         
  114.                         $aktualizacja_danych = mysql_query("UPDATE logowanie SET ostatnie_logowanie='$ndata', ostatnie_ip='$adresip', ostatni_host='$hostuzytkownika' WHERE id='".$_SESSION["id"]."'");
  115.                         
  116.                         $sprwadzanie_listy_ip = mysql_query("SELECT * FROM adresyip WHERE (adresyip_ip='$adresip' and adresyip_id_uzytkownika='".$_SESSION["id"]."')");
  117.                         if (mysql_num_rows($sprwadzanie_listy_ip)=='0') 
  118.                         {
  119.                         
  120.                             // JEŻELI AKTALNEGO ADRESU IP NIE MA W TABELI ADRESÓW IP DOPISYWANIE GO DO LISTY
  121.                         
  122.                             $dodawanie_adresu_ip = mysql_query("INSERT INTO adresyip SET adresyip_id_uzytkownika='".$_SESSION["id"]."', adresyip_ip='$adresip', adresyip_host='$hostuzytkownika'");
  123.                         }
  124.                     }
  125.                 } 
  126.                 else 
  127.                 { 
  128. ?>
  129.                     <span>
  130.                         <center>
  131.                             Nie można połączyć się z bazą - spróbuj ponownie za chwilę...
  132.                         </center>
  133.                     </span>
  134. <?php 
  135.                 }
  136.             }
  137.             else
  138.             { 
  139. ?>
  140.                 <span>
  141.                     <center>
  142.                          Nie można połączyć się z serwerem MySQL - spróbuj ponownie za chwilę...
  143.                     </center>
  144.                 </span>
  145. <?php 
  146.             }
  147.         }
  148.     }
  149. ?>


Z góry wielkie dzięki :- )

Ten post edytował The Night Shadow 8.03.2006, 16:11:08
Go to the top of the page
+Quote Post

Posty w temacie
- The Night Shadow   Skrypt logowania   8.03.2006, 15:49:09
- - nospor   [PHP] pobierz, plaintext <?php....stripslashes...   8.03.2006, 15:53:13
- - The Night Shadow   czyli mysql_escape_string() podstawić zamiast stri...   8.03.2006, 16:02:24
- - nospor   No chyba wyraznie napisalem Poczytaj se: http://f...   8.03.2006, 16:04:52
- - The Night Shadow   No tak... :- ) A czy coś jeszcze? Generalnie zasta...   8.03.2006, 16:09:11
- - xarr   ...lub mysql_real_escape_string A tak z ciekawosc...   8.03.2006, 16:13:28
- - The Night Shadow   Tak, to tylko logowanie, ale zaraz na następnej st...   8.03.2006, 16:15:30
- - xarr   no dobrze, ale to tylko jeden element, a co z resz...   8.03.2006, 16:23:35
- - The Night Shadow   Ponieważ w formularzu stworzyłem pola dzień miesią...   8.03.2006, 16:27:29
- - xarr   Jezeli przy kazdym logowaniu bedziesz mnie meczyl ...   8.03.2006, 16:38:57
- - The Night Shadow   Ale widzę, że nie przeczytałeś uważnie skryptu. Z ...   8.03.2006, 16:45:02
- - hwao   Cytat(The Night Shadow @ 2006-03-08 16:45:02)...   8.03.2006, 16:55:24
- - The Night Shadow   I tak też się dzieje... :- ) Do komentarzy i czego...   8.03.2006, 17:03:13
- - acztery   a nie lepiej w sesji trzymac tylko id_usera i opcj...   8.03.2006, 17:22:39
- - xarr   No, mi chodzilo tylko o celowosc trzymania tylu da...   8.03.2006, 17:44:19
- - The Night Shadow   No więc odpowiadam... stwierdziłem, że to MOŻE (ch...   8.03.2006, 17:48:02
- - SHiP   Cytat(The Night Shadow @ 2006-03-08 17:27:29)...   8.03.2006, 19:58:34


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

 



RSS Aktualny czas: 23.08.2025 - 18:36