Jump to content

M2G

Moderators
  • Posts

    1838
  • Joined

  • Last visited

  • Days Won

    31

Everything posted by M2G

  1. @Wired iti propun sa nu mai postezi pana nu intelegi macar toolurile despre care se discuta. Citeste si informeaza-te.
  2. Si daca depui la ghiseu si daca depui online primesti un numar de inregistrare. Introduci numarul de inregistrare pentru unul din documentele tale: cel mai recent eventual si codul tau fiscal. practic verifici un anume document depus in prealabil de tine. O sa iti apara o lista cu mai multe documente depuse si starea acestora. In dreapta o sa ai un buton unde poti sa vezi recipisa. Uita-te la linkul de la acel pdf. Schimba adresa incrementand sau decrementand numarul acela din numele fisierului, o sa vezi ca o sa iti arate alte documente ale altor firme. Din cate am vazut, recipisele sunt generate incremental in functie de cum depun oamenii declaratiile. Cred ca si cele depuse online, cat si cele depuse offline sunt stocate in acelasi storage location. Nu mai tin minte daca scrie numele firmei in recipisa.
  3. Ai acelasi numar de telefon si la datele de contact pentru semnatura electronica? // LE: poti sa vezi si recipisele altora
  4. M2G

    MD5 Encrypt

    MD5 e algoritm de hashing, nu de criptare. Algoritmii de criptare au si metode de decriptare documentate si demonstrate matematic. Nu mai faceti confuzia asta.
  5. Cand cineva face numarul minim de 50 de posturi si este acceptat cu un thread in market, noi dam de obicei accept daca nu sunt chestii care contravin regulilor forumului. Cei care vor sa faca tranzactii cu respectivul, au 50 de posturi din care pot sa isi faca o impresie despre persoana in cauza. Daca multe din posturile alea sunt offtopic sau posturi la "fun-stuff" si "ce asculti" te gandesti de 2 ori inainte sa faci tranzactia. E adevarat ca majoritatea nu cred ca se uita la posturile precedente cand fac o tranzactie dar aici e deja alegerea userului. Esti ignorant, suporti consecintele. E ca in viata de zi cu zi, prostia se plateste. Numarul posturilor conteaza doar pentru asta. In rest nu cred ca se uita nimeni daca ai 300 de posturi sau 3000. Nu ajuta cu nimic decat pot sa iti confirme activitatea si longevitatea pe forum. De aici ai putea trage niste concluzii despre persoana respectiva si respecul pe care il are in comunitate dar asta e deja o alta poveste. Consider ca nu aduce un minus pentru forum acel thread. Cel putin deocamdata. Am votat NU.
  6. O sugestie: daca tot postezi, pune si tu o descriere, niste screenshots, features sa arate frumos threadul. Nu doar asa trantit un link de download.
  7. Clar ca merita. Daca scrii o functie care are anumite date de intrare si trebuie sa reactioneze cumva si sa se vada un output ai putea face si manual initial dar e mult mai bine daca ai o suita de teste si daca le poti da un regresion test din cand in cand atunci cand modifici codul. Sa zicem ca ai scris o functie, o testezi manual. Dupa ceva timp trebuie sa modifici ceva in acea functie. Ce faci acum, o testezi iar manual? Nu mai bine rulezi testele si vezi daca a crapat ceva? Ideea este ca nu testezi o singura data, de fiecare daca cand adaugi ceva sau modifici vreo clasa e mult mai usor sa rulezi testele si sa vezi daca inca programul ruleaza corect.
  8. Merci! M-am inscris si eu. Se pare ca va incepe in vara. Recomand sa se inscrie si celor care vor sa invete linux si vin si fac threaduri cu "de unde sa incep".
  9. Da, asa am presupus ca ai in baza de date. Poate ai altfel, nu stiu. Poti sa adaptezi codul si query-ul SQL in functie de necesitati, nu trebuie sa copiezi tot ce am scris. Am facut asa ca si un exemplu sa intelegi cam cum ar functiona si cum ti-ai rezolva problema.
  10. greseala de la copy-paste sunt 2 spatii acolo. E gresit numele pentru driver. Cum aveai tu in primul post cred ca e ok.
  11. Terminati naibii cu prostiile si offtopicul asta. E o stire de securitate si punct! E important pentru cei care vor sa participe la astfel de conferinte sa stie de existenta lor. Categoria aleasa e buna! Continuati ONTOPIC.
  12. Ai inceput cu chestii unpic mai avansate si nu stapanesti chestiile de baza din OOP si Java. Asta nu e prea bine dar o sa te indrept putin spre directia buna. In primul rand trebuie sa scoti mainul din clasa Database si sa faci o clasa separata care sa contina functia main. Aceea va fi punctul de unde programul incepe. Deci sa zicem ca faci o clasa Launcher care arata cam asa: public class Launcher { public static void main(String[] args) { new GUILOGIN(); } } In functia Main creezi un obiect de tipul GUILOGIN. Asta am facut mai sus cu new GUILOGIN(); Atentie la numele de clase, nu mai da numele claselor cu litere mari. Numele unei clasa incepe cu litera mare iar restul literelor mici sau daca ai combinatii de cuvinte in genul ConexiuneLaBazaDeDate tot timpul prima litera a cuvantului sa fie litera mare. Asta asa ca o paranteza la coding style. Asta iti va crea si afisa fereastra ta. Presupun ca vrei sa lucrezi cu baza de date prin intermediul interfetei grafice asa ca deocamdata lasam clasa Launcher asa cum este acum. Acum modificam clasa Database si in primul rand stergem de acolo functia main si construim un constructor. In acel constructor setam chestiile statice necesare pentru a crea o conexiune si facem stringul jdbcURL un field al clasei database pentru a putea fi accesat intern in clasa Database si de catre alte metode. Dupa asta facem o metoda queryUserType care returneaza true pentru admin si false pentru un user normal. Am facut asa pentru ca ai facut ceva asemanator in in clasa ta de GUI dar asta e o modalitate proasta pentru a verifica daca un user este admin sau nu. O sa iti dai si singur seama de ce. Am presupus ca ai in baza de date un string cu username, un string cu pass si o valoare booleana care reprezinta tipul de utilizator. Posibil sa nu ai asa dar din moment ce nu ai precizat iti da asa un exemplu ca sa intelegi cum functioneaza. O sa adaptezi tu codul la nevoile tale. Acu nici chiar mura in gura. Clasa ta Database o sa arate ceva de genul in urma schimbarilor. import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class Database { private String jdbcUrl; public Database() { try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } System.out.println("# - Driver Loaded"); String server = " "; int port = 1433; String user = ""; // Sql server username String password = ""; String database = ""; jdbcUrl = "jdbc:sqlserver://"+server+":"+port+";user="+user+";password="+password+";databaseName="+database+""; } public boolean queryUserType(String username, String password){ try { Connection con = DriverManager.getConnection(jdbcUrl); System.out.println("# - Connection Obtained"); Statement stmt = con.createStatement(); System.out.println("# - Statement Created"); ResultSet rs = stmt.executeQuery("SELECT admin FROM PERSON WHERE " + "username='" + username + "'" + "AND password='" + password + "';"); System.out.println("# - Query Executed"); while(rs.next()) { boolean userType = rs.getBoolean("admin"); return userType; } rs.close(); stmt.close(); con.close(); System.out.println("# - Resources released"); } catch (Exception ex) { System.out.println("Error : "+ex); } return false; } } Acum tot ce trebuie sa faci in clasa De GUI. (Din nou, aici ar trebui sa ai alta clasa care sa contina logica de validare si control iar in clasa de GUI sa ai doar partea de GUI si nimic altceva, nici un alt cod care sa faca altceva decat construirea GUI. Pentru simplitate iti dau exemplu asa cum ai inceput tu. import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import java.util.Vector; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPasswordField; import javax.swing.JTextField; public class GUILOGIN extends JFrame { //componente JTextField user; JPasswordField pass; JButton login; JLabel username; JLabel password; //final componente public GUILOGIN() { super("Log in Window"); setSize(300,200); setLayout(null); Componente(); populare(); add(user); add(pass); add(login); add(username); add(password); setResizable(false); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); } public void Componente() { user=new JTextField(15); user.setBounds(70, 30, 150, 20); pass=new JPasswordField(15); pass.setBounds(70, 65, 150, 20); login=new JButton("Log in"); login.setBounds(110,100,80,20); login.addActionListener(actiune); username=new JLabel("Username"); username.setBounds(1,30,70,20); password=new JLabel("Password"); password.setBounds(1, 65, 70, 20); } public void populare() { Vector<Employe> lista = new Vector<Employe>(); Employe dragos=new User(1,"Dragos","12345","Razvan","razvan","normal",0f,0f, 0f, "Comentarii","bonusuri","Penatyss"); Employe george=new Admin(2,"George","344556","George","12345","avansat","Administrator"); lista.add(dragos); lista.add(george); } Actiune actiune=new Actiune(); public class Actiune implements ActionListener { @Override public void actionPerformed(ActionEvent argument) { populare(); Vector<Employe> lista = new Vector<Employe>(); Employe dragos=new User(1,"Dragos","12345","Razvan","razvan","normal",0f,0f, 0f, "Comentarii","bonusuri","Penatyss"); Employe george=new Admin(2,"George","344556","George","12345","avansat","Administrator"); lista.add(dragos); lista.add(george); String pname=user.getText(); String ppass=new String(pass.getPassword()); if(argument.getSource()==login) { Database dbHandler = new Database(); boolean admin = dbHandler.queryUserType(pname, ppass); if (admin){ System.out.println("Userul este admin"); }else{ System.out.println("Userul este normal"); } /* for(Employe employes: lista){ if(employes.autentificare(pname, ppass)) { if(employes.permisiuni()==false) { System.out.println("Userul este normal"); dispose(); break; } else if(employes.permisiuni()==true) { System.out.println("Userul este admin"); dispose(); break; } } else { System.out.println("Eroare"); }*/ } } } } }//clasa Final In momentul in care vrei sa verifici tipul unui user pur si simplu instantiezi calsa Database dupa care apelezi metoda queryUserType care executa query-ul catre baza de date si returneaza un boolean pe care il stochez in variabila admin si apoi verifica daca admin e true sau false si printez mesajul. Atentie, metoda aceea de verificare returneaza false (adica user normal) chiar daca tu introduci un nume de utilizator si o parola care nu exista in db. De asta ziceam ca nu e prea ok sa verifici tipul de user cu true si false. Sau poti sa implementezi altfel functia dar la astea te mai gandesti tu. Spor!
  13. Toti care vreti licente, dati-mi pm cu mailul si eventual numele ca sa va pot completa oferta si sa primiti licenta pe mail.
  14. Cred ca te pot eu rezolva maine. Sper sa nu uit dimineata.
  15. Adio! 93.118.229.34 mona_c4strike@yahoo.ro - macar asta banuiesc ca e fals
  16. Am sters linkul de download. Daca pana la 12:35 nu afli parola contului postat de @EAdrian si el nu confirma sau pentru asta m2g_rst, ai ban permanent.
  17. Nu se promoveaza aici nici o ideea a unuia din voi de catre nimeni din staff si deciziile sunt luate pur obiectiv. Ati vrut threadul deschis, macar sa fie curat. Uitati-va la ultima pagina cum arata. Dupa cum zicea si gecko, cine mai injura si face offtopic are 7 zile out. Continuati.
  18. Ati luat-o pe aratura cu poze si clipuri. Closed.
  19. Incearca sa scapi de atatea backgrounduri pentru fiecare panou, e deranjat pentru ca distrage atentia si arata neprofesional. Incearca sa pastrezi o consistenta a culorilor pe intreg GUI-ul pentru ca acum sunt multe fundaluri si contin culori total diferite si puse impreuna fac niste contraste prea tari. Sa folosesti alte culori sau imagini de fundal doar daca vrei sa evidentiezi ceva ce necesita atentia utilizatorului. Incearca sa eviti imaginile de fundal cu multe detalii si contraste tari. Daca faci asta, o sa arate mult mai bine aplicatia. Acum daca ma uit la ea parca m-as uita la un site cu 50 de reclame. Arata de parca e facuta de @Nytro In rest, ca si funtionalitate imi place. Felicitari si la mai multe.
  20. Pe aici se foloseste mult uid0, eth0, root, ssh, VPN, VPS etc si multa lume nu stie ce reprezinta chestiile de genul asta. Ai putea sa explici ce inseamna si alea.
  21. Sa ia aminte vinatorii de xss si sqli de pe forum. Dupa estimarea lui @TheTime aveti 3-6 ani sa invatati mult mai multe decat potentialii contracanditati pe posturile care or sa se deshida. O sa aveti si un avataj mare fata de aia care or facut un curs de securitate prin facultate si vor sa intre in domeniu. Asa ca bagati tare si lasati mai usor cu frecatul de menta.
  22. M2G

    Fun stuff

    Scumbag @Nytro inchide threadul de fun.
×
×
  • Create New...