Advertisement
Guest User

ADDEDITDELETE

a guest
Dec 27th, 2011
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 12.88 KB | None | 0 0
  1. <?php
  2.  $mysqlconn = mysql_connect('localhost','root','');
  3.  mysql_select_db('pfile');
  4. //Adaugare date intr-o tabela cu PHP.
  5. //Tabela o denumim users.
  6. //Campuri id,nume,parola,activ.
  7.  
  8.            print '<a href="?pagina=adauga_membru">Adauga membru</a><br /><br />';
  9.  
  10.           //Afisare membrii
  11.          
  12.           $members = "SELECT `id`,`nume`,`parola`,`activ` FROM `users` WHERE activ = 1";
  13.           $countable = mysql_query($members);
  14.           $nrmembrii = mysql_num_rows($countable); //Cu aceasta functie numaram randurile din users si asa aflam cati membrii(randuri) sunt.
  15.          
  16.           //In caz ca avem 0 membrii..
  17.           if(mysql_num_rows($countable) == 0){
  18.           print 'Momentan nu sunt membrii.';
  19.           } else {
  20.           //Daca avem memrbii afisam lista
  21.           while($user = mysql_fetch_array($countable)) {
  22.           //mysql_fetch_array cand vrem sa scoatem mai multe coloane ,si mysql_fetch_assoc
  23.           //cand scoatem decat o coloana
  24.                          
  25.                          
  26.           //Pentru editarea unui user ?pagina=editeaza_membru&id=
  27.           //&id pentru a pasa id-ul ,asa face legatura cu acel user prin ID care este primary key(cheie primara).
  28.           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 />';
  29.           //Inchidem bucla loop-ului.
  30.           }
  31.  
  32.           }
  33.  
  34.       if(isset($_GET['pagina'])) { //isset pentru a verifica daca este setat GET['pagina'],astfel primim o eroare cu undefined.
  35.  
  36.           //definim o variabila pentru $_GET['pagina'] pentru ca o sa  folosim
  37.           //un switch ,securitate mai buna si protectie impotriva la LFI(Local File Inclusion).
  38.            
  39.             //Dam un nume $pagina ,$pagini sau cum vrei voi numai sa nu schimbati numele din GET decat daca
  40.             //Modificati si sus
  41.             //Exemplu if(isset($_GET['pages'])) ,atunci si la variabila GET-ul al doilea scriem acelasi nume
  42.             //$_GET['pages']
  43.                             $pagina = $_GET['pagina'];
  44.            
  45.                     //Acum folosim un switch (in engleza inseamna comutator ,lucreaza exact ca un intrerupator inchis /deschis
  46.            
  47.                    switch($pagina) {
  48.  
  49.                     //case 'aici denumirea cazului':
  50.                     case 'adauga_membru':
  51.              
  52.                    //Creeam form-ul
  53.                    //la action nu am scris nimic deoarece se afla in aceasi pagina
  54.                    //Atentie metoda este POST deoarece introducem in baza de date ,daca preluam ceva metoda era GET
  55.                    //La name intodeauna sa aibe acelasi nume ca si campul din baza de date de la tabela users sau cum se numeste.
  56.                    // USERS
  57.                    //  id -  nume  - parola  - activ ; asa este structurata asa o sa puneti si numele la camp,fara id deoarece
  58.                    //il faceti auto increment.
  59.  
  60.                    print '
  61.  
  62.                   <form action="" method="POST">
  63.                   Nume: <input type="text size="18" name="nume"> <br /><br />
  64.                   Parola: <input type="text" size="18" name="parola"> <br /><br />
  65.                   Parola2: <input type="text" size="18" name="parola2"> <br /><br />
  66.                   Activ: <input type="text" size="18" name="activ"> <br /><br />
  67.                   <input type="submit" name="submit" value="Adauga membru"> <br /><br />
  68.                   </form>
  69.                  
  70.                   ';
  71.                    //$_POST['submit'] ,dupa cum vedeti am scris POST deoarece adaugam,submit este numele la inputul submit.
  72.                    //<input type="submit" name="submit" value="Adauga membru">
  73.                    if(isset($_POST['submit'])) {
  74.                      
  75.                      //Postam valorile
  76.                      //MYSQL_REAL_ESCAPE_STRING este o functie folosita pentru a evita introducerea de charactere speciale.
  77.                      //Dupa cum vedeti iar folosim POST ,adaugam date si nu preluam
  78.                      $nume = mysql_real_escape_string($_POST['nume']);
  79.                      //Pentru parola folosim functia md5(un fel de hash pentru parola ,in database in loc de parola: "amparolamea"
  80.                      //o sa apara ca Md5 Hash: 7d3d66fa371cb05f18c2364a68b47bd6 si decriptata , "amparolamea".
  81.                      //Mai sunt si alte metode de criptare ca SHA1,base64_encode mai multe gasiti pe php.net.
  82.                      $parola = base64_encode($_POST['parola']);
  83.                      //Activ ,este un camp pentru cont ,il puteti seta ca integer sau varchar (integer va fi numar iar varchar text)
  84.                      //Eu il setez ca varchar ,deci la activ o sa scriu "Active".
  85.                      $activ = mysql_real_escape_string($_POST['activ']);
  86.                      
  87.                      //Cateva verificari
  88.                        if(!empty($_POST)){
  89.                               //campul nume este gol?
  90.                               //compunem cate o conditie pentru fiecare postare in DB cu empty care determina
  91.                               //daca o variabila este goala sau nu, TRUE : FALSE
  92.                               if(empty($_POST['nume'])){ print 'Campul nume este gol.'; }
  93.                               //Numele este mai mic de 3 caractere?
  94.                               //Strlen returneaza lungimea stringului ,mai exact  folosind si operatori ca `< >`
  95.                               //dupa cum observatis in exemplul de jos ,daca numele depaseste lungimea de 3 caractere afiseaza o eroare
  96.                               //si astfel nu mai face INSERT in DB.
  97.                               if(strlen($_POST['nume']) < 3) { print 'Numele este mai mic de 3 caractere.'; }
  98.                               //Numele depaseste 18 caractere?
  99.                               if(strlen($_POST['nume']) > 18) { print 'Numele este mai mare de 18 caractere.'; }
  100.                               //campul parola nu este completat?
  101.                               if(empty($_POST['parola'])) { print 'Campul parola este gol.'; }
  102.                              
  103.                               //Verificare daca parola este corecta.
  104.                               if($_POST['parola'] != $_POST['parola2']) {
  105.                                
  106.                                                   print 'Parolele nu se potrivesc.';
  107.                                                  
  108.                               }
  109.                              
  110.                               //Cum verificam daca e-mailul introdus este valid? Asta daca creati si campul email in database-ul users.
  111.                               //if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
  112.                               //print 'E-mailul nu este valid.';
  113.                               //}
  114.  
  115.                             }else{
  116.                      //Acum urmeaza introducerea datelor in baza de date cu functia MYSQL_QUERY
  117.                      //Pastrati ordinea campurilor
  118.                      // (nume,parola,activ) -numele campurilor VALUES() -datele ce vor fi introduse in tabel.
  119.                      $introducereUser = mysql_query("INSERT INTO `users`(nume,parola,activ) VALUES('".$nume."','".$parola."','".$activ."')");
  120.  
  121.                            if(!$introducereUser) {
  122.                              
  123.                            //Actiunea a esuat afisam mesajul urmator.
  124.                            print 'Contul '.$nume.' nu a putut fi adaugat ,mai incearca odata. <a href="?pagina=adauga_membru">Adauga membru</a>';
  125.  
  126.                            }else{
  127.                             //Daca au fost introduse valori afisam un mesaj.
  128.                             print 'Contul '.$nume.' a fost adaugat cu succes!  <a href="file.php">Inapoi</a>';
  129.                            }
  130.                            }
  131.                                   }
  132.                          //Din nou break ,sfarsit de caz.
  133.                    break;
  134.                    
  135.  
  136.                    case 'editeaza_membru':
  137.                      
  138.                      //id-ul din database pe care l-am pasat mai sus in loop-ul userilor.
  139.                      if(isset($_GET['id'])) {
  140.  
  141.                        $id = mysql_real_escape_string(stripslashes($_GET['id']));
  142.                        
  143.                        //O interogare in database ca sa vedem ce editam.
  144.                        $sql = mysql_query("SELECT `id`,`nume`,`parola`,`activ` FROM `users` WHERE id='".$id."'") or die(mysql_error());
  145.                        //Dupa cum vedeti la id am pus variabila $id care a fost pasata ,aceasta este legatura cu userul.
  146.                        //WHERE id = '".$id."'; WHERE id = 1 ,1 insemnand primul user din tabela.
  147.                        
  148.                        //din nou formati o bucla
  149.                         while($rand = mysql_fetch_array($sql)) {
  150.  
  151.                         $id = $rand['id'];
  152.                         $nume = $rand['nume'];
  153.                         $parola = base64_decode($rand['parola']);
  154.                         $activ = $rand['activ'];
  155.                        
  156.                         //Un form unde editam si vedem valorile din tabel ale userului curent.
  157.                         print '
  158.                        <form action="" method="POST"><br /><br />
  159.                        Nume: <input type="text" name="nume" size="18" value='.$nume.'> <br /><br />
  160.                        Parola: <input type="text" name="parola" size="18" value='.$parola.'> <br /><br />
  161.                        Activ: <input type="text" name="activ" size="18" value='.$activ.'> <br /><br />
  162.                        <input type="submit" value="Editeaza" name="submit">
  163.                        <a href="file.php">Anuleaza editarea</a>
  164.                        </form>
  165.                        ';
  166.                        
  167.                         }
  168.                        
  169.                         //Verificam daca s-a apasat butonul submit..
  170.                         if(isset($_POST['submit'])) {
  171.                          
  172.                           //Postam datele
  173.                          
  174.                           $nume = mysql_real_escape_string($_POST['nume']);
  175.                           $parola = mysql_real_escape_string(base64_encode($_POST['parola']));
  176.                           $activ = mysql_real_escape_string($_POST['activ']);
  177.                          
  178.                           //Acum introducerea datelor in baza de date `users`.
  179.                           //Am folosit base64 deoarece poate fi decoded ,md5 nu poate fi decoded.
  180.                           $DBDataInsert = mysql_query("UPDATE `users` SET nume = '".addslashes($nume)."', parola = '".$parola."', activ = '".$activ."'");
  181.                           //Daca actiunea de editare in db a avut succes sau nu a avut, verificam cu urmatoarea conditie.
  182.                          
  183.                           if(!$DBDataInsert){
  184.                            
  185.                             print 'Userul nu a fost modificat ,incercati din nou!';
  186.                             //header('location: index.php?pagina=editeaza_membru&id='.$id.'');
  187.                             //Va duce direct la formul de editare al userului respectiv.
  188.                            
  189.                           } else {
  190.                            
  191.                             print 'Userul a  fost modificat cu succes. <a href="index.php">Inapoi</a>';
  192.                             //Sau mai puteti face in felul urmator dar nu o sa mai vedeti acest mesaj ,va redirecteaza direct pe pagina..
  193.                             //header('location: index.php');
  194.  
  195.                           }
  196.                          
  197.                           }
  198.                          
  199.                         }
  200.                         break;
  201.                        
  202.                         //Cazul stergere rand din db.
  203.                         case 'sterge';
  204.                        
  205.                         //ISSET ,setat
  206.                         //Dupa cum vedeti ne legam to de `id` ,cheie primara din tabelul users.
  207.                         if(isset($_GET['id'])) {
  208.                          
  209.                           $stergereid = mysql_real_escape_string($_GET['id']);
  210.                          
  211.                           //Stergere id
  212.                           $stergere = mysql_query("DELETE FROM `users` WHERE id = '".$stergereid."'");
  213.                          
  214.                                     if(!$stergere) {
  215.                                       print 'Actiunea de stergere a esuat ,incearca din nou.<a href="?pagina=sterge&id='.$stergereid.'">Sterge</a>';
  216.                                     }else{
  217.                                       print 'Actiunea de stergere a avut succes<a href="file.php">Inapoi</a>!';
  218.                                     }
  219.                           }
  220.                           break;
  221.  
  222.              //Inchidem switch-ul
  223.                      }
  224.  //Inchidem GET pentru pagina.
  225.  }
  226. ?>
  227.  
  228. Parsed in 0.137 seconds, using GeSHi 1.0.8.4
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement