AcasaAcasa  FAQFAQ  CautareCautare  MembriMembri  GrupuriGrupuri  InregistrareInregistrare  ConectareConectare  

Distribuiți | 
 

 [php]tutorial inregistrare si logare cu baza de date mysql

In jos 
AutorMesaj
Kenny
Sponsor
Sponsor
avatar

Mesaje : 1077
Data de inscriere : 07/05/2008
Varsta : 28
Localizare : Liberty City

MesajSubiect: [php]tutorial inregistrare si logare cu baza de date mysql   Dum Oct 19, 2008 8:00 am

am facut un tutorial despre inregistrare si logare cu php si mysql, sper sa fie util la cineva

aici e ahriva cu fisierele, si mai jos voi explica ce face scriptul.

prima data trebuie creeat un tabel numit users cu campurile id,username,password si email. in arhiva e si un fisier, users.sql, la care puteti sa ii dati import in mysql si creeaza tabelul

acum sa vedem ce fac fisierele

deci, primul fisier e index.php
Cod:
ob_start();
functia asta trimite header-ele in ordinea corecta, asa am citit pe php.net Very Happy

Cod:
session_start();
daca nu initializam sesiunea nu putem lucra cu array-ul $_SESSION

Cod:
mysql_connect("localhost","root","");
mysql_select_db("test");
aici ne conectam la baza de date mysql, trebuie modificat

Cod:
if(isset($_GET['q']) && ($_GET['q'] == "reg" || $_GET['q'] == "login" || $_GET['q'] == "logout" || $_GET['q'] == "alta_pagina")){
  $page = $_GET['q'];
}else{
  $page = "home";
}
cu liniile astea ne uitam ce valoare are q din adresa, si daca nu are paginile declarate de noi $page ia valoarea home, adica prima pagina

Cod:
include $page.".php";
includem pagina ceruta

Cod:
ob_end_flush();
trimitem headerele in ordinea corecta, are legatura cu prima functie


reg.php - fisierul pentru inregistrare

cu primul if verificam daca user-ul e logat, iar cu al doilea daca a apasat butonul de inregistrare

$userCheck si $mailCheck sunt interogarile pt mysql sa verificam username-ul si emailul, sa nu mai fie inregistrate in baza de date

if-ul ala lung verifica sa fie datele corecte, o sa explic mai jos ce face fiecare conditie

Cod:
empty($_POST['username'])
daca campul username a fost lasat gol, aratam eroarea

Cod:
mysql_num_rows($userCheck) > 0
rezultatul trebuie sa fie mai mic ca zero, adica username-ul nu mai exista in baza de date

Cod:
strlen($_POST['username']) > 16
username-ul trebuie sa fie mai mic de 16 caractere

Cod:
!ereg("(^[a-zA-Z0-9]+([a-zA-Z0-9\_\-]*))$",$_POST['username'])
aici putin regex, username-ul trebuie sa inceapa numai cu o litera sau cifra, si sa contina numai litere, cifre _ si -

la fel e si la parola, ne uitam sa nu fie mai mare de 16 caractere si sa nu fie goala

Cod:
!eregi("([0-9a-zA-Z_]|\-|\_)",$_POST['password1'])
iar regex, parola trebuie sa aiba numai litere cifre, _ si -

Cod:
$_POST['password1'] != $_POST['password2']
parola pentru confirmare trebuie sa fie identica cu prima

Cod:
$sql = mysql_query("INSERT INTO users (username, email, password) VALUES ('".$_POST['username']."','".$_POST['email']."','".md5($_POST['password1'])."')");
daca datele sunt corecte, adaugam user-ul noi in baza de date cu parola criptata md5


acum sa trecem la login.php unde se face logarea

primul if verifica daca a fost apasat butonul de logare

Cod:
$sql = mysql_query(" SELECT * FROM `users` WHERE `username` = '".$_POST['username']."' AND `password` = '".md5($_POST['password'])."'");
facem un select in baza de date cu username-ul si parola introduse, iar daca rezultatul e mai mare ca zero, inseamna ca datele sunt corecte

Cod:
$info = mysql_fetch_assoc($sql);
   $_SESSION['userID'] = $info['id'];
   $_SESSION['username'] = $_POST['username'];
   $_SESSION['email'] = $info['email'];
   $_SESSION['login'] = "1";
punea in array-ul $_SESSION cateva date despre user

Cod:
header("Location: index.php");
daca user-ul s-a logat il trimitem la pagina principala

in alta_pagina.php si home.php e numai un if unde ne uitam daca user-ul e logat sau nu si afisam continut in functie de asta

asta e tot

e valid Xhtml

_________________
Respecta si vei fi respectat!!!
I love Firefox
Sus In jos
Vezi profilul utilizatorului http://muchisinau.sytes.net/
 
[php]tutorial inregistrare si logare cu baza de date mysql
Sus 
Pagina 1 din 1

Permisiunile acestui forum:Nu puteti raspunde la subiectele acestui forum
Tutoriale :: Diverse :: Arhiva-
Mergi direct la: