Pagina de start a forumului end-strike.idle.ro
Inregistrare • Cautare • FAQ • Membri • Grupuri • Autentificare
Tutorial - Instalare si logare cu baza de date mys

 
Raspunde la subiect    Pagina de start a forumului end-strike.idle.ro » PHP Subiectul anterior
Subiectul urmator
Tutorial - Instalare si logare cu baza de date mys
Autor Mesaj
SuperGhinda
Detinator
Detinator
SuperGhinda

Data inscrierii: 13/Noi/2007
Mesaje: 116

Mesaj Tutorial - Instalare si logare cu baza de date mys Raspunde cu citat (quote)
[url=http://andrei2p.net/login.rar]Aici[/url] 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, debutantul fisier e index.php
Cod:
ob_start();
functia asta trimite header-ele in ordinea corecta, asa am citit pe php.net :D
Cod:
session_start();
daca nu initializam sesiunea nu putem lucra cu array-ul $_SESSION
Cod:
ysql_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";
ncludem 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'])
aca 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

$sql = mysql_
Cod:
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
18/11/2007 23:19 Vezi profilul utilizatorului Trimite mesaj privat
Afiseaza mesajele pentru a le previzualiza:    
Raspunde la subiect    Pagina de start a forumului end-strike.idle.ro » PHP Ora este GMT + 3 ore
Pagina 1 din 1

 
Mergi direct la: 
Nu puteti crea un subiect nou in acest forum
Nu puteti raspunde in subiectele acestui forum
Nu puteti modifica mesajele proprii din acest forum
Nu puteti sterge mesajele proprii din acest forum
Nu puteti vota in chestionarele din acest forum


Powered by phpBB © 2001, 2005 phpBB Group
Fa-ti si tu propriul forum GRATUIT, pe www.myforum.ro