• 26-07-2018, 03:57:11
    #1
    Merhaba arkadaşlar, javascript öğreniyorum 0'dan.
    2 Gündür falan kurslar ve youtube eğitimleriyle öğrenirken bir yandan "şunu yapabilirmiyim ki" dediğim projeleri deneyerek kendimi geliştirmeye çalışıyorum.
    Az önce aklıma bir proje geldi, üyelik sistemi. Daha doğrusu sayfaya veri ekleme diyebiliriz. Javascripti clientside kullanıyorum, yani bunun gerçek bir üyelik sistemi olmadığının farkındayım. Sadece kendimi geliştirmek açısından eğitimlerde Array ve Object konularındayken aklıma gelen bu projeyi kodladım. Basit birkaç satır koddan oluşuyor lakin sayfaya yazıyı yazabiliyor her halükarda.

    Proje : http://caylakgirisimci.byethost14.com/simplereg.html

    Öncelikle sorularım şunlar:
    - array konusunda olduğum için array'in içerisinde gömdüğüm verileri bir objeye bağladım. ardından array'den çektim. bu mantıklı mıdır? yoksa direk obje oluşturma falan mı gerekir yolu nedir?
    - aynı olayı daha kolay yapmanın yolu var mıdır? nasıl yapabilirim?
    - kodlarımdaki hataları, eksikleri ve gereksiz kısımları söyleyerek, değiştirmem gereken kısımları belirtir misiniz?

    Üstteki soruları yanıtlarsanız kendi hatalarımı ve eksiklerimi kolayca kapatabileceğimi düşünüyorum. Çok teşekkür ederim

    Kaynak kodlar:

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>TUT 17 # -</title>
    <script>
    var UserIDs = new Array();
    function members(id,username,password){
    this.id = id;
    this.username = username;
    this.password = password;
    }
    function register(){
    var user = prompt("username");
    var password = prompt("password");
    // 255 is the limit for users
    var ids = Math.floor(Math.random()*255);
    if(UserIDs[ids] == null){
    UserIDs[ids] = new members(ids,user,password);
    alert("COMPLETE");
    refresh(ids);
    }else{
    alert("CAN'T COMPLETE, Not Enough Space For You, Sorry!");
    }
    
    }
    
    
    function refresh(x){
    
    var indexPoint = x;
    var content = document.getElementById("members").innerHTML;
    document.getElementById("members").innerHTML=content+"<br />" + UserIDs[indexPoint].id + " " + UserIDs[indexPoint].username + " " + UserIDs[indexPoint].password;
    }
    
    
    </script>
    </head>
    <body onload="refresh();">
    
    <button onclick="register();">+</button>
    <br />
    <p><b>Users</b></p>
    <br />
    <div id="members"></div>
    </body>
    </html>
  • 26-07-2018, 04:13:29
    #2
    caylakgirisimci adlı üyeden alıntı: mesajı görüntüle
    Merhaba arkadaşlar
    var ids = Math.floor(Math.random()*255);
    if(UserIDs[ids] == null){
    
    
    }else{
    
    
    }
    burada amacin nedir?
  • 26-07-2018, 04:24:10
    #3
    SaidYildiz adlı üyeden alıntı: mesajı görüntüle
    var ids = Math.floor(Math.random()*255);
    if(UserIDs[ids] == null){
    
    
    }else{
    
    
    }
    burada amacin nedir?
    once 255 limitli bir rastgele sayi urettim id olsun kullaniciya diye, 1,2,3,4diye verebilirdim ama nasil olur bilmiyorum, biraz uğraşmam gerekir dongüler ve variablelarla, if kisminda da projede + ya istedigin kadar basip yeni bir seyi yazdırabilirsiniz siteye alt alta ornegin a kisisini ekledi , complete dedikten sonra bir daha + ya basip yeni birini daha ekleyebiliyor, fonskiyonda da rastgele sayiya girilen degeri koyuyordu, 255 deger arasda zor ama kucuk 5-10 gibi rndom degerlerde ayni sayi geldigi zaman uzerine yaziyordu onu onlemek icin yaptim eger rastgele urettigin sayinin arrayi doluysa elleme yer yok de dedim.
  • 26-07-2018, 04:38:55
    #4
    caylakgirisimci adlı üyeden alıntı: mesajı görüntüle
    once 255 limitli bir rastgele sayi urettim id olsun kullaniciya diye, 1,2,3,4diye verebilirdim ama nasil olur bilmiyorum, biraz uğraşmam gerekir dongüler ve variablelarla, if kisminda da projede + ya istedigin kadar basip yeni bir seyi yazdırabilirsiniz siteye alt alta ornegin a kisisini ekledi , complete dedikten sonra bir daha + ya basip yeni birini daha ekleyebiliyor, fonskiyonda da rastgele sayiya girilen degeri koyuyordu, 255 deger arasda zor ama kucuk 5-10 gibi rndom degerlerde ayni sayi geldigi zaman uzerine yaziyordu onu onlemek icin yaptim eger rastgele urettigin sayinin arrayi doluysa elleme yer yok de dedim.
    amacin en fazla 255 kadar kullanici yazdirmaksa yanlis bir yontem mesela matematiksel olarak cok dusuk bir oran olsa da 5 tane kullanici eklemeye calistim diyelim fakat 5'inde de bana ayni sayiyi rasgele olarak verirse girdigim degerlerden sadece 1 tanesi girildi diger 4 ugrasim bosa gitti. unutma sadece javascript icin degil ID tc kimlik numarasidir. herkeste farkli olur. senin bu durumda sirf rasgelelik durumunda ayni sayi denk geldi diye cocugu oldurdun ona o tc numarasini veremedin diye. auto increment olay sqlde. yani her zaman bir oncekini arttirir. boylece hic bir zaman onceki verilmis idleri alamaz. peki 1 - 2 -3 verildi 2 silindi bir sonraki 4 mu yoksa 2 mi diye sorarsan 4tur cevabi cunku eger sen kodu duzgun yazamazsan mesela basit bakiyeli bir kredili bir sistemde 2 numarali uyeyi icinde 20 kredisi varken sildin. ama sadece uye tablosundan silindi kodlarina gore ve kredi tablosunda useridsi 2 olan satir silinmedi sonraki uye kayit oldugunda 20 krediye sahip olur bu tarz hatalar buglar cogaltilabilir.

    haricinde en azindan gelen datalar bos mu degil mi seklinde bir kontrol saglayabilirdin.
  • 26-07-2018, 04:47:17
    #5
    SaidYildiz adlı üyeden alıntı: mesajı görüntüle
    amacin en fazla 255 kadar kullanici yazdirmaksa yanlis bir yontem mesela matematiksel olarak cok dusuk bir oran olsa da 5 tane kullanici eklemeye calistim diyelim fakat 5'inde de bana ayni sayiyi rasgele olarak verirse girdigim degerlerden sadece 1 tanesi girildi diger 4 ugrasim bosa gitti. unutma sadece javascript icin degil ID tc kimlik numarasidir. herkeste farkli olur. senin bu durumda sirf rasgelelik durumunda ayni sayi denk geldi diye cocugu oldurdun ona o tc numarasini veremedin diye. auto increment olay sqlde. yani her zaman bir oncekini arttirir. boylece hic bir zaman onceki verilmis idleri alamaz. peki 1 - 2 -3 verildi 2 silindi bir sonraki 4 mu yoksa 2 mi diye sorarsan 4tur cevabi cunku eger sen kodu duzgun yazamazsan mesela basit bakiyeli bir kredili bir sistemde 2 numarali uyeyi icinde 20 kredisi varken sildin. ama sadece uye tablosundan silindi kodlarina gore ve kredi tablosunda useridsi 2 olan satir silinmedi sonraki uye kayit oldugunda 20 krediye sahip olur bu tarz hatalar buglar cogaltilabilir.

    haricinde en azindan gelen datalar bos mu degil mi seklinde bir kontrol saglayabilirdin.
    tamamdir hocam, evet gelen bos mu diye baktirabilirdim onu yapabilirm onda sıkıntıyok , peki php yazarken idyi bos mu geciyorduk unuttum, sanrim bos geciyorduk mysql oto veriyordu biz ek olarak tc falan verip onu key yapiyorduk. peki hocam sey sorabilir miyim nodejs ile mesela ben bunu phpde oldugu gibi veritabanina yazdırabilirim degil mi bir sonraki amacim nodejs ve angular ogrenmek ama tam olarak bunu yapabilir mi bilmiyorum. ayrica eger site ici bir clientside yani bu proje icin denemelik ardisik idler uretmek istesem globalde var id olusturdum diyelim, fonskiyonda +1 yapıp adama verdim diyelim, daha sonra verip 2 oldu ya, ben bu değerin artik 2 oldugunu globaldeki yani fonskiyon disindaki degere nasil soyleyecegim, sonucta ben fonksiyonu baska yerden cagirdim fonksiyon da ana idyi aldi editledi isi bitti, bir daha yaptiginda yine 1 olarak görecek, return yapsam da ana var id; degismeyecek. bunu nasil halledebiliriz. kisaca disarda bir x var, fonskiyon icinde bu x i degistiemek mumkun mu return haricinde bir şekilde.
  • 26-07-2018, 04:58:42
    #6
    caylakgirisimci adlı üyeden alıntı: mesajı görüntüle
    tamamdir hocam, evet gelen bos mu diye baktirabilirdim onu yapabilirm onda sıkıntıyok , peki php yazarken idyi bos mu geciyorduk unuttum, sanrim bos geciyorduk mysql oto veriyordu biz ek olarak tc falan verip onu key yapiyorduk. peki hocam sey sorabilir miyim nodejs ile mesela ben bunu phpde oldugu gibi veritabanina yazdırabilirim degil mi bir sonraki amacim nodejs ve angular ogrenmek ama tam olarak bunu yapabilir mi bilmiyorum. ayrica eger site ici bir clientside yani bu proje icin denemelik ardisik idler uretmek istesem globalde var id olusturdum diyelim, fonskiyonda +1 yapıp adama verdim diyelim, daha sonra verip 2 oldu ya, ben bu değerin artik 2 oldugunu globaldeki yani fonskiyon disindaki degere nasil soyleyecegim, sonucta ben fonksiyonu baska yerden cagirdim fonksiyon da ana idyi aldi editledi isi bitti, bir daha yaptiginda yine 1 olarak görecek, return yapsam da ana var id; degismeyecek. bunu nasil halledebiliriz. kisaca disarda bir x var, fonskiyon icinde bu x i degistiemek mumkun mu return haricinde bir şekilde.
    1. nodejs yapar.
    2. https://codepen.io/anon/pen/GBvNjq
  • 26-07-2018, 08:23:02
    #7
    Ben yazdigin kodun geldigi anlamdan ziyade yazim tarzinda bilgi vermek istiyorum.
    members functionunu Member seklinde tanimlarsan daha anlamli olur. Buyuk harfle baslamali cunku function degil class olarak tanimliyorsun, functionlardan bir farki olmali. Ayrica sonundaki s harfine gerek yok cunku yazdigin class sadece bir objeyi temsil ediyor. O yuzden s harfine gerek yok.

    Ayrica
    function refresh(x){
    var indexPoint = x; }
    demissin. x yerine indexPoint yazarsan daha anlamli olur. Degiskenlere verdigin isimler onemli. Iki gun sonra baktigin zaman bu x ne diye dusunmemek gerekiyor. Degiskeni gorunce bu anlama geliyor diyip cekilmelisin. Diger turlu ne anlama geldigini anlamak icin kodu okumak zorunda kalirsin. Basarilar!
  • 26-07-2018, 08:51:41
    #8
    xfabsx adlı üyeden alıntı: mesajı görüntüle
    Ben yazdigin kodun geldigi anlamdan ziyade yazim tarzinda bilgi vermek istiyorum.
    members functionunu Member seklinde tanimlarsan daha anlamli olur. Buyuk harfle baslamali cunku function degil class olarak tanimliyorsun, functionlardan bir farki olmali. Ayrica sonundaki s harfine gerek yok cunku yazdigin class sadece bir objeyi temsil ediyor. O yuzden s harfine gerek yok.

    Ayrica
    function refresh(x){
    var indexPoint = x; }
    demissin. x yerine indexPoint yazarsan daha anlamli olur. Degiskenlere verdigin isimler onemli. Iki gun sonra baktigin zaman bu x ne diye dusunmemek gerekiyor. Degiskeni gorunce bu anlama geliyor diyip cekilmelisin. Diger turlu ne anlama geldigini anlamak icin kodu okumak zorunda kalirsin. Basarilar!
    Teşekkür ederim hocam, members vs. gibi kullanma sebebim şu, dilde tanımlı şeyler neler tam bilmediğim için onlara denk gelmemek için, örneğin array zaten tanımlı olduğundan var array gibi tanımlayamıyoruz ya, hani denk gelir sıkıntı olmasın diye belki içerde member vardır falan gibi



    güncel
  • 26-07-2018, 20:12:00
    #9
    Bende yeniyim. öğrenmek için hangi kaynakları kullandınız öğrenebilir miyim,