Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Auto Logowanie.
#1
Witam. Mam taki problem chciałbym dodać Auto Logowanie do skryptu tylko nie wiem jak czy ktoś może mi pomóc o to kod?


Kod PHP:
<?php 


$adres_ip_serwera_mysql_z_baza_danych 
'localhost';

//nazwa bazy danych zawieraj±cej dane uzytkownikow (loginy i hasla)
//na serwerze $adres_ip_serwera_z_baza_danych
$nazwa_bazy_danych_z_tabela_uzytkownikow 'baza';

//nazwa uzytkownika bazy danych $nazwa_bazy_danych_z_tabela_uzytkownikow
$login_bazy_danych_z_tabela_uzytkownikow 'uzytkownik';

//haslo uzytkownika bazy danych $nazwa_bazy_danych_z_tabela_uzytkownikow
$haslo_bazy_danych_z_tabela_uzytkownikow 'krasnoludek';

//Formularz logowania do serwisu
//Formularz bedzie pokazywany gdy strona wyswietlana pierwszy raz 
//lub gdy użytkownik podał błędne dane logowania
$login_frame '
<FORM method="POST" action="">
Login: <INPUT type="text" name="login" value="">
<br />Haslo: <INPUT type="text" name="haslo" value="">
<br /><INPUT type="submit" value="Zaloguj">
</FORM>
'
;

////////////////////////////////////////////////////////////
//Kod programu

//Ustanawiamy poł±czenie z serwerem mysql
if ( !mysql_connect($adres_ip_serwera_mysql_z_baza_danych,$login_bazy_danych_z_tabela_uzytkownikow,$haslo_bazy_danych_z_tabela_uzytkownikow) ) {
   echo 
'Nie moge polaczyc sie z baza danych';
     exit (
0);
}
//Wybieramy baze danych na serwerze mysql ktora zawiera tabele
//uzytkownicy gdzie sa login i hasla
if ( !mysql_select_db($nazwa_bazy_danych_z_tabela_uzytkownikow) ) {
   echo 
'Blad otwarcia bazy danych';
     exit (
0);
}

//Sprawdzamy czy była próba logowania - czy zmienna $_POST["login"] 
//ma warto¶ć
if ( isset($_POST["login"]) ){
//Je¶li była próba logowania - czyli zmienna $_POST["login"] ma jak±¶ 
//warto¶ć to sprawdzamy czy para login/haslo istnieje w bazie danych
//wywołuj±c fukcję SprawdzCzyPoprawneHaslo($login,$haslo);
   
$login $_POST["login"];
   
$haslo $_POST["haslo"];
   
$czy_poprawne_haslo SprawdzCzyPoprawneHaslo($login,$haslo);
     if (
$czy_poprawne_haslo) {
//Je¶li para login/haslo istnieje w bazie danych to użytkownik 
//został zalogowany i ma dostęp do autoryzowanych informacji 
//dostepnych tylko po zalogowaniu
        
echo "<INPUT type='submit' value='Wyloguj'>";
            echo 
"<br />Oto tajna informacja:";
            echo 
"<br />&nbsp;&nbsp;&nbsp;<strong>W Paryżu najlepsze kasztany s± na placu Pigalle</strong>";
     } else {
//Je¶li para login/haslo nie istnieje w bazie danych to informujemy o 
//błędnym logowaniu i ponownie wypisujemy formularz logowania
        
echo "<p>Logowanie nie udane! Wpisz poprawny login/haslo lub zaplac za tajna informacje.";
          echo 
$login_frame;
     }
        
} else {
//Je¶li nie było próby logowania - czyli zmienna $_POST["login"] nie ma 
//warto¶ci to znaczy, że nasza strona jest wy¶wietlana po raz pierwszy.
//Zatem wy¶wietlamy informacje o konieczno¶ci zalogowania się i 
//formularz logowania
        
echo $login_frame;
}

//Zamykamy poł±czenie z baz± danych
if ( !mysql_close() ) {
   echo 
'Nie moge zakonczyc polaczenia z baza danych';
   exit (
0);
}

////////////////////////////////////////////////////////////
//Dodatkowa funkcja

/////// Funkcja SprawdzCzyPoprawneHaslo($login,$haslo) ///////
//Funkcja sprawdza czy istnieje użytkownik o danym loginu i hasle
//Funkcja zwraca true jesli istnieje użytkownik o danym loginu i hasle
//Funkcja zwraca false jesli NIE istnieje użytkownik o danym loginu i 
//hasle
//Funkcja zaklada, ze 
//   1. Jestesmy zalogowani do bazy danych mysql
//   2. Mamy wybrana baze danych
//   3. logine i hasla przechowywane sa w tabeli o nazwie "uzytkownicy"
//      w nastepujacych kolumnach tabeli:
//         a. logine uzytkownikow przechowywane sa w kolumnie 
//            o nazwie "login"
//         b. Hasla uzytkownikow przechowywane sa w kolumnie 
//            o nazwie "haslo"
//////////////////////////////////////////////////////////////////////
function SprawdzCzyPoprawneHaslo($login,$haslo){
//Definiujemy zapytanie do bazy danych
//Zapytanie to zada wszystkich uzytkownikow takich, ze:
//pole login tabeli uzytkownicy ma wartosc $login
//pole haslo tabeli uzytkownicy ma wartosc $haslo
 
$zapytanie "SELECT * FROM `uzytkownicy` WHERE `login`='$login' && `haslo`='$haslo'";
//Zadamy wykonania zapytania na bazie danych 
 
$wynik mysql_query($zapytanie); 
//Jesli wystapil blad w wykonaniu zapytania na bazie mysql to zwracamy
//wartosc false do fukcji nadrzednej 
 
if (!$wynik)
   return 
false;
//Jesli zapytanie sie udalo to sprawdzamy ile wierszy zwrocilo
 
$liczba_wierszy mysql_num_rows($wynik);
//Jesli liczba wierszy ktore zwrocilo zapytanie jest rowna 1 to znaczy, 
//ze istnieje jeden uzytkownik ktory ma dany login i haslo
//Zatem zwracamy true
 
if ($liczba_wierszy == 1)
   return 
true;
//W przeciwym przypadku uzytkownik nie istnieje i zwracamy false
 
return false;
}

?>

a to skrócona wersjia bez komentarzy:
Kod PHP:
<?php 

$adres_ip_serwera_mysql_z_baza_danych 
'localhost';
$nazwa_bazy_danych_z_tabela_uzytkownikow 'baza';
$login_bazy_danych_z_tabela_uzytkownikow 'uzytkownik';
$haslo_bazy_danych_z_tabela_uzytkownikow 'krasnoludek';

$login_frame '
<FORM method="POST" action="">
Login: <INPUT type="text" name="login" value="">
<br />Haslo: <INPUT type="text" name="haslo" value="">
<br /><INPUT type="submit" value="Zaloguj">
</FORM>
'
;

if ( !
mysql_connect($adres_ip_serwera_mysql_z_baza_danych,$login_bazy_danych_z_tabela_uzytkownikow,$haslo_bazy_danych_z_tabela_uzytkownikow) ) {
   echo 
'Nie moge polaczyc sie z baza danych';
     exit (
0);
}

if ( !
mysql_select_db($nazwa_bazy_danych_z_tabela_uzytkownikow) ) {
   echo 
'Blad otwarcia bazy danych';
     exit (
0);
}

if ( isset(
$_POST["login"]) ){
   
$login $_POST["login"];
   
$haslo $_POST["haslo"];
   
$czy_poprawne_haslo SprawdzCzyPoprawneHaslo($login,$haslo);
     if (
$czy_poprawne_haslo) {
        echo 
"<INPUT type='submit' value='Wyloguj'>";
            echo 
"<br />Oto tajna informacja:";
            echo 
"<br />&nbsp;&nbsp;&nbsp;<strong>W Paryżu najlepsze kasztany s± na placu Pigalle</strong>";
     } else {
        echo 
"<p>Logowanie nie udane! Wpisz poprawny login/haslo lub zaplac za tajna informacje.";
          echo 
$login_frame;
     }
        
} else {
        echo 
$login_frame;
}

if ( !
mysql_close() ) {
   echo 
'Nie moge zakonczyc polaczenia z baza danych';
   exit (
0);
}

function 
SprawdzCzyPoprawneHaslo($login,$haslo){
 
$zapytanie "SELECT * FROM `uzytkownicy` WHERE `login`='$login' && `haslo`='$haslo'";
 
$wynik mysql_query($zapytanie); 
 if (!
$wynik)
   return 
false;
 
$liczba_wierszy mysql_num_rows($wynik);
 if (
$liczba_wierszy == 1)
   return 
true;
 return 
false;
}

?>

Proszę o szybką pomoc.[/code]
Odpowiedz
#2
podczas logowania sprawdzasz czy jest ciacho. jak nie ma to je tworzysz (oczywiscie po dobrym logowaniu). Jak jest - wtedy automatycznie logujesz.
Odpowiedz
#3
a możesz mi wytłumaczyć jak zrobić te ciacho?
Odpowiedz
#4
Cookiesa robisz funkcją setcookie() weź np login i haslo przepuść przez funkcje md5() i otrzymasz ciąg w formie mytfugvhjftyvjhvgy4563653 - zapisujesz do bazy przy danym użytkowniku oraz u użytkownika na komputerze w ciastku za pomocą funkcji setcookie('session_id', 'mytfugvhjftyvjhvgy4563653') i przy kazdej nowej stronie sprawdzaj czy getcookie('session_id') == session_id zapisane w bazie

Po więcej info odsyłam na php.pl -> setcookie()

Ps. Juz niedlugo pewnie odkryjesz ze takie dlugie nazwy zmiennych to nie jest najlepszy pomysl Smile
Odpowiedz


Podobne wątki…
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Logowanie STEAM YoutuberAidis 2 3,580 09-06-2017, 16:11
Ostatni post: martasmith
  [PHP] Logowanie na plikach kadobe 1 3,116 23-08-2013, 19:29
Ostatni post: msx83
  Problem z kodem obsługującym logowanie 24soft 2 3,349 09-03-2012, 18:31
Ostatni post: 24soft
  Logowanie facebook + dodatkowy formularz na stronie dawidirzyk 5 5,266 09-10-2011, 16:38
Ostatni post: hieroshima
  Logowanie i rejestracja - includowanie toma5z 3 4,358 22-06-2011, 03:03
Ostatni post: mateo

Skocz do:


Użytkownicy przeglądający ten wątek:
Sponsorzy i przyjaciele
SeoHost.pl