bildirgec.org

Site arşivi: kodaman

Asp ile SQLden output alma ve Command kullanımı …

admin | 18 March 2009 12:35

Henüz SP ( stored procedure ) ile yeni ilgililer yada orta düzey projeler için kullanan birçok kişinin zaman içerisinde sıkıntı çektiği yada çektiğini düşündüğüm birşeydir output okuma. Toplam kayit dönüşlerinde yada insert sonrası bilgi dönüşlerinde update sonrasi bilgi dönüşlerinde ve daha birçok noktada, çoğu kez kullanılması icab eden fakat SP ile yeni ilgilenenlerin kafasini karıştıran bir durumdur SP output …

Öncelikle kullanacağımız SP ‘nin kodlarını paylaşarak başlamak isterim …

SP ( Stored Procedure ) kodları :

1
2
3
4
5
6
7
8
9
CREATE PROCEDURE SP_OUTPUT_SAMPLE
@GET_ID int,
@OUT_TP int = Null OUTPUT,
@OUT_TX int = Null OUTPUT
AS
BEGIN
SELECT @OUT_TP = Count(REG_ID) FROM MESSAGES WHERE USER_ID = @GET_ID
SELECT @OUT_TX = Count(REG_ID) FROM INVITES WHERE USER_ID = @GET_ID
END

Formlarınıza güvenlik kodu ekleyin

admin | 18 March 2009 11:12

Formlarımızı kodlarken güvenliği elden bırakmamamız gerekir.. Hele ki form ile direk veritabanına veri girişi sağlanıyorsa daha çok dikkatli olmak lazım. Ayrıca formları flood’dan korumak için de güvenlik kodu uygulaması kullanmak mantıklı. Formumuza güvenlik kodu uygulamasının entegresini basitçe anlatacağım. Geliştirmek ve daha da sağlamlaştırmak sizin elinizde.

Öncelikle buradan dosyaları indirin. Arşivden çıkardığınızda 3 tane dosya göreceksiniz.

Bunlar;

form.php, CaptchaSecurityImages.php ve font dosyamız monofont.ttf

HTML Injection tehlikesi

admin | 17 March 2009 12:30

Bu makalemde “html injection” güvenlik açığı hakkında bilgilendirme yapıp, bu açıktan korunmak için ipuçları vereceğim.

Bu güvenlik açığı; web yazılımlarında programcıların güvenlik konusundaki bilgisizliğinden veya dikkatsizliğinden kaynaklanmaktadır. Genellikle ziyaretçilerin veritabanına bilgi girişinde bulunması ve bu bilginin daha sonra site üzerinde çağırılmasıyla oluşur. Ziyaretçi yorumlarının olduğu kısımlarda, ziyaretçilerin profil bilgilerini girdiği kısımlarda giriş yapılan veriyi kontrol ettirmeden direkt olarak veritabanına alınmasından dolayı meydana gelir.

Huffman Algoritması

admin | 17 March 2009 11:11

Bilindiği üzere günden güne dijital bir çöplüğe dönüşen yaşantımızda dosyalarımızın sıkıştırılmış olması bile bazen yetersiz gelebiliyor. Terabyte kapasitelerine erişmiş hard disc’ler dijital alan ihtiyacımıza bir nebze de olsa ferahlık sağlamış olsa bile dinmek bilmeyen bu alan ihtiyacımız sürekli artış eğilimi göstererek sınırları zorlar hale geliyor. Üstelik bu kötü duruma dosyalarımızı sıkıştırdığımız halde giriyor olmamız da üzerine ayrıca düşünülesi bir durum.

Ama her şeye rağmen sıkıştırılmış bir dosya hiç sıkışmamış bir dosyadan daha hayırlı olsa gerek.

SQL de yüksek performans ile …

admin | 16 March 2009 15:24

Denemeler sonucu elde ettiğim ve kullanımı da oldukça kolay olan bir stored procedure stored procedure. Öncelikle belirtmek isterim ki MsSQL platformuna ait bu stored procedure veri sayfalamanızda, veri listelemenizde, son kayıtları getirmenizde kullanabileceğiniz bir sp olup performans seviyesi sizin de denemeleriniz sonunda görebileceğiniz gibi oldukça yüksektir.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
CREATE PROCEDURE SP_RESULT
(
@Tables varchar(1000),
@PK varchar(100),
@Sort varchar(200) = NULL,
@PageNumber int = 1,
@PageSize int = 10,
@Fields varchar(1000) = '*',
@Filter varchar(1000) = NULL,
@Group varchar(1000) = NULL)
AS
IF @Sort IS NULL OR @Sort = ''
SET @Sort = @PK
DECLARE @SortTable varchar(100)
DECLARE @SortName varchar(100)
DECLARE @strSortColumn varchar(200)
DECLARE @operator char(2)
DECLARE @type varchar(100)
DECLARE @prec int
IF CHARINDEX('DESC',@Sort)>0
BEGIN
SET @strSortColumn = REPLACE(@Sort, 'DESC', '')
SET @operator = '<='
END
ELSE
BEGIN
IF CHARINDEX('ASC', @Sort) = 0
SET @strSortColumn = REPLACE(@Sort, 'ASC', '')
SET @operator = '>='
END
IF CHARINDEX('.', @strSortColumn) > 0
BEGIN
SET @SortTable = SUBSTRING(@strSortColumn, 0, CHARINDEX('.',@strSortColumn))
SET @SortName = SUBSTRING(@strSortColumn, CHARINDEX('.',@strSortColumn) + 1, LEN(@strSortColumn))
END
ELSE
BEGIN
SET @SortTable = @Tables
SET @SortName = @strSortColumn
END
SELECT @type=t.name, @prec=c.prec
FROM sysobjects o
JOIN syscolumns c on o.id=c.id
JOIN systypes t on c.xusertype=t.xusertype
WHERE o.name = @SortTable AND c.name = @SortName
IF CHARINDEX('char', @type) > 0
SET @type = @type + '(' + CAST(@prec AS varchar) + ')'
DECLARE @strPageSize varchar(50)
DECLARE @strStartRow varchar(50)
DECLARE @strFilter varchar(1000)
DECLARE @strSimpleFilter varchar(1000)
DECLARE @strGroup varchar(1000)
IF @PageNumber < 1
SET @PageNumber = 1
SET @strPageSize = CAST(@PageSize AS varchar(50))
SET @strStartRow = CAST(((@PageNumber - 1)*@PageSize + 1) AS varchar(50))
IF @Filter IS NOT NULL AND @Filter != ''
BEGIN
SET @strFilter = ' WHERE ' + @Filter + ' '
SET @strSimpleFilter = ' AND ' + @Filter + ' '
END
ELSE
BEGIN
SET @strSimpleFilter = ''
SET @strFilter = ''
END
IF @Group IS NOT NULL AND @Group != ''
SET @strGroup = ' GROUP BY ' + @Group + ' '
ELSE
SET @strGroup = ''
EXEC(
'
DECLARE @SortColumn ' + @type + '
SET ROWCOUNT ' + @strStartRow + '
SELECT @SortColumn=' + @strSortColumn + ' FROM ' + @Tables + @strFilter + ' ' + @strGroup + ' ORDER BY ' + @Sort + '
SET ROWCOUNT ' + @strPageSize + '
SELECT ' + @Fields + ' FROM ' + @Tables + ' WHERE ' + @strSortColumn + @operator + ' @SortColumn ' + @strSimpleFilter + ' ' + @strGroup + ' ORDER BY ' + @Sort + '
'
)

SQL Case kullanımı (ASP)

admin | 16 March 2009 13:24

Birçoğumuz oluşturduğumuz veritabanı içeriklerini farkında olmadan yanlış hazırlayıp performansımızı düşürsekde birçoğumuzda kod yazarken aynı hatayı yapmaktayız. Mesela bir profil sayfasını görüntülerken kimi cinsiyet için nvarchar data tipini kullanırken kimi ise bit data tipini kullanır. Bit ( Evet / Hayir yada True / False ) kullandığımız veritabanına göre sorgusu değişse de biz kod yazarken ki sıkıntısıyı ele alacağız. Profil sayfasını görüntülerken if sorgusu içine alır eğer şöyle ise böyle yaz böyle ise böyle yaz deriz. Fakat kullandığımız platform ( ASP ‘yi ele aliyorum. ) SQL kadar hızlı ve performanslı çalışmamaktadir. Eğer işi SQL’e yaptırırsak performansı arttırmış olacağız. Şöyle ki ;

ASP de ASPUpload ve Ajax ile Dosya Yükleme

admin | 16 March 2009 11:24

Çalışma Dosyasını indirmek için tıklayın | Demoyu İncelemek İçin Tıklayın

Gmail kullananlar bilir, bir dosya yükleyeceğiniz zaman yüklersiniz otomatik olarak gelir kb bazında bilgisi yazar, linki gelir ekrana. Sonra bir tane daha eklersin, bir tane daha ve bir tane daha…

İşte burda da yapacağımız şey ajax mantığıyle bir dosyayı sayfa yenilemenden yüklemek. Bu scripti yaklaşık 5-6 ay önce yapmıştım. Çevrede hiç asp için ajax dosya yüklemesi bulamamıştım 🙂 Sistemde de Ajax´ın iframe tekniği kullanarak post ettiğimiz multipart veriyi gözükmeyen bir iframe içinde isleme alınması mantığıyla çalışan ufak bir script. Yani Gözükmeyen derken ajax ajaxdır değilmi 🙂

geliştirme platformu olarak OpenSolaris (2008.11)

admin | 12 March 2009 12:30

aşağı yukarı bir yıla yakın zamandır, masaüstü olarak ubuntu (upgrade ederek 7.04, 7.10, 8.04, 8.10) kullanıyordum, artık işletim sistemi saçmalamaya başlayınca – menüler 4-5 dakikada açılmaya, firefox kendi kendine kapanmaya, ses kartı arada çalışmamaya başlayınca vs. ) makineyi formatlamanın zamanı geldi de geçiyor diye düşündüm. tekrar sıfırdan ubuntu kurmak yerine denemek için open solaris kurmaya karar verdim. son 1 haftadır masaüstü ve geliştirme ortamı olarak open solaris kullanıyorum, yaşadığım tecrübeleri burdan paylaşmak istedim.

önce biraz geçmişinden bahsedelim, solaris, sun microsystems’ın ürünü, ilk versiyonu 1991-1992 civarında piyasaya çıkıyor. Sun o zamanlarki popüler unix türevlerinin iyi yönlerini alarak (bsd, system v, xenix) bunları birleştirip bir unix versiyonu yapacağını açıklıyor. 2005 yılında sun solaris kaynak kodunu open source olarak açacağını açıklıyor, projenin ismide open solaris oluyor. Sun 2007 yılında Ian Murdock – debianın kurucusu – u kadroya dahil ettiğini açıklıyor. Gnome ve GNU nun araçlarını alarak yeni bir dağıtım hazırlıyorlar. 1 kasım 2008 de dağıtım 2008.11 çıkıyor.

ASP ile Gmail üzerinden mail gönderme

admin | 12 March 2009 10:25

Üyelik işlemlerinizde, iletişim sayfalarınızda kullanabileceğiniz ASP kodları:

Siteniz üzerinden gmail’i kullanarak mail gönderin:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
body=”Maile gidecek yazı burada olsun”
Dim iMsg, iConf, Flds
Set iMsg = CreateObject(”CDO.Message”)
Set iConf = CreateObject(”CDO.Configuration”)
Set Flds = iConf.Fields
schema = “http://schemas.microsoft.com/cdo/configuration/”
Flds.Item(schema & “sendusing”) = 2
Flds.Item(schema & “smtpserver”) = “smtp.gmail.com”
Flds.Item(schema & “smtpserverport”) = 465
Flds.Item(schema & “smtpauthenticate”) = 1
Flds.Item(schema & “sendusername”) = “googlehesabı[email protected]
Flds.Item(schema & “sendpassword”) = “sifren”
Flds.Item(schema & “smtpusessl”) = 1
Flds.Update
With iMsg
.To = email
.From = “googlehesabı[email protected]
.Subject = “Mail konusu”
.HTMLBody = Body ‘yukarıdaki body kısmı
.Sender = “[email protected]
.Organization = “http://www.siteniz.com”
.ReplyTo = “[email protected]
Set .Configuration = iConf
SendEmailGmail = .Send
End With
Set iMsg = Nothing
Set iConf = Nothing
Set Flds = Nothing

Kendinize göre değiştireceğiniz alanlar:

Php’de extend ile sınıf yazmak daha kolay

admin | 12 March 2009 10:22

Extends kelimesi adından da anlaşılacağı üzere büyümek ve genişlemek anlamına gelmektedir ve extend işlemi php’yi nesne tabanlı kullanan programcılar için güzel bir nimettir. Ben aşağıdaki örnekleri verirken PHP 4’ü baz alacağım. Sizler dilerseniz PHP 5 içinde manuel den faydalanabilirsiniz.

Düşününki elinizde iki tane sınıfınız var ve bu sınıflardan bir tanesi tarih işlemlerini yapıyor.

1
2
3
4
5
6
7
8
9
class Tarih
{
var $zaman; // time() karşılığı gelen değer
function Tarih_Yaz()
{
$tarih=date("Y-m-d H:i:s",$this->zaman);
echo("$tarih");
}
}