Talha ÇOPUR Blog

standart dışı site, kendimce kendime destek…

internette değişik testler yapılıyor, istatistikler sunuluyor, Türkiye’de, Dünyada en çok kullanılan çözünürlük şu deniyor, bu deniyor…

Dedim ki bu testi kendim yapayım, bir hafta önce % 90 ı Türkiye ziyaretçisi olan bir web projem içerisine statscounter kurdum, bir hafta sonrasında ki ziyaretçilerin web sitesini izledikleri çözünürlük istatistiği şöyle gelişmiş;

istatistik001.jpg

ResName Total
1024×768 : 8306
1280×1024 901
1280×800 707
1152×864 474
800×600 443
1440×900 135
1280×960 115
1280×768 54
1280×720 45
1680×1050 20
1400×1050 17
960×600 10
1600×1200 10
(unknown) 9
1024×640 8
640×480 7
1088×612 5
1280×854 5
1360×768 4
240×320 3
1200×800 3
1280×996 1
960×720 1

Görüntülenme toplam : 27, bugün : 0 kez...

Persits ile upload

Çoklukla kullanıyorum bu komponenti çalıştığım projelerde, hem kullanışlı oluyor hem de hızlı, bazı arkadaşlarım çok soruyorlardı bu mevzuyu,

Web sitesine / servera dosya veya resim yükleme, yüklenen resmi/dosyayı veritabanına kaydetme, yüklenen fotoğrafın adını otomatik değiştirme, değiştirirken içerisine bugünün tarihini, veritabanına kaydolurken kaydolduğu ilgili ID numarasını dosya ismi olarak belirlettirme, yüklenen resimin ebatını otomatik olarak belirli ebata getittirme gibi… bu mevzuları kapsayan örneği bir form, bir veritabanı(access) ve bir de upload aşaması olarak download için sitede downloada sundum.

Yüklenen resimleri göstermesi adına basit birde görüntüleme kısmı koydum.

Yalnız bu örneğin çalışması için sunucuda kesinlikle ASP Persits.Upload ve ASP Persits.Jpeg component(bileşen) lerinin kurulu olması gerekiyor.

Örneği download (22 kb)

Örnek içerisinden kısa notlar ;

Dosya ismi için tarih şu şekilde elde edildi

<%
cpr1=Year(date) ‘ tarih için Yılı öğrendik

if month(date) < 10 then ‘ eğer ay 10 rakamından küçükse başına 0 ekledik
cpr2 = “0″ & month(date)
else
cpr2 = month(date) ‘ değilse ayı olduğu gibi aldık
end if

if Day(date) < 10 then ‘ eğer gün 10 rakamından küçükse başına 0 ekledik
cpr3 = “0″ & Day(date)
else
cpr3 = Day(date) ‘ değilse günü olduğu gibi aldık
end if

‘ tarih oluşturma bölümü bitti
%>

Veritabanına bağlanıldı ve kayıtın kaydedileceği ID numarasını alındı

<%

Set baghlanti = Server.CreateObject(”Adodb.Connection”)
baghlanti.open = “Provider=Microsoft.Jet.Oledb.4.0;Data Source=”& server.MapPath(”data.mdb”) &”;”

‘ Dosyanın ismine veritabanındaki kayıt ID sini iliştirmek için ID yi alıyoruz
set say = Server.CreateObject(”Adodb.Recordset”)
say.open “SELECT top 1 * FROM cprdata ORDER BY cprID desc”,Baghlanti, 1, 3 ’son kayıtı bulduk
saynumara = say(”cprID”)+1 ’son kayıta 1 ekledik ki birazdan eklenecek kayıda karşılık gelecek ID olmuş olsun.

%>

 ve yine upload edilen dosyanın isminin sonuna bir takım randomize rakamlar iliştirilmek üzere rastgele sayılar üretildi

<%

Randomize
Numara = INT (RND*9999999999)+1

%>

Upload edilmesine müsaade edilen dosyalar belirlendi

<%

For Each File in Upload.Files
If FILE.EXT<>”.rar” then ‘bu tip dosyalara müsaade veriyoruz
If FILE.EXT<>”.zip” then
If FILE.EXT<>”.doc” then
If FILE.EXT<>”.xls” then
If FILE.EXT<>”.pdf” then
If FILE.EXT<>”.flv” then
If File.ImageType=”UNKNOWN” Then  ‘biraz önce müsaade verdiklerimizin dışında bütün resim formatlarını kabul ediyoruz.
Response.Write “Yüklemek istediğiniz dosya türüne müsaade verilmemiş / yasaklanmış…”
Response.End
End If
End if
End if
End if
End if
End if
End if
Next

%>

Sistemin otomatik olarak gönderilen fotoğrafı genişliğine göre paralel olarak küçültmesi sağlandı (Ben 600px genişlik verdim. Gönderilen fotoğraf dosyası otomatik 600px genişliğinde olacak, yüksekliği de ona göre paralel küçülecek)

<%

Set Jpeg = Server.CreateObject(”Persits.Jpeg” )
Jpeg.Open Path
Jpeg.Width = 600
jpeg.Height = Jpeg.OriginalHeight * Jpeg.Width / Jpeg.OriginalWidth
Jpeg.Canvas.Brush.Solid = False
Path2 = Server.MapPath(dosyayeri & “/” & dosyaadi)
Jpeg.Save Path2
%>

Görüntülenme toplam : 22, bugün : 0 kez...

.aspx li sayfalar üretebilmek, web uygulamalarına localden windows formları ile kontrol edebilmek adına csharp a merak sardığım ve çoğu zaman çıkmazlara girip internette csharp ile ilgili program, konu örnekleri , scriptler aradığım şu günlerde açıkcası pek kaydadeğer bir bilgi bulamadım. Genelde bütün sitelerde aynı örnekler ve konular var. Örneğin ; veritabanına bağlantı yapıp, bununla bağlantılı olarak verileri çekme, kayıt ekleme, silme, düzenleme gibi bir örnek veya makale bulamadım. Bilgehan ÜNÜBOL isimli bir arkadaşın geliştirmiş olduğu telefon rehberi örneğini buldum. Konuyu anlama adına o örnek üzerinde çalıştım ve bayağı faydalı oldu benim için. Kendisine de bu vesile ile teşekkür ediyorum.

Aşağıda ki telefon rehberi örneği; Access veritabanına bağlanıp, Listview toolu aracılığı ile, veriler üzerinde işlem yapma (listeleme, ekleme, silme, düzenleme) metodlarını gösteriyor. Bu konuyla ilgili ufak bir parantez açacak olursam, bir kaç gün içerisinde DataGrid tool kullanarak ve SQL Server veritabanı üzerinde aynı işlemi yapan başka bir örneği buraya koymayı düşünüyorum.

Bu telefon programını büyük ölçüde geliştirmeyi düşünüyorum. Çünki şu an için bazı hatalar sözkonusu, aklımdan geçen ama yapamadığım işlevler var. Mesela; listview üzerinde, üzerine geldiğim satırın standart mavi olan backround rengini bir türlü benim istediğim renk olarak değiştiremedim, beceremedim (kodlar incelenirse oraya denediğim yöntemleride // işareti ile keserek bilerek bıraktım.) Bunun gibi mevzuları öğrendikçe geliştirip, buraya downloada sunmayı düşünüyorum. Bu noktalarda ek bilgi vermek isteyen arkadaşların yorum köşesinde fikirlerini beyan etmelerinden de ayrıca memnuniyet duyarım. En basitinden bu renk mevzusunu çözmek adına.

Visual Studio 2005 ortamında hazırlanan telefon rehberi örneğinde aşamalar şu şekilde gerçekleşmiştir,
- Access de veritabanı oluşturuldu (tabi ben yukarıda bahsettiğim arkadaşın oluşturduğu vt yi kullandım, yeniden oluşturmadım) veritabanı bin/debug klasöründe yer alıyor.
- 2 adet Form oluşturuldu, (Telefon rehberi ana ve hakkımızda)
- Listview, textbox ve butonlar oluşturuldu
- İlgili kısımlara ait kodlamaları girildi

Program download edilerek bu kodlamalar ve programın çalışır hali görülebilir.

telfprog0011.jpg

telefon rehberinin kodlama kısmından ufak bir örnek

Telefon Rehberi Programını download

Programın görüntülenebilmesi, ve çalıştırılabilmesi için
Visual Studio 2005 kurulu olmalıdır.

Görüntülenme toplam : 125, bugün : 1 kez...

css yenilendikçe, kendini geliştirdikçe, firefox ve ie7 için anlaşılır olan kodlar ie6 için facia ile sonuçlanıyor. 10 arkadaşımdan 4 tanesinin ie6 kullanması beni, sitenin ie6 ya uyumlu olarak hazırlanmasına itti. Çeşitli denemelerime rağmen; ie7 kurulu bir bilgisayara aynı zamanda ie6 yı kurma gibi bir şansım olmadı. Web sitesi oluştururken ie6 da nasıl göründüğünü kontrol etmek için çeşitli uygulamalar ve servisler geliştirilmiş.

Bir yazılım var ;
http://tredosoft.com/Multiple_IE

Webden online screenshot yakalayarak test etmemize imkan sunan online bir servis var ;
http://browsershots.org/

Görüntülenme toplam : 59, bugün : 3 kez...

Dün oluşturduğum bir web sitesinde bu hata üzerinde biraz zaman kaybettim. Genelde Persist komponentini kullanıyordum, pek sorun çıkmıyordu. Oluşturduğum web sitesinin barındığı serverda, cdosys yüklü olduğu için mecburen o komponenti kullanarak mail gönderme işlemi yapan mesaj formunu adapte etmem gerekiyordu. Kullandığım kodlarda permission denied hatası ile karşılaştım. Kafa karışmaması için sorunlu kodları buraya yazmıyorum, başarılı işlem gerçekleşen kodları yazıyorum.

2007032101.jpg

cdosys komponenti kullanarak mail göndermek için, sonuç olarak kod şöyle gerçekleşti (formdan sonra işlem yapan safha)

<%
‘formdan gelen verileri aldık,

Dim isim, mail, telefon, mesaj

isim = request.Form(”isim”)

mail = request.Form(”mail”)

telefon = request.Form(”telefon”)

mesaj = request.Form(”mesaj”)

‘mail parametrelerini belirledik

kimden = “mailadresi buraya yazılacak”

kime = “mail adresi buraya yazılacak”

konu = “Web Sitesinden Mesaj var : “&date

mesaj = “<b>Mesaj İçeriği</b><br/>İsim : “&isim&”Mail : “&mail&”<br/>Telefon : “&telefon&”<br/>Mesaj : “&Mesaj&”<br/>Tarih / IP Adresi : “&now()&Request.ServerVariables(”REMOTE_ADDR”)

‘mail ek parametrelerini belirledik ve maili gönderiyoruz

set cpr = server.createobject(”CDO.Message”)

cpr.from = kimden

cpr.To = kime

cpr.Subject = konu

cpr.HtmlBody = mesaj

with cpr.Configuration

.Fields(”http://schemas.microsoft.com/cdo/configuration/sendusing”) = 2

.Fields(”http://schemas.microsoft.com/cdo/configuration/smtpserver”) = “localhost”

.Fields(”http://schemas.microsoft.com/cdo/configuration/smtpserverport”) = “25″

.Fields.Update

end with

On Error Resume Next

cpr.Send

If Err <> 0 Then

Response.Write “Error: ” & Err.Description

End If

set cpr = Nothing

‘Ziyaretçiye sonucu yazdırdık;

Response.Write(”<center>”)

Response.Write(”<b>Sayın :<b/> “&isim&”<br/>”)

Response.Write(”Göndermiş olduğunuz mesaj tarafımıza ulaştı.<br/>”)

Response.Write(”İlginiz için teşekkür ederiz…”)

Response.Write(”</center>”)
%>

Mesaj formu ve işlem safhasını barındıran tek sayfalık kodu şudur.

mesaj.rar (2 kb)

Tabi kodun çalışması için dosyanın içerisinde ki mail parametreleri kısımlarının işlem yapılacak maile göre değiştirilmesi gerekiyor.

Görüntülenme toplam : 85, bugün : 0 kez...

youtube ve wordpress için dns

Son günlerde bu iki site durmadan yasaklanıyor. Ağ bağlantılarından dns geçitlerine şu iki IP numarası girilerek sorun çözülüyor, yasaklar kalkıyor…

208.67.222.222
208.67.220.220
dnscozum.jpg

Görüntülenme toplam : 70, bugün : 1 kez...

Açtığım blog için virüs mevzusu ile başlangıç yapmak biraz tuhaf oldu.

Bugün kullandığım bilgisayara trojanımsı bir şeyler musallat oldu. Her yeni bir url görüntüleme isteğimde karşıma nod32 nin virüs uyarı penceresi geliyor, temizle metodu malesef aktif olmuyor. Bu tip durumlarda genelde başlat/çalıştır/msconfig uygulaması vasıtasıyla yabancı gördüğüm bütün uygulamaları kaldırırdım sorun çözülürdü. Bu işlem çözüm olmazsa; başlat/çalıştır/cmd ile komut satırına geçerek c:\windows\system32 veya system dizini altında “dir *.exe /o:d” komutu ile dosyaları son oluşturulma tarihine göre sıralar, yeni oluşturulmuş, abuk subuk diye nitelendirdiğim, gözüme ilişen exe uzantılı dosyaları “del dosyaismi.uzantisi” komutu ile silerdim. Bu işlemler bu tür durumlarda her zaman kesin çözüm olurdu, ama bu sefer çözüm olmadı.

Temel başvuru kaynağım google.com ‘da bu sorun üzerine biraz araştırma yaptım ama, maalesef kaydadeğer bir çözüme ulaşılmış bir çözüm metoduna ulaşamadım. Halen de bu can sıkıcı durum için çözüm arıyorum.

Şimdilik şu çözümlerle (adresleri bloklama ile) geçici bir önlem aldım, en azından gıcık eden virüs uyarı penceresini görmek zorunda kalmıyorum, ama sistemde halen bir trojanın varlığı düşüncesi can sıkıntısı yapıyor.

İki browser kullanıyorum, bu yüzden ikisinde de bloklamayı ayrı ayrı yapmam gerekti.

Mozilla Firefox için bir eklenti mevcut,
Firefox için geliştirilen bloklama eklentisini şu adresten indirdim.
https://addons.mozilla.org/en-US/firefox/addon/1865

bu eklentiyi kurduktan sonra; Araçlar kısmına yerleşen Adblock Plus menüsüne tıklayıp trojan algılamasına neden olan adresleri ekledim.
Eklediğim adresler şunlar ;
http://*.asdafdgfgf.com
http://u.asdafdgfgf.com
*.asdafdgfgf.com
u.asdafdgfgf.com

İnternet Explorer için ;
Araçlar / İnternet Seçenekleri / Güvenlik / Yasak Siteler menüsünden
aynı siteleri ekledim.

Dediğim gibi geçici bir çözüm oldu bu. Antivirüs firmaları böyle hususlar için fix ler geliştirirlerdi, belki de öyle bir geliştirmeyi beklemekten başka bir çare yok.
20080320011.jpg

———————————————————
Bu yazıya : 20 Mart 2008 16:08 ‘de iliştirilen not ;

İnternette bu konu üzerine yaptığım araştırma halen sürüyor , bazı kaynaklarda şu bilgi üzerinde durulmuş ama açıkcası benim kullandığım bilgisayarda hiç bir etkisini göremedim.

C: WINDOWS system32 drivers etc dizini içerisinde bulunan hosts dosyası içeriğine şu satırların eklenmesi gerektiğinden bahsedilmiş.

127.0.0.1 g.asdafdgfgf.com/ads.js
127.0.0.1 www.g.asdafdgfgf.com/ads.js
127.0.0.1 g.asdafdgfgf.com
127.0.0.1 www.g.asdafdgfgf.com
127.0.0.1 x.222360.com/ads.js
127.0.0.1 union.222360.com
127.0.0.1 www.222360.com
127.0.0.1 *.222360.com

———————————————————
Bu yazıya : 20 Mart 2008 17:17 ‘de iliştirilen not ;
Kesin Çözüm;
Anladığım kadarıyla bu sorun ağ bilgisayarlarında meydana geliyor, virüslü bir bilgisayar server görevi yapıyor ve diğer bilgisayarlara durmadan bir şekilde paket gönderiyor, adreslere bağlanmak isteyen virüssüz bilgisayar o paketler vasıtasıyla görüntülenen site içerisine virüs içeren javascript kodunu adapte ediyor. Virüs programıda her seferinde bu can sıkıcı uyarıyı veriyor.

Yani ; ağda mutlaka bir bilgisayarda bu virüs var ve o bilgisayarda muhtemelen herhangi bir virüs koruma programı kurulu değil. Çünkü dikkatimi çeken benim ağımdaki virüslü tespit ettiğim makinede virüs koruma programı kurulu olmadığı…

İki adımla bu virüsten kurtuluyoruz…

1.adım;
Ağ üzerinde virüs bulaşmış, bu işe neden olan bilgisayar veya bilgisayarları buluyoruz. Bunun için netoptima sitesinde geliştirilip, ücretsiz downloada sunulan programı kullanıyoruz. Bu programı indirmek için link1 - link2

2.adım;
Bulunan bilgisayar veya bilgisayarlara virüs koruma programı kuruyoruz. (Ben Nod32 programını kurdum, gayet de başarılı sonuçlar gözlemledim) Virüs koruma programının güncel virüslerde de hakim olabilmesi için güncelleme işlemini yaptıktan sonra, sistemi taratarak virüslerden temizliyoruz.

2008032003.JPGBu virüsün kullandığı ana dosya anladığım kadarıyla ; Windows/AppPatch dizininde bulunan Acspecf.dll isimli bir dosya, bu dosyanın ilk başta silinmesi gerekiyor, gerçi zaten virüs programı bu dosyanın zararlı olabileceği yönünde bizi uyarıyor. Aynı dizinde microsofta ait AcSpecfc.dll diye bir sistem dosyası daha var. Anlaşılan o ki bu sistem dosyası ile bağlantılı olduğu sanılsın görüntüsü verilmiş.

Tabi mevzu sadece bu dosya ile bağlantılı değil, bilgisayarın çeşitli yerlerinde bu virüs veya benzer virüslere ait dosyalar yuva edinmiş. Virüs koruma programımız bunları buluyor ve Win32.TrojanDownloader.Small veya NXS uzatılarında truva atı yanında Alman.NAD adı altında tanımlıyarak, silmek için çeşitli işlemlere yapmak üzere bize yön veriyor.

Bu süreçte kaydettiğim ekran görüntülerinden bir kaçtanesi şu şekilde;

2008032002.JPG 2008032005.JPG 2008032004.JPG 2008032006.JPG

Görüntülenme toplam : 2638, bugün : 9 kez...

sxc.hu ücretsiz grafik

http://www.sxc.hu adresinde yüksek çözünürlüklü grafiksel işlerde kullanılabilecek fotoğraflar var.

Görüntülenme toplam : 69, bugün : 2 kez...