veblebi
13 Mayıs 2017 Cumartesi

Netbeans Form içinde Form – JinternalFrame to a JDesktopPane

Java ile Netbeans IDE üzerinde, MDIForm içerisinde form görüntüleme.

Aşağıdaki resimdeki gibi, yeni bir proje oluşturuyoruz.
new-project-java
Next Sonrası resimde görüldüğü gibi projemize isim(mdifrm) veriyoruz ve klasörü belirledikten sonra finish diyoruz.

QT C++ SQLITE ile Telefon Defteri

QT DESIGNER 4.0.0 ile SQLITE Kullanarak Telefon Defteri yapıyoruz. (resimleri, üzerine tıklayarak orijinal boyutlarda görebilirsiniz)
Programı Buradan İndiriyor ve Kuruyoruz
Programı çalıştırıyoruz. Karşılama ekranında “New Project” diyoruz veya “File” menüsünden “New File or Project..” tıklıyoruz.

PHP Startup: Illegal encoding ignored

PHP Warning: PHP Startup: Illegal encoding ignored: ” in Unknown on line 0
Hatası ve çözümü
php.ini dosyasında, aşağıdaki bölümü bulup değiştirmeli..
Bul(Find)
[exif]
; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. 
; With mbstring support this will automatically be converted into the encoding
; given by corresponding encode setting. When empty mbstring.internal_encoding 
; is used. For the decode settings you can distinguish between motorola and 
; intel byte order. A decode setting cannot be empty.
exif.encode_unicode = 
exif.decode_unicode_motorola = 
exif.decode_unicode_intel = 
exif.encode_jis = 
exif.decode_jis_motorola = 
exif.decode_jis_intel =
Değiştir(replace)
[exif]
; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. 
; With mbstring support this will automatically be converted into the encoding
; given by corresponding encode setting. When empty mbstring.internal_encoding 
; is used. For the decode settings you can distinguish between motorola and 
; intel byte order. A decode setting cannot be empty.
exif.encode_unicode = "UTF-8"
exif.decode_unicode_motorola = "UTF-8"
exif.decode_unicode_intel = "UTF-8"
exif.encode_jis = "UTF-8"
exif.decode_jis_motorola = "UTF-8"
exif.decode_jis_intel = "UTF-8"

PHP Time & Strtotime

Bu yazımda, daha önce şurada bahsetmiş olduğum,  time()  işlemlerini, şimdi gün, hafta, ay ve yıl gibi çevirilerle ifade edeceğim. Diyelim ki veritabanımızda Bu Günün kayıtlarını, günün başlangıcından, o ana kadar almak istiyoruz…

Bugünün başlangıcını bulmak.

<?php
$bugun = date('Y-m-d 00:00:00');
$gdate = new DateTime($bugun);
$bugun = $gdate->getTimestamp(); // 1445288078
?>

Yukarıdaki işlem sayesinde bu günkü tarihin ilk başlangıcı değeri alınmış oldu(1445288078). Bu halde eğer veritabanımızda sorgu yapmak isteseydik, demek ki veritabanımızdaki ilgili tarih bulduğumuz değere eşit ve yüksek olan kayıtları çekmemiz gerekecekti. Kısaca veritabanımızdaki alan adı, “db_tarih” olsun, bu halde sorgu kısımı

” WHERE db_tarih>=$bugun”
şeklinde olacaktı.
Peki 1 gün önceki kayıtları getirme isteseydik, bu halde sorgu mantığı, dün satarttan büyük ve eşit, bugün starttan küçük olan kayıtlar olacaktı(between yöntemi de kullanılabilir, ben anlaşılması için büyük, küçük işaretli kullanımına değiniyorum).,

Dün’ün başlangıcını bulmak

$bugun = date('Y-m-d 00:00:00');
$gdate = new DateTime($start);
$bugun = $gdate->getTimestamp(); // 1445288078
$dun  = date( 'Y-m-d 00:00:00', strtotime ( '-1 day' . $start ) );
$gdate = new DateTime($dun);
$dun = $gdate->getTimestamp();
İşte hem dün zaman başlangıç değerini hem de bu günün başlangıç değerini almış olduk. Bu halde sorgu yapacak olsaydık ” WHERE db_tarih>=$dun AND db_tarih<$bugun”
olacaktı. Yukarıda görüldüğü gibi strtotime ve -1 gün kullandık. Hafta, ay ve yıl için ise aşağıdaki gibi kullanabiliriz.
// hafta
$hafta  = date( 'Y-m-d 00:00:00', strtotime ( '-1 week' . $start ) );
$gdate = new DateTime($hafta);
$hafta = $gdate->getTimestamp();
 
// ay
$ay  = date( 'Y-m-d 00:00:00', strtotime ( '-1 month' . $start ) );
$gdate = new DateTime($ay);
$ay = $gdate->getTimestamp();
 
// yil
$yil  = date( 'Y-m-d 00:00:00', strtotime ( '-1 year' . $start ) );
$gdate = new DateTime($yil);
$yil = $gdate->getTimestamp();
Önceki yazımdaki yöntemle, gün, dün, hafta, ay ve yıl kullanımına örnek vermiş oldum.
Dilerseniz “-3 day” ile evvel 3 günü “-3 week” ile evvel 3 haftayı ve ay ve yıl içinde yine ” – ” ve rakam belirterek geçmiş herhangi bir ay ve yılı bulabilirsiniz.

String URL Encode

JQUERY’de POST ve GET işlemleri ve özel karakterleri URL biçimine çevirmek için, serialize() fonksiyonunu kullanırız, tek bir string alan için ise bu fonksiyon hata verecektir çünkü obje içermemektedir(name ve value değerli).
Çözüm 1, encodeURIComponent kullanmak.
var rCRLF = /\r?\n/g;
$('#sortable li').each(function() {
    var elm = $(this);
    var name = elm.children('img').attr('title');
    var src = elm.children('.galeri_src').attr('data-v');
    //name.ht
    src.replace( rCRLF, "\r\n" );
    src = encodeURIComponent(src);
    var fd = "name="+name+"&galeri_resim="+src;
    // ajax
    $.ajax({
        url: post_url,
        type: "POST",
        data: fd,
    }).done(function( c ) {
        if(c != 0) {
            console.log( c );          
        }
    });
});
Yukarıdaki örneğimiz AJAX POST işlemi ile, Galeri alanına girilen çok sayıda Resimin kaydedilmesi işlemini yansıtan bir karedir. Bu halde resimin kaynak kodlarını okuyarak resim kutusu içerisine “img” olarak ekliyor(aşağıdaki resim), “src” kısmına alıyoruz, böylelikle seçilen resimle görüntü olarak karşımıza çıkıyor ve kaynak kodları da “src” alanında oluyor.

 
galeri-resim
Resimin kaynak kodlarında ise bazı sorunlu karakterler olacaktır(=?/)… İşte bunların çevrilmesi gerekir. “encodeURIComponent” fonksiyonu ise tek satırla bu işlemi gerçekleştirir. Yani “urlencode“, olumsuz etkilere sebep olacak karakterleri çevirir.
Örneğin
? -> %3F
/ -> %2F
= -> %3D
gibi..
Ajax ile GET, POST metoduyla veri yolluyoruz
Resim kaynak kodlarını “FileReader” ile okuduk.
var kaynak = oFREvent.target.result;
komutu ile aldık. Resim kaynağımız;
“data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/…”
Şeklinde başlar ve kırmızı ile işaretlediğim gibi bazı özel karakterler barındırır. Bu kaynağı POST üzerinden bir PHP dosyasına gönderdiğimizi düşünür ve kaynağı alıp bir resim dosyası olarak kaydedersek, yükseklik ve genişlikte sorun olmadığı halde, simsiyah bir resimle karşılaşırız(kısaca resim doğru olarak kaydedilememiştir). İşte buna sebep olan işlenmemiş/filtrelenmemiş kaynaktır.
Çözüm ise bu yazının başında ve ayrıca kullandığımız yöntem (each döngüsü ile) çok sayıda ve yüksek limtilerde içerik göndermemizi de sağladı. 10 Resimi HTML form üzerinden gönderseydik ve atıyorum POST Limit 2 MB ile sınırlı olsaydı, gönderdiğimiz resimler ise 2 MB üzeri olsa idi, işlemi gerçekleştiremeyecektik.  Javascript ile, resimleri döngü içerisine alarak, birer, birer yollamak ise bu konuda ayrıca çözüm sunmuş oluyor.
JQUEY ile yapmış olsaydık? O halde “.param” kullanabilirdik;
örneğimize göre değiştirirsek;
Çözüm 2
var params = { name:name, galeri_resim:src};
var fd = jQuery.param( params );
//name="img_name"&src="data"
// olurdu...
“encodeURIComponent” ve “param” ikisi de geçerli.

http://veblebi.com/string-url-encode/

İzleyiciler

Blogger tarafından desteklenmektedir.