Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Logowanie Na Stronę


Rekomendowane odpowiedzi

Opublikowano

Witam

 

W tym Tutku chciałbym przedstawić Wam jak łatwo zrobić logowanie na stronę. Naprawdę nie jest to takie trudne jak się wydaje. Na pewno każdy z was da sobie radę. Teraz przejdźmy do logowania:

 

config.php

Jest to plik, w którym zapiszemy sobie konfiguracje bazy MySQL tak, byśmy mieli do niej łatwy i szybki dostęp.

 

<?php
//1
$db_user = "użytkownik";
$db_server = "serwer";
$db_pass = "hasło";
$db_name = "nazwa bazy danych";
?>

 

1. Zmiennym przypisujemy dane wymagane do połączenia się z bazą danych MySQL. Kolejno są to: nazwa użytkownika, adres serwera, hasło oraz nazwa bazy danych.

 

 

 

sessions.php

Tutaj trzymać będziemy funkcje obsługujące logowanie i wylogowywanie.

 

<?php

//2
session_start();

//3
function auth()
{
   return $_SESSION["USER_AUTH"];
}

//4
function login( $login )
{
   $_SESSION["USER_AUTH"]=TRUE;
   $_SESSION["USER_ID"]=$login;    
}

//5
function logout()
{
   $_SESSION["USER_AUTH"]=FALSE;
   $_SESSION["USER_ID"]="";    
}

//6
if( $_GET['action']=="logout" ){ logout(); }

?>

 

2. Rozpoczynamy sesje. Ważnym jest, by ta funkcja znalazła się zawsze na początku, gdyż wysyła ona do przeglądarki odpowiednie nagłówki, i poprzedzona przez cokolwiek innego - nie zadziała.

3. Zwraca wartość zmiennej $_SESSION["USER_AUTH"].

4. Nadaje zmiennym odpowiednie wartości (dzięki nim, użytkownik będzie traktowany jako zalogowany).

5. Przywraca zmiennym wartości domyślne, by użytkownik był traktowany jako wylogowany.

6. Po wklepaniu w przeglądarkę adresu naszastrona.pl/index.php?action=logout (albo po kliknięciu na taki link), zostaniemy wylogowani.

login.php

<?php
//7
echo"
<form action=\"index.php?action=login\" method=post>
<input class=login type=text name=login></input>
<input class=login type=password name=pass></input>
<input class=submit type=submit value=OK></input>
</form>
";

//8
if( $_GET['action']=="login" )
{

//9
$login = $_POST['login'];
$pass = md5($_POST['pass']);

//10
$db = mysql_connect( $db_server, $db_user, $db_pass );
mysql_select_db( $db_name );
$query = "SELECT `password` FROM `users` WHERE `login`='$login'";
$query = mysql_query( $query );
$haslo = mysql_fetch_row( $query );

//11
if( $haslo[0]==$pass )
{ 
   login( $login ); 
   echo"<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=index.php\">"; 
}
else{ echo"Zły login lub hasło!"; }

mysql_close( $db );
}
?>

7. Wyświetlenie odpowiedniego formularza. Można sobie go odpowiednio podrasować css'em, żeby był ładny Wink

8. Sprawdza, czy zostało zarządane logowanie (np. po kliknięciu w link naszastrona.pl/index.php?action=login)

9. Pobranie zmiennych z formularza, zakodowanie hasła, by później mogło zostać porównane z tym z bązą danych.

10. Połączenie z bazą danych, wybranie odpowiedniej bazy, wysłanie zapytania o hasło do konkretnego loginu.

11. Porównanie wpisanego hasła, z hasłem z bazy danych. Jeżeli poprawne, następuje zalogowanie i przekierowanie, jezeli błędne, wyświetla komunikat o niepoprawności hasła.

 

index.php

Zbieramy wszystko do kupy

 

<?php 
//12
include("config.php");
include("sessions.php");

//13
if($_SESSION["USER_AUTH"]==TRUE){ include("panel.php"); }
else{ include("login.php"); }
?>

12. Załączenie potrzebnych plików, czyli danych potrzebnych do logowania oraz funkcji obsługi sesji.

13. Sprawdzenie, czy użytkownik jest zalogowany. Jeżeli tak, wyświetlamy treść dostępną tylko dla zalogowanych, jeżeli nie, wyświetlamy formularz logowania.

 

Teraz pozostaje nam tylko stworzyć odpowiednią baze danych i tabele, oraz pierwszego użytkownika. Jeżeli nie potrafisz tego zrobić ręcznie, możesz skorzystać z tego skryptu (zapisać na serwerze i po prostu uruchomić w przeglądarce):

install.php

 

<?php
include("config.php");

echo"Łączenie z bazą danych... ";

if ( $db = mysql_connect( $db_server, $db_user, $db_pass ) ){ echo "<b>OK</b><BR>"; }
else{ echo"<strike>BŁĄD</strike><BR>"; }

echo"Wybieranie bazy danych... ";

if ( $log = mysql_select_db( $db_name ) ){ echo "<b>OK</b><BR>"; }
else{ echo"<strike>BŁĄD</strike><BR>"; }

echo"Tworzenie tabel... ";

$query = "CREATE TABLE users (id integer NOT NULL AUTO_INCREMENT, login char(16), password char(32), PRIMARY KEY(id))";

if ( $log = mysql_query($query) ){ echo "<b>OK</b><br>"; }
else{ echo"<strike>BŁĄD</strike><BR>"; }


echo"Dodawanie potrzebnych wpisów... ";

$haslo = md5("TUTAJ_NASZE_HASŁO");
$login = "TUTAJ_NASZ_LOGIN";

$query = "INSERT INTO `users` (`id`, `login`, `password`) VALUES ('', '$login', '$haslo') ";

if ( $log = mysql_query($query) ){ echo "<b>OK</b><br>Instalacja zakończona pomyślnie!"; }
else{ echo"<strike>BŁĄD</strike><BR>"; }

mysql_close($db);

?>

 

register.php

Rejestracja nowych użytkowników

 

<?php

//14
echo"
<form action=\"index.php?action=register\" method=post>
<input class=login type=text name=login></input>
<input class=login type=password name=pass></input>
<input class=submit type=submit value=Rejestruj></input>
</form>
";

//15
if( $_GET['action']=="register" && isset($_POST['login']) && isset($_POST['pass']) ) 
{

//16
$login = $_POST['login'];
$pass = md5($_POST['pass']);

//17
$db = mysql_connect( $db_server, $db_user, $db_pass );
mysql_select_db( $db_name );
$query = "SELECT `password` FROM `users` WHERE `login`='$login'";
$query = mysql_query( $query );
$haslo = mysql_fetch_row( $query );

//18
if( isset($haslo[0]) ) { echo"Taki użytkownik już istnieje!"; }
else
{ 

//19
   $query = "INSERT INTO `users` (`id`, `login`, `password`) VALUES ('', '$login', '$pass') ";
   if( $log = mysql_query($query) ){ echo "<b>OK</b><br>Zostałeś zarejestrowany!"; }
   else{ echo"Coś poszło nie tak.<BR>"; } 
}

mysql_close( $db );
}

?>

14. Wyświetlamy taki sam formularz jak przy logowaniu.

15.Analogicznie jak w pliku login.php, sprawdzamy, czo została zarządana rejestracja (np. po kliknięciu w link naszastrona.pl/index.php?action=register). Tutaj dodajemy jeszcze dwa warunki - pola login i pass nie mogą być puste.

16. Pobranie zmiennych z formularza, zakodowanie hasła, by później mogło zostać wysłane do bazy w odpowiedniej, bezpiecznej formie.

17. Połączenie z bazą danych, wybranie odpowiedniej bazy, wysłanie zapytania o hasło do konkretnego loginu w celu sprawdzenia czy taki login w ogóle istnieje (oczywiście, powinno się to zrobić w inny sposób, ale z lenistwa po prostu skopiowałem kod z pliku login.php Wink).

18. Sprawdzamy, czy nie ma już użytkownika o takim samym loginie.

19. Jeśli wszystko jest ok, dodajemy odpowiedni rekord do bazy. Użytkownik już istnieje.

 

kick.php

<?php 

//20
if(!$_SESSION["USER_AUTH"]==TRUE)
{ 
   echo "Nie masz prawa tego ogladac.";
//21
   exit();
}

?>

20. Sprawdzamy, czy user jest zalogowany.

21. Jeżeli nie - cały dalszy kod przestanie być wykonywany.

 

Jak zadziała to w praktyce?

panel.php

Sprawdzamy, czy wszystko chodzi tak, jak powinno.

 

//22
<?php include("kick.php"); ?>

//23
<a href="index.php?action=logout">Wyloguj</a> 

22. Tu warto byłoby napisać nieco więcej o funkcji include. Mówi się, że ona "dołącza" jakiś plik do kodu. No, w zasadzie tak. Chociaż bardziej trafnym określeniem byłoby "wkleja". dzięki takiemu zabiegowi, kod pliku panel.php rozpocznie się od sprawdzenia, czy użytkownik jest zalogowany. Jeżeli test się nie powiedzie, wyświetli się krótki komunikat, a wykonywanie całej strony dla bezpieczeństwa zostanie przerwane. Od teraz, dzięki krótkiej linijce

 

<?php include("kick.php"); ?>

 

jesteśmy w stanie zabezpieczyć dowolny plik przed nieautoryzowanym dostępem - wystarczy, że wstawimy ją na jego początku.

23. A tu coś, co wyświetli się, gdy okaże się, że plik uruchomiony jest przez zalogowanego użytkownika, i to nie bezpośrednio, a przez index.php. Wyświetli się link, po kliknięciu w który zostaniemy wylogowani.

 

index.php

Na koniec zmodyfikujmy jeszcze index.php by wyglądał tak:

<?php 
include("config.php");
include("sessions.php");

if($_SESSION["USER_AUTH"]==TRUE){ include("panel.php"); }
else
{ 
include("login.php"); 
include("register.php");
}
?>

 

Po takim zabiegu, panel rejestracji zostanie wyświetlony pod panelem służącym do logowania. Cały system jest gotowy.

 

 

Chcąc wzbogacić plik index.php o jakiekolwiek inne elementy, musimy pamiętać tylko o tym, by na samym początku include'ować pliki sessions.php i config.php. Przykładowo, może to wyglądać tak:

 

<?php 
include("config.php");
include("sessions.php"); 
?>

<html>
<head>
</head>
<body>
<h3>Logowanie</h3>

 

 

Teraz Dawno wyczekiwany KONIEC :)

 

Liczę na + :) Trochę się to pisało...

 

Zakaz Kopiowania na inne forum lub strone bez mojej zgody

Kocham mojegoWujka!!!

 

Masz Jakiś Problem Napisz Wyślij e-mail

 

Pomogłem ? Je**** PLUSA +

Opublikowano

xD Umieszczasz zakazy kopiowania a sam kopiujesz o.O

http://pcvolt.pl/showthread.php?tid=664

 

Rozumiem że pisałeś to dwoma skrótami ? xD

Ctrl+C i Ctrl+V

 

Pamiętaj że w necie sie nic nie ukryje ;]

_____________________________________________

veteran-icon-bf2.pngveteran-icon-bfbc2.pngveteran-icon-bf3.pngveteran-icon-bfheroes.pngveteran-icon-bfp4f.png

Gawrosz-PL.png

Opublikowano

Pozwolę sobie wytłumaczyć:

1. To mój tut napisany dość dawno temu.

2. Pozwoliłem wielu osobom na rozpowszechnianie go

3. Jeśli masz jeszcze jakieś pytania wal śmiało

Kocham mojegoWujka!!!

 

Masz Jakiś Problem Napisz Wyślij e-mail

 

Pomogłem ? Je**** PLUSA +

  •  carbonx zmienił(a) tytuł na Logowanie Na Stronę

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...