• 07-05-2014, 13:50:03
    #1
    Merhaba arkadaşlar,

    Sayfa id lerim aşağıdaki gibi rakamlardan oluşuyor.

    Örnek: sayfa.php?id=123

    Ben bunu hem rakam hem harf yapabilirmiyim?

    İstediğim Örnek: sayfa.php?id=A1B2C3


    Teşekkürler.
  • 07-05-2014, 14:55:55
    #2
    Hem rakam hem harf yapma amacın nedir bunu belirt yardımcı olabilelim.

    url sayfa.php?id=123 diyelim burada ki id değerinin içerisinde ki 123'ü alıp veritabanından ona uygun verileri getiriyor diyelim.

    Sen bunun hem harf hem rakam olmasını istiyorsan veritabanın'da kayıtlı olarak bulunan 123 değerini'de değiştirmen gerekecek hem harf hem rakam olarak sonuçta karşılaştırmalı veri çekiyor.

    He yok ben sadece url'de rakamların gözükmesini istemiyorum harfler'de olsun fakat gösteriş olsun diyorsan yardımcı olabilirim.

    URL'de böyle gözükür = 1ABF2F3
    Fakat kodların onu böyle algılar = 123
  • 07-05-2014, 15:00:39
    #3
    🌐 𝘀𝗼𝗰𝗶𝗳𝗹𝘆.𝗰𝗼𝗺
    Mesela 8 karakterli random sayı ve harf üreten bir kod yaz. Veritabanında tablolarına benzersiz_id diye bir sütun aç. Her veri girişinde benzersiz_id kısmına bu 8 karakterli veri girilsin.

    Linkleri yazdırırken ["id"] değilde ["benzersiz_id"] şeklinde yazdırabilirsin.

    Kendi sitemde öyle kullanıyorum: www.mailcaptcha.com http://www.mailcaptcha.com/Mail.aspx?id=KF0XN86E gibi mesela

    Not: php bilmiyorum, mantığını anlattım.
  • 07-05-2014, 15:10:50
    #4
    Üyeliği durduruldu
    aslında bu yapılabilir (son cümlemi de okumalısın)
    veritabanında tuttuğumuz herhangibir veriyi daha sonra yeniden çağırmak için verinin bulunduğu satırdaki herhangibir değere atıfta bulunmamız gerekir. Bu değer benzersiz olmazsa çakışacaktır. bu nedenle id değerini kullanırız. İdler sistem tarafından otomatik olarak öncekinin 1 fazlası şeklinde verildiğinden asla çakışmazlar. yani aynı id başka bir veriye gitmez.
    Senin bunu yapabilmen için 2 farklı yol gösterebilirim.
    ID'leri otomatik yapmayı devre dışı bırakıp bir kod bloğu ile 3 harf 2 rakam gibi bir algoritma yazıp kendin oluşturabilirsin. ama bu ileride çakışacaktır. Zor da olsa yıllar sonra da olsa bir gün çakışacaktır. bu nedenle bunu kullanamazsın.

    bir diğer yol ise veritabanında id alanını bozmayıp id dışında başka bir değerden daha veri eklemek ve bir procedure ile bunu ayrıştırmak olacaktır. mesela başlık sütununun ilk üç harfi vs gibi. bu durumda çakışma yaşanmaz istediğin sonucu da alırsın. ancak bir sürü gereksiz kod yazman gerekeceğinden sistem performansını olumsuz etkileyecektir.

    son bir yol da bazen kullanılır id'yi çakışmayacak bir şekilde formulize etmektir. gün ay yıl saat dakika saniye gibi değerleri karıştırıp ortaya bir sonuç çıkarabilirsin.
    ilk yöntem sistemi bozacağı ve diğer iki yöntem ekstra yük getireceği için kullanılamaz.
    Arkadaşın yazdığı gayet makul ve mantıklı



    BR9 adlı üyeden alıntı: mesajı görüntüle

    He yok ben sadece url'de rakamların gözükmesini istemiyorum harfler'de olsun fakat gösteriş olsun diyorsan yardımcı olabilirim.

    URL'de böyle gözükür = 1ABF2F3
    Fakat kodların onu böyle algılar = 123
    tabi böyle birşey istemek yerine daha anlamlı url yönlendirmeleri yapmak istemiyorsan bunu yapabilirsiniz.

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 15:10:50 -->-> Daha önceki mesaj 15:09:24 --

    tolgasen adlı üyeden alıntı: mesajı görüntüle
    Mesela 8 karakterli random sayı ve harf üreten bir kod yaz. Veritabanında tablolarına benzersiz_id diye bir sütun aç. Her veri girişinde benzersiz_id kısmına bu 8 karakterli veri girilsin.

    Linkleri yazdırırken ["id"] değilde ["benzersiz_id"] şeklinde yazdırabilirsin.

    Kendi sitemde öyle kullanıyorum: www.mailcaptcha.com http://www.mailcaptcha.com/Mail.aspx?id=KF0XN86E gibi mesela

    Not: php bilmiyorum, mantığını anlattım.
    ne kadar karmaşıkta olsa bu matematiksel olarak benzersiz olamaz.
    GUID veriler araştırılabilir konuyla ilgili. %100 benzersiz olduğu konusunda bir çok insan hem fikir. ama bu da kesin doğru değil.
  • 07-05-2014, 15:14:24
    #5
    🌐 𝘀𝗼𝗰𝗶𝗳𝗹𝘆.𝗰𝗼𝗺
    Kesinlikle benzersiz olamaz. Onu zaten sorgulaması gerekir. Sonsuz döngü içerisinde önce o idnin olup olmadığını denetler. Eğer yoksa döngüden çıkarır ve o idyi veritabanına yazar.
  • 07-05-2014, 15:17:33
    #6
    Üyeliği durduruldu
    tolgasen adlı üyeden alıntı: mesajı görüntüle
    Kesinlikle benzersiz olamaz. Onu zaten sorgulaması gerekir. Sonsuz döngü içerisinde önce o idnin olup olmadığını denetler. Eğer yoksa döngüden çıkarır ve o idyi veritabanına yazar.
    evet haklısın mantık olarak böyle çalısılıyor ama "yazılımcı olmak" burada bizi sıkıntıya sokuyor. bin defa üst üste sistemde var olan bir id'yi atama ihtimali var.
    bir milyon farklı veritabanında 100 yılda 1 defa böyle birşey belki olur. ama ihtimali var. yine de projenin önemine göre bunu göz önünde tutmakta fayda var
    guid'in benzersizliğinin tartışıldığı bir konuda..
    ha bu kadar ince hesaba gerek yok aslında ama ne için istediğini yazmayınca ben ihtimalleri söylemek istedim.

    şunu da ekeleyeyim. eğer gerekli bir şey değilse maskeli yönlendirme en pratik çözüm olur. ne kadar az yazılırsa o kadar faydalıdır sisteme
  • 07-05-2014, 15:40:41
    #7
    BR9 adlı üyeden alıntı: mesajı görüntüle
    Hem rakam hem harf yapma amacın nedir bunu belirt yardımcı olabilelim.

    url sayfa.php?id=123 diyelim burada ki id değerinin içerisinde ki 123'ü alıp veritabanından ona uygun verileri getiriyor diyelim.

    Sen bunun hem harf hem rakam olmasını istiyorsan veritabanın'da kayıtlı olarak bulunan 123 değerini'de değiştirmen gerekecek hem harf hem rakam olarak sonuçta karşılaştırmalı veri çekiyor.

    He yok ben sadece url'de rakamların gözükmesini istemiyorum harfler'de olsun fakat gösteriş olsun diyorsan yardımcı olabilirim.

    URL'de böyle gözükür = 1ABF2F3
    Fakat kodların onu böyle algılar = 123
    Cevaplar için çok teşekkür ederim.
    Aslında gösteriş olsun diye değil ancak sorgulama yaparken harflerinde olması gerekiyor. Yardımcı olursan memnun olurum.
    Biraz araştırdım, "id"lerin sayılardan oluşması zorunlu ama başka bir sütun ile eşitlenebiliyormuş. Örneğin "diger_id" Bu "diger_id" ye 1A2B3B yi ekleyip eşitlenebiliyormuş. Ama örneğine rastlayamadım.
  • 07-05-2014, 15:45:13
    #8
    Üyeliği durduruldu
    Chapa adlı üyeden alıntı: mesajı görüntüle
    Biraz araştırdım, "id"lerin sayılardan oluşması zorunlu ama başka bir sütun ile eşitlenebiliyormuş. Örneğin "diger_id" Bu "diger_id" ye 1A2B3B yi ekleyip eşitlenebiliyormuş. Ama örneğine rastlayamadım.
    ek bilgi olsun.
    böyle bir zorunluluk yok.
    21EC2020-3AEA-1069-A2DD-08002B30309D bu bir id dir.
  • 07-05-2014, 15:47:40
    #9
    BR9 adlı üyeden alıntı: mesajı görüntüle
    Hem rakam hem harf yapma amacın nedir bunu belirt yardımcı olabilelim.

    url sayfa.php?id=123 diyelim burada ki id değerinin içerisinde ki 123'ü alıp veritabanından ona uygun verileri getiriyor diyelim.

    Sen bunun hem harf hem rakam olmasını istiyorsan veritabanın'da kayıtlı olarak bulunan 123 değerini'de değiştirmen gerekecek hem harf hem rakam olarak sonuçta karşılaştırmalı veri çekiyor.

    He yok ben sadece url'de rakamların gözükmesini istemiyorum harfler'de olsun fakat gösteriş olsun diyorsan yardımcı olabilirim.

    URL'de böyle gözükür = 1ABF2F3
    Fakat kodların onu böyle algılar = 123
    gallisene adlı üyeden alıntı: mesajı görüntüle
    ek bilgi olsun.
    böyle bir zorunluluk yok.
    21EC2020-3AEA-1069-A2DD-08002B30309D bu bir id dir.
    Ancak 1A2B3C 'yi "id" olarak girdiğimde sayfa.php?id=1A2B3C çalışmıyor.