';
//Afisare membrii
$members = "SELECT `id`,`nume`,`parola`,`activ` FROM `users` WHERE activ = 1";
$countable = mysql_query($members);
$nrmembrii = mysql_num_rows($countable); //Cu aceasta functie numaram randurile din users si asa aflam cati membrii(randuri) sunt.
//In caz ca avem 0 membrii..
if(mysql_num_rows($countable) == 0){
print 'Momentan nu sunt membrii.';
} else {
//Daca avem memrbii afisam lista
while($user = mysql_fetch_array($countable)) {
//mysql_fetch_array cand vrem sa scoatem mai multe coloane ,si mysql_fetch_assoc
//cand scoatem decat o coloana
//Pentru editarea unui user ?pagina=editeaza_membru&id=
//&id pentru a pasa id-ul ,asa face legatura cu acel user prin ID care este primary key(cheie primara).
print '#'.$user['id'].' - '.$user['nume'].' - EditeazaSterge ';
//Inchidem bucla loop-ului.
}
}
if(isset($_GET['pagina'])) { //isset pentru a verifica daca este setat GET['pagina'],astfel primim o eroare cu undefined.
//definim o variabila pentru $_GET['pagina'] pentru ca o sa folosim
//un switch ,securitate mai buna si protectie impotriva la LFI(Local File Inclusion).
//Dam un nume $pagina ,$pagini sau cum vrei voi numai sa nu schimbati numele din GET decat daca
//Modificati si sus
//Exemplu if(isset($_GET['pages'])) ,atunci si la variabila GET-ul al doilea scriem acelasi nume
//$_GET['pages']
$pagina = $_GET['pagina'];
//Acum folosim un switch (in engleza inseamna comutator ,lucreaza exact ca un intrerupator inchis /deschis
switch($pagina) {
//case 'aici denumirea cazului':
case 'adauga_membru':
//Creeam form-ul
//la action nu am scris nimic deoarece se afla in aceasi pagina
//Atentie metoda este POST deoarece introducem in baza de date ,daca preluam ceva metoda era GET
//La name intodeauna sa aibe acelasi nume ca si campul din baza de date de la tabela users sau cum se numeste.
// USERS
// id - nume - parola - activ ; asa este structurata asa o sa puneti si numele la camp,fara id deoarece
//il faceti auto increment.
print '
';
//$_POST['submit'] ,dupa cum vedeti am scris POST deoarece adaugam,submit este numele la inputul submit.
//
if(isset($_POST['submit'])) {
//Postam valorile
//MYSQL_REAL_ESCAPE_STRING este o functie folosita pentru a evita introducerea de charactere speciale.
//Dupa cum vedeti iar folosim POST ,adaugam date si nu preluam
$nume = mysql_real_escape_string($_POST['nume']);
//Pentru parola folosim functia md5(un fel de hash pentru parola ,in database in loc de parola: "amparolamea"
//o sa apara ca Md5 Hash: 7d3d66fa371cb05f18c2364a68b47bd6 si decriptata , "amparolamea".
//Mai sunt si alte metode de criptare ca SHA1,base64_encode mai multe gasiti pe php.net.
$parola = base64_encode($_POST['parola']);
//Activ ,este un camp pentru cont ,il puteti seta ca integer sau varchar (integer va fi numar iar varchar text)
//Eu il setez ca varchar ,deci la activ o sa scriu "Active".
$activ = mysql_real_escape_string($_POST['activ']);
//Cateva verificari
if(!empty($_POST)){
//campul nume este gol?
//compunem cate o conditie pentru fiecare postare in DB cu empty care determina
//daca o variabila este goala sau nu, TRUE : FALSE
if(empty($_POST['nume'])){ print 'Campul nume este gol.'; }
//Numele este mai mic de 3 caractere?
//Strlen returneaza lungimea stringului ,mai exact folosind si operatori ca `< >`
//dupa cum observatis in exemplul de jos ,daca numele depaseste lungimea de 3 caractere afiseaza o eroare
//si astfel nu mai face INSERT in DB.
if(strlen($_POST['nume']) < 3) { print 'Numele este mai mic de 3 caractere.'; }
//Numele depaseste 18 caractere?
if(strlen($_POST['nume']) > 18) { print 'Numele este mai mare de 18 caractere.'; }
//campul parola nu este completat?
if(empty($_POST['parola'])) { print 'Campul parola este gol.'; }
//Verificare daca parola este corecta.
if($_POST['parola'] != $_POST['parola2']) {
print 'Parolele nu se potrivesc.';
}
//Cum verificam daca e-mailul introdus este valid? Asta daca creati si campul email in database-ul users.
//if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
//print 'E-mailul nu este valid.';
//}
}else{
//Acum urmeaza introducerea datelor in baza de date cu functia MYSQL_QUERY
//Pastrati ordinea campurilor
// (nume,parola,activ) -numele campurilor VALUES() -datele ce vor fi introduse in tabel.
$introducereUser = mysql_query("INSERT INTO `users`(nume,parola,activ) VALUES('".$nume."','".$parola."','".$activ."')");
if(!$introducereUser) {
//Actiunea a esuat afisam mesajul urmator.
print 'Contul '.$nume.' nu a putut fi adaugat ,mai incearca odata. Adauga membru';
}else{
//Daca au fost introduse valori afisam un mesaj.
print 'Contul '.$nume.' a fost adaugat cu succes! Inapoi';
}
}
}
//Din nou break ,sfarsit de caz.
break;
case 'editeaza_membru':
//id-ul din database pe care l-am pasat mai sus in loop-ul userilor.
if(isset($_GET['id'])) {
$id = mysql_real_escape_string(stripslashes($_GET['id']));
//O interogare in database ca sa vedem ce editam.
$sql = mysql_query("SELECT `id`,`nume`,`parola`,`activ` FROM `users` WHERE id='".$id."'") or die(mysql_error());
//Dupa cum vedeti la id am pus variabila $id care a fost pasata ,aceasta este legatura cu userul.
//WHERE id = '".$id."'; WHERE id = 1 ,1 insemnand primul user din tabela.
//din nou formati o bucla
while($rand = mysql_fetch_array($sql)) {
$id = $rand['id'];
$nume = $rand['nume'];
$parola = base64_decode($rand['parola']);
$activ = $rand['activ'];
//Un form unde editam si vedem valorile din tabel ale userului curent.
print '
';
}
//Verificam daca s-a apasat butonul submit..
if(isset($_POST['submit'])) {
//Postam datele
$nume = mysql_real_escape_string($_POST['nume']);
$parola = mysql_real_escape_string(base64_encode($_POST['parola']));
$activ = mysql_real_escape_string($_POST['activ']);
//Acum introducerea datelor in baza de date `users`.
//Am folosit base64 deoarece poate fi decoded ,md5 nu poate fi decoded.
$DBDataInsert = mysql_query("UPDATE `users` SET nume = '".addslashes($nume)."', parola = '".$parola."', activ = '".$activ."'");
//Daca actiunea de editare in db a avut succes sau nu a avut, verificam cu urmatoarea conditie.
if(!$DBDataInsert){
print 'Userul nu a fost modificat ,incercati din nou!';
//header('location: index.php?pagina=editeaza_membru&id='.$id.'');
//Va duce direct la formul de editare al userului respectiv.
} else {
print 'Userul a fost modificat cu succes. Inapoi';
//Sau mai puteti face in felul urmator dar nu o sa mai vedeti acest mesaj ,va redirecteaza direct pe pagina..
//header('location: index.php');
}
}
}
break;
//Cazul stergere rand din db.
case 'sterge';
//ISSET ,setat
//Dupa cum vedeti ne legam to de `id` ,cheie primara din tabelul users.
if(isset($_GET['id'])) {
$stergereid = mysql_real_escape_string($_GET['id']);
//Stergere id
$stergere = mysql_query("DELETE FROM `users` WHERE id = '".$stergereid."'");
if(!$stergere) {
print 'Actiunea de stergere a esuat ,incearca din nou.Sterge';
}else{
print 'Actiunea de stergere a avut succesInapoi!';
}
}
break;
//Inchidem switch-ul
}
//Inchidem GET pentru pagina.
}
?>
Parsed in 0.137 seconds, using GeSHi 1.0.8.4