Adauga membru

'; //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'].' - Editeaza Sterge
'; //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 '
Nume:

Parola:

Parola2:

Activ:



'; //$_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 '


Nume:

Parola:

Activ:

Anuleaza editarea
'; } //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