29-09-2011, 23:06
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?
a to skrócona wersjia bez komentarzy:
Proszę o szybką pomoc.[/code]
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 /> <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 /> <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]