[ New messages · Members · Forum rules · Search · RSS ]
  • Page 1 of 1
  • 1
Link Kısaltma Scripti LKS v0.1
PaTRoNTarih: Perşenbe, 2011-01-20, 8:22 PM | Mesaj # 1
Başkomutan
Grup: Yönetici
Mesajlar: 147
Puan: Ödülleri
Rep: 0
Durumu: Çevrimdışı
Öneriler
Sitenizde www kullanmayın.
Scripti kısa domainlerinizde kullanın Örneğin : lk.tc ar.in ks.tv gibi. Domaininiz ne kadar kısa olursa verdiğiniz linklerde o kadar kısa olur. FB.GS domaini aldığımızı var sayalım.
htt p://fb.gs/ gördüğünüz gibi daha linki kısaltmadan 13 karakterlik bir link oluştu. Eğer domainimiz kısa ise gerisi scriptimize kalıyor.
Genel Özelikler
Açık kaynak kodludur. Script 4 dosyadan oluşur. index.php git.php post.php ve .htaccess dosyaları.
Php, mysql ve ajax bilgisi olan her kes scripti geliştirebilir ve düzenliyebilir.
index.php dosyasında sadece yukarıda gördüğünüz form bulunur.

Code
<form name="myForm">
<table>
<tr>
<td>linki Girin</td>
<td><input name="txtname" type="text" id="txtname" size="90" /></td>
</tr>
<tr>
<td colspan="2"><input type="button" value="Submit" onClick="ajaxFunction();" /></td>
</tr>   
</table>
<div id="message" name="message"></div>   
</form>

Çalışma Şekli
Matematik bilgisi olan her kes sayı sistemlerini bilir. Hatta sayı sistemlerini bilmeyen programcı yoktur.

2 lik sayı sisteminde 0 ve 1 vardır.
10 luk sayı sisteminde 0123456789 vardır.
16 lık sayı sisteminde 0123456789ABCDEF vardır.

Yani bir sayının ilk basamağı 2 lik sistemde 2 değer 10 luk sistemde 10 değer 16 lık sistemde 16 değer alır. Benim geliştirdiğim fonksiyonda da 65 lik sayı sistemi var. İsterseniz bu sistemi geliştirip 66-67-68-69 vs. vs. yapabilirsiniz. Bizim sistemimizde birler basamağı 65 değer almaktadır.

Örnek yapalım. 1.000.000 değerinin sırası ile karşılıklarını bulalım. Yani sayılarla sitemizde link kısaltıyoruz.

1lik sistem =11110100001001000000
10luk sistem=1000000
16lık sistem=F4240
65lik sistem= 2TIR
Linklerimizi sayı sistemlerine göre kısalttık ve gördüğünüz gibi bir milyon değeri yazmış olduğumuz fonksiyon ile 4 haneli 2TIR değeri. Yani siteniden bir milyon link alındığında linklerin en fazla uzunluğu 4 karakter olacak.htt p://fb.gs/2TIR linki sitemizden alınan bir milyonuncu link oldu ama linkimizin uzunluğu 17 karakter oldu.
Basit bir örnek daha linkimiz kaç basamak olacaksa her masamak kadar 65 sayısını çarpıyoruz.
Yani 4 karakter link için 65*65*65*65 oluyor. 17 850 625 bu kadar link verebilirsiniz 4 basamaklı.
3 basaklılarda var. 65 * 65 * 65 = 274 625 yani 18 milyon link verdiğinizde en fazla 4 karakter olacak linkiniz.
Tabi bunu arttırabilirsiniz. Nasıl mı ?

post.php dosyasındaki karakter dizisini arttırarak.
Ben linklerde kullanılan genel karakterleri kullandım. Türkçe karakterler haricindeki 0-9, a-z, A-Z ve _ ,- ,+
$karakterler="0,1,2,3,4,5,6,7,8,9,q,w,e,r,t,y,u,o, p,i,l,k,j,h,g,f,d,s,a,z,x,c,v,b,n,m,Q,W,E,R,T,Y,U, I,O,P,L,K,J,H,G,F,D,S,A,Z,X,C,V,B,N,M,-,_,+";
Sizde yeni karakterler ekliyebilirsiniz. Fonksiyonun çalışma sisteminde her hangi bir sorun olmayacaktır. Sadece eklediğiniz linkleri dizinin ortalarında bir yere ekleyin. Yani dizinin başında 0 sonunda + olmak zorunda. Şimdi !$%& leri ekliyelim.
$karakterler="0,1,2,3,4,5,6,7,8,9,q,w,e,r,t,y,u,o, p,i,l,k,j,h,g,f,d,s,a,z,x,c,v,b,n,m,!,$,%,&,Q,W,E, R,T,Y,U,I,O,P,L,K,J,H,G,F,D,S,A,Z,X,C,V,B,N,M,-,_,+";
Artık sayı sistemimiz 69 lu oldu. Artık linkleri 69*69*69 diye hesaplayabilirsiniz.

POST BACK olayı Ajax ile yapıldığı için sayfanız sonuç index.php ye geliyor.
git.php e linklerin ne kadar ziyaret edildiğini öğrene bilmek için hit arttırma kodu eklendi.

Aynı link yeniden eklendiği zaman daha önce eklenmiş olan linkin kısa kodunu veriyoruz bu şekilde tekrar eden linkleride engellemiş oluyoruz.

Eğer linklerin doğruluğunu da kontrol ederseniz. Veri tabanınızın boşuna dolmasından da kurtulmuş olursunuz. Yada güvenlik için bir güvenlik resmi ekliyebilirsiniz.

Nasıl Çalıştırabilirim.
Aşağıdan scripti indirdikten sonra yapmanız gerekenler.

MySQL veri tabanı açmak için
CREATE TABLE link ( id int(11) NOT NULL auto_increment, name text NOT NULL, link text NOT NULL, hit int(11) NOT NULL, PRIMARY KEY (id) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;
ve ilk kayıt için
INSERT INTO `link` VALUES(1, 'http://www.internetdestek.net/index.html', '0', 2);
Eğer ilk kaydı oluşturmazsanız script çalışmıyacaktır.

Düzenlemeniz gerek satırlar.
post.php de 66-67 satırdaki mysql bağlantıları.
post.php de 84. satırdaki site ismi ve adresi.
git.php de 14-15 satırdaki mysql bağlantıları.

Scripti Buradan indirebilirsiniz

burdan indir tikla
Ben yukarıdaki link kısaltma sisteminin çalışması için htaccessi bu şekilde düzenlemek zorunda kaldım.
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(link*)/([0-9a-zA-Z\_\-\+]*)$ /link/git.php?id=$2 [L]

direk ana dizinde
RewriteRule ^([0-9a-zA-Z\_\-\+]*)$ /git.php?id=$2 [L]
şeklinde kullanabilirsiniz.
Eğer sizde fazladan karakter eklerseniz htaccess te eklediğiniz karakteri tanımlamalısınız. Yada sınız vermeden tüm karakterleri alabilirsiniz.
RewriteRule ([^_]*) şeklinde.

 
  • Page 1 of 1
  • 1
Search: