Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- $mysqlconn = mysql_connect('localhost','root','');
- mysql_select_db('pfile');
- //Adaugare date intr-o tabela cu PHP.
- //Tabela o denumim users.
- //Campuri id,nume,parola,activ.
- print '<a href="?pagina=adauga_membru">Adauga membru</a><br /><br />';
- //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'].' - <a href="?pagina=editeaza_membru&id='.$user['id'].'">Editeaza</a> <a href="?pagina=sterge&id='.$user['id'].'">Sterge</a><br />';
- //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 '
- <form action="" method="POST">
- Nume: <input type="text size="18" name="nume"> <br /><br />
- Parola: <input type="text" size="18" name="parola"> <br /><br />
- Parola2: <input type="text" size="18" name="parola2"> <br /><br />
- Activ: <input type="text" size="18" name="activ"> <br /><br />
- <input type="submit" name="submit" value="Adauga membru"> <br /><br />
- </form>
- ';
- //$_POST['submit'] ,dupa cum vedeti am scris POST deoarece adaugam,submit este numele la inputul submit.
- //<input type="submit" name="submit" value="Adauga membru">
- 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. <a href="?pagina=adauga_membru">Adauga membru</a>';
- }else{
- //Daca au fost introduse valori afisam un mesaj.
- print 'Contul '.$nume.' a fost adaugat cu succes! <a href="file.php">Inapoi</a>';
- }
- }
- }
- //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 '
- <form action="" method="POST"><br /><br />
- Nume: <input type="text" name="nume" size="18" value='.$nume.'> <br /><br />
- Parola: <input type="text" name="parola" size="18" value='.$parola.'> <br /><br />
- Activ: <input type="text" name="activ" size="18" value='.$activ.'> <br /><br />
- <input type="submit" value="Editeaza" name="submit">
- <a href="file.php">Anuleaza editarea</a>
- </form>
- ';
- }
- //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. <a href="index.php">Inapoi</a>';
- //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.<a href="?pagina=sterge&id='.$stergereid.'">Sterge</a>';
- }else{
- print 'Actiunea de stergere a avut succes<a href="file.php">Inapoi</a>!';
- }
- }
- break;
- //Inchidem switch-ul
- }
- //Inchidem GET pentru pagina.
- }
- ?>
- Parsed in 0.137 seconds, using GeSHi 1.0.8.4
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement