Funal
Arkadaşlar bir etiket tablosunda etiket adı ve etiket url alanlarım var. ben ekleme işlemi yapmadan önce
input değerini ve sef link fonksiyonundan gelen değeri aratıp sonuc 0 ise işlem yaptırıyorum.
etiket url alanım unique bunu başta belirtiyim.
Şimdi ben Göl diye bir etiket girdiğimde gol şeklinde sef link çıktısı var ama
Gol (Futboldaki) diye bir etiket eklediğimde sef link çıktısı Göl etiketinin sef link çıktısı ile çakışıyor.
Yukarıda belirttiğim gibi etiket url unique ve hata verecek.
Aklıma 2 tür işlem geliyor
1. etiket url'i kaldırıp etiketleri sayfaya çağırdığımda sef link ile url oluşturarak.
2. etiketin base64 yada sha1 ile değerini alıp tabloda yeni alana bunları kayıt ederek
Birde kullanıcının ekleyipte kullanılmayan etiketlerni mysql ile zamanlı nasıl silerim
serturk
Etiketler her hangi bir konu, yazı, ya da başka bir şeye bağlı değil mi?
Gol'a tıkladığım da onunla ilgili neleri görüyorum nasıl görüyorum?
Gol a tıkladığım da etiketler tablosundan gol un id sini kullanan içerikleri listelersen sorun olmaz, doğrudan isim değil de ilişkileri id üzerinden yürütürsen, gol göl fark etmez, istediğin kadar bağımsız gol eklersin farklı içeriklere.
Ama dediğim gibi, etiketleri sen listeledin, ben listeden birisine tıkladığım da ne görüyorum nasıl görüyorum gösterme sorgunu da görebilir miyim?
eski kullanılmayan etiketleri zamana dayalı silmek istersen, önce her kullanıldığın da bir alana o zaman dilimini kaydetmen gerekir.
Mesela son_kullanilma diye bir alan eklersin, etiket kullanıldıkça buna time() değerini eşitleyerek kullanıldığı zamanı belirlersin, cron üzerinden de periyoduk bir çalışma ile
Etiket::where('son_kullanilma','<',time() - (60*60*24*15))->delete();
dersin böylece 15 gündür kullanılmayan etiketler silinir.
60 saniye * 60 = 1 saat * 24 = 1 gün * 15 = 15 gün.
xsearch
Göl'ü neden "Göl" diye tutmuyorsun????? onu anlamadım.
Funal
İlişkilere girme ben etiketi eklediğimde etiket_url i unique alıyorum.
Burada Göl etiketini eklediğimde sef link etiket_url e gol çıktısını yazdıracak.
Fakat ben Gol etiketi eklediğimde etiket_urlde zaten 1 adet gol olduğu için error atacak
Burada benim bu ikisini karıştırmadan tabloda tutmam lazım ve tabloda da tekrarlanmayacak
İlişkiler ayrı tabloda
Funal
Linkte problem var.
Birde Göl'ü neden Göl diye tutuyorsun derken ne demek istedini anlamadım
xsearch
@funal : Göl'ü neden "Göl" olarak kaydetmiyorsun veritabanına :))
Gönderdiğim linkte sorun yok tasarım hatası var.
Artık tarayıcılar unicode kodları destekliyorlar. O yüzden etiketlerde türkçe karakter kullanmanın sıkıntı olacağını düşünmüyorum.
Funal
@xsearch Göl zaten etiketin adı.
Onu mecburi tutacam. sizin demek istediğiniz sef linkten çıktısı olan gol olmasın.
Peki seo'da Türkçe karakter sıkıntı çıkartırmasın ?
xsearch
Niye çıksın??? daha iyi hatta

Linklerin isim olarak yazılma sebebi Link eşleşmesi (URL Matching) puanını almak. Bu durumda "Göl" araması için "gol" mü daha eşleşiyor "Göl" mü

Unicode artık bir lüks değil gereklilik. Özellikle semantik web ağırlıklı web 3.0 ın önem kazanmaya başladığını düşünürsek eski eğilimlerimizi bırakmamız gerekiyor.
Funal
xsearch wrote:Niye çıksın??? daha iyi hatta

Linklerin isim olarak yazılma sebebi Link eşleşmesi (URL Matching) puanını almak. Bu durumda "Göl" araması için "gol" mü daha eşleşiyor "Göl" mü

Unicode artık bir lüks değil gereklilik. Özellikle semantik web ağırlıklı web 3.0 ın önem kazanmaya başladığını düşünürsek eski eğilimlerimizi bırakmamız gerekiyor.
Aslında mantıklı. hem 2 iş yapmış olmuyorsun. Teşekkürler eve gectiğim vakit işe koyulacam
Funal
Yeni konu açmak istemedim. Buradan aynı konu üzerinden devam ederek sorumu hemen sizlerle paylaşayım
Öncelikle konuyu anlatmadan yaptığım algoritmadan bahsedeyim.
Kullanıcı ajax ile etiketi girip etiketi ekliyor ve Serverdan kullanıcıya dönüş etiket id ve serverda oluşturulan etiket şablonu ( wordpressteki gibi aklınıza gelsin ).
Daha sonra ajax success ile etiket şablonunu formda gözükmesini istediğim yere append ile yolluyorum.
Ardından form'un içinde bulunan hidden tipli input'a etiket id'yi ekliyorum. Buraya kadar herşey gıcır.
Şimdi soruma gecelim. Kötü niyetli bibr kullanıcı (fazla paronayak gibi hissediyorum kendimi ama olsun ) etiket idlerinin bulunduğu inputtaki değerleri değiştirdiğinde
form post edildiğinde benim arka planda nasıl bir yol izlemem gerekir ?
Roni
Şöyle olabilir. Kullanıcı etiketi yolladı, sunucu cevap verdi ve sizin dediğiniz gibi etiketi ve id bilgisini cevap olarak gönderdi,Bence bu gibi işlerde id ve etiketi sessionda saklayın ve kullanıcının değiştirme ihtimaline karşı post işlemi yapıldığında inputtaki değeri ,sessiondaki değer ile karşılaştırın.
Funal
Roni sessionda şöye bir kuşkum var.
Ben sayfa yüklendiğinde sessionları silip , ajax ile etiket eklerken tekrar oluşturuyorum.
Ben tarayıcının bir sekmesinde etiket etleyerek oluşturduğum sessionu yeni sekme ile aynı sayfayı açınca sessin'ı silebiliyorum ve
buda bin önceki sekmede oluşturduğum etiketlerin kontrolü ortadan kalkıyor.
Roni
Ozaman veritabanı tablosunda yani etiket eklenen tabloya bir adet benzersiz sütun ekleyin. Her eklemede id bilgisi ile birlikte uniqid() ile benzersiz bir anahtar oluşturup buna göre kontrol edin. (Neden sessionları siliyorsunuz)
Veya id bilgisini mcrypt() ile şifreleyin ve tekrar post edildiğinde bu bilgiyi decrypt yaparak kontrol edin. (Key bilgisine göre değişip değişmediği anlaşılabilir)
Funal
Sessionları silmemin sebebi şöyle
İlk önce session has ile kontrol ediyorum false ise session oluşturuyorum, true ise oluşturduğum sessionun değenini alıp aynı isimde yeni bir session oluşturuyorum ve değerinide eski sessionun değeri + ', ' eklenilen etiketin id'si
Böylece ilk eklenilen session değeri 1. Ben ikinci etiket ekledim böylece session'nun değeri 1,2 olacak
Funal
@Roni teşekkür ederim güzel fikirlerin Cryp ile şifreleyerek hedden'a gönderecem. Eğer post esnasında hata alır isem hidden'nin değerini silip yeniden etiket girmesini isticem
Roni
Bence de bu iyi bir çözüm.