Seçtiğim Güzel Fontlar

Raleway
<link href="https://fonts.googleapis.com/css?family=Raleway" rel="stylesheet">
veya
font-family: 'Raleway', sans-serif;

Opencart - Coğrafi Kod Nedir? Nasıl Eklenir?


Admin arayüzünde yapılacak işlem:

  • Admin/Ayarlar/Mağazalar/Mağazayı Düzenle/Mağaza sekmesine gelin
  • Burada Coğrafi Kod kutusuna GOOGLE HARİTALAR (Google Maps) aldığımız koordinatları yerleştireceğiz. Url olarak değil koordinat olarak yazmamız gerekiyor.
  • Böylece sitemizin iletişim sayfasında Haritayı Göster butonu aktif oluyor ve tıklayınca bu koordinatı google maps üzerinde açıyor. Direk harita görünmesi için opencart eklentilerini kullanabilirsiniz.

Google Maps üzerinden bir yerin coğrafi kodunu öğrenme:

  • maps.google.com adresini ziyaret edin.
  • işaretlemek istediğiniz konumu bulun.
  • bu noktada sağ tuşa tıklayarak "Burası Neresi?" seçin.
  • bir kutu içinde bu konumun resmi ve bazı bilgiler çıkacaktır.
  • bu bilgilerin altında 38.364571, 38.320025 gibi bir sayısal değer çıkacaktır. işte bu işaretlediğiniz yerin konumudur. bu haliyle kopyalayıp Opencart içerisinde yukarıda belirttiğim Coğrafi Kod kutusuna yapıştırınız.
Örneğin;
Coğrafi Kod: 38.364571, 38.320025

Opencart - Hata Mesajları ve Çözümleri

Missing argument 2 for Template::render() called in /public_html/system/storage/modification/system/engine/loader.php on line 87

Hata Nedeni: 
Yeni tema yükleme. TR dilini yükledikten sonra bir tema eklediğinizde çıkıyor.

Çözümü:
Admin/Eklentiler/Modifikasyonlar/Refresh(Yenile) butonuna bir yada birkaç kez tıklayın.

XAMPP + PhpMailer + Gmail Smtp (Localhost Mail Gönderme)

Xampp kullanıyorsanız ve local'de phpmailer kullanarak mail göndermek için çok uğraştım. Hatalar ve araştırmalar sonunda doğru yöntemi buldum çok şükür. Ve sizlerle paylaşmak istiyorum:

Özetle:
$mail->;smtpConnect([
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
]
]);
Bu kodları send komutundan hemen önceye eklerseniz sorun çözülüyor. Hepsi bu kadar.

Şimdi ayrıntılı anlatayım:
1. Php.ini üzerinde hiçbir değişiklik yapmanıza gerek yoktur. Ben bütün SMTP ayarlarını kapalı konuma getirdim. Çünkü adres ve port seçimlerini kod içinde belirtiyoruz.

2. https://github.com/PHPMailer/PHPMailer adresinden phpmailer'ı indirin.
3. İndirdiğiniz dosyalardan examples ve extras klasörleri işimize yaramayacağı için isterseniz bunları almayabilirsiniz. Diğer dosyaları (dosyaların hepsi ve language klasörü) phpmailer adında bir klasöre kopyalayarak bu klasörü root'a kopyalayın (veya root içinde istediğiniz klasöre).
4. Gmail SMTP ile mail göndermek için artık hazırsınız, maili gönderebiliriz. Yine root'da şu mail.php dosyasını oluşturun:

mail.php


function send_mail($email,$message,$subject) {
date_default_timezone_set("Europe/Istanbul");
require 'phpmailer/PHPMailerAutoload.php';
//Create a new PHPMailer instance
//Passing true to the constructor enables the use of exceptions for error handling
$mail = new PHPMailer(true);
if ( !PHPMailer::ValidateAddress($email) ){ // or !$mail->validateAddress($email)
return "E-posta adresi geçersiz!";
}
try {
$mail->SetLanguage("tr","phpmailer/language/");
$mail->CharSet  ="utf-8";

//Tell PHPMailer to use SMTP
$mail->isSMTP();
$mail->SMTPAuth = true;

//Enable SMTP debugging
// 0 = off (for production use)
// 1 = client messages
// 2 = client and server messages
$mail->SMTPDebug = 0;

//Ask for HTML-friendly debug output
$mail->Debugoutput = 'html';

//Set the hostname of the mail server
$mail->Host = 'smtp.gmail.com';
// use
// $mail->Host = gethostbyname('smtp.gmail.com');
// if your network does not support SMTP over IPv6

//Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission
$mail->Port = 587; //ssl:465 tls:587

//Set the encryption system to use - ssl (deprecated) or tls
$mail->SMTPSecure = 'tls';

//Whether to use SMTP authentication
$mail->SMTPAuth = true;

//Username to use for SMTP authentication - use full email address for gmail
$mail->Username = "your_gmail_adrress";

//Password to use for SMTP authentication
$mail->Password = "your_gmail_password";

//Set who the message is to be sent from
$mail->setFrom('info@siteniz.com', 'Sitenizin Adı');

//Set an alternative reply-to address
$mail->addReplyTo('info@siteniz.com', 'Sitenizin Adı');

//Set who the message is to be sent to
$mail->addAddress($email, ''); //'email','first-last name'

//Set the subject line
$mail->Subject = $subject;

//Read an HTML message body from an external file, convert referenced images to embedded,
//convert HTML into a basic plain-text alternative body
//$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
$mail->msgHTML($message);

//Replace the plain text body with one created manually
$mail->AltBody = 'This is a plain-text message body';

//Attach an image file
//$mail->addAttachment('images/phpmailer_mini.png');

//send the message
$mail->smtpConnect([
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
]
]);
$sonuc = $mail->send();
return $sonuc; //boolean
}
catch (phpmailerException $e) {
return $e->errorMessage(); //Pretty error messages from PHPMailer
}
catch (Exception $e) {
return $e->getMessage(); //Boring error messages from anything else!
}
}


$SONUC = send_mail('gidecek_kisi@examples.com','Bu bir deneme mailidir...','Mesaj Konusu');

?>
5. Bu kadar. Denenmiştir ve Çalışmaktadır.

Açıklamalar
1. Ben burada tls (port 587)  ile gönderdim. Fakat ssl (port 465) ile de gönderebilirsiniz. İkisi de çalışıyor.
2. Aslında bu kod phpmailer/examples klasöründe gmail.phps dosyasında var. Fakat bu şekliyle çalışmıyor. Buradaki sıkıntıyı şu kodları ekleyerek çözdüm:
$mail->;smtpConnect([
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
]
]);

3. Bu kodu yazmadan önce aldığım hata mesajları şunlardı:

  • Warning: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in C:\xampp\htdocs\members\phpmailer\class.smtp.php on line 367
  • SMTP Error: Could not connect to SMTP host.

Php _GET & _POST & Url & Int & Değişken & SQL Güvenliği

Php'de kodlama yaparken $_GET gibi değişkenlerden gelen zararlı karakterleri filtrelemek için bu yöntemleri öneririm:


A) $_GET & $_POST & Url & Int & DEĞİŞKEN GÜVENLİĞİ

1. İlk olarak gelen değişkendeki html karekterlerini zararsız hale getirelim (< yerine < gibi)
$user_name= htmlspecialchars($_GET['user_name']);
    Veya
$name= filter_input(INPUT_GET, 'name', FILTER_SANITIZE_SPECIAL_CHARS);

       Ben htmlspecialchars kullanıyorum. Farkı yok. Fakat filter_input en az PHP 5.2.0 gerektirir.  Eğer html kodlarından tamamen kurtulmak isterseniz  $user_name=strip_tags($user_name)

2. Eğer aldığınız değer integer (sayısal) ise gerçekten sayısal mı diye kontrol edelim
$user_id =intval($_GET['user_id']);
Veya
$user_id = filter_input(INPUT_GET, 'user_id', FILTER_SANITIZE_NUMBER_INT);
     Ben intval kullanıyorum. Farkı yok. Fakat filter_input en az PHP 5.2.0 gerektirir.
   
     Eğer sayısal bir değer gelmezse NULL değeri döner. 'sddd3' gibi bir değer için 3 döner. Eğer gelen sayısal değeri - ve + işaretlerinden arındırmak istiyorsanız:  $user_id = abs($user_id); 

3. Eğer aldığınız değer url içeriyorsa güvenlik için şu şekilde kullanalım (Bu sefer POST yöntemi için örnek verelim)
$url = urlencode($_POST['url']);
Veya
$url = filter_input(INPUT_POST, 'url', FILTER_SANITIZE_ENCODED);
    Ben urlencode kullanıyorum. Farkı yok. Fakat filter_input en az PHP 5.2.0 gerektirir. Eğer encode edilmiş url'yi decode etmek isterseniz:  $url=urldecode($url);


B) SQL GÜVENLİĞİ

1. Eğer SQL sorgu cümlesi içerisine ' gibi özel karakterler girip sorun çıkarmasını istemiyorsanız sorgunuzu çalıştırmadan önce sql cümlenizi filtrelemeniz gereklidir.
// PDO
$safe = $db->escape_string($name); // OOP Style

// MySQLi
$safe = mysqli_real_escape_string($db, $name); // mysqli

// mysql_*
$safe = mysql_real_escape_string($name, $db);

// Genel Kullanım (Son Çare Olarak Kullanılabilir)
$safe = addslashes($name);

Xampp Failed to connect to mailserver at localhost port 25, verify your SMTP and smtp_port setting in php.ini HATASI

Xampp kullanıyorsanız ve mail göndermek istediğinizde scriptiniz şu hatayı veriyorsa:

Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini

Bu sorunu şu şekilde çözebilirsiniz:

1. XAMPP Kontrol Panelini açın

2. Mercury çalışmıyor ise Start diyerek çalıştırın ve yanındaki Admin butonuna tıklayın.

3. Mercury/32 penceresi açılacaktır. "Configuration" menüsüne tıklayın

4. "MercuryS SMTP Server" seçeneğini seçin.

5. "Connection control" sekmesine geçin.

6. "Do not permit SMTP relaying of non-local mail" yazan kutucuktaki işareti kaldırın. Bu seçenek "localhost üzerinde smtp kullanımına izin verme" anlamına gelir.

7. Mail gönderme scriptiniz çalıştığı sürece Mercury çalışır halde kalmalıdır. Mercury php.ini de kayıtlı olan standart 25 nolu smtp portunu açık hale getirmektedir. Ve bu porttan smtp hizmeti sunmaktadır. Kapatırsanız dolayısıyla smtp hizmeti duracak ve yine aynı hatayı almaya devam edeceksiniz.

En Faydalı Notepad++ Eklentileri (Php, Html, Javascript, ...)


Kullandığım ve tavsiye ettiğim Notepad++ eklentileri (plugins):

HTML Tag: html etiketlerinin başını ve sonunu yakalar.
JSTool: Javascript kodlarındaki hataları yakalar.
Compare: İki dosya arasındaki farkları bulur.
NppFTP: Ftp mantığı ile hostinginizde bulunan dosyalara ulaşırsınız. Ayrıca bu dosyaları direk server üzerinden düzenleyebilirsiniz.
PHP Autocompletion: Php komutları hakkında size yardımcı olur. Örneğin unset yazıp ( açtığınızda bir kutu içinde size kodun bölümlerini gösterir.
Quick Color Picker + : Kod içindeki renkleri seçili hale getirdiğinizde yada renk eklemek istediğinizde size renk paletini açar ve renk kodunu yazmadan direk seçebilirsiniz.

Bu eklentileri yüklemek için Notepad++ > Eklentiler > Pulgin Manager > Show Plugin Manager yolunu takip edin. Bütün eklentiler listelenecektir. Listeden istediğinizi seçip kurabilirsiniz.

Web Developer için En Faydalı Chrome Uzantıları


Not: Eğer bu eklentileri kurduğunuzda çalışmazsa Chrome yeniden başlatın.

Web sayfası içeriğindeki istediğiniz yeri dikdörtgen içine alarak yükseklik (height) ve genişliğini (width) öğrenmiş oluyorsunuz.

2. Window Resizer


Tarayıcının boyunu kenarlardan çekip küçültüp büyütürken köşede ekran boyutlarını bize gösterir.

3. ColorZilla


En önemli ve beğendiğim özelliği web sayfalarında görüp beğendiğiniz bir nesnenin renk kodlarını alabilirsiniz. Ayrıca renk paletinden renk seçebilirsiniz.

phpMyAdmin Alanların Altındaki Kesik Çizginin Anlamı Nedir?

Görüldüğü gibi phpMyAdmin kullanıyorsanız bazı alanların altında kesik çizgi olduğunu görebilirsiniz. Bunun anlamı bu alana bir açıklama (comments) girilmesidir. Bu sayede yeni bir satır veri girişi yaparken bu kesik çizginin üzerine fareyi getirdiğimizde açıklama görünür.

Excel Dilimleyici Özelliği - Kolaylıkla Filtreleyin

Excel tablonuzda mutlaka filtreleme özelliğini kullanmışsınızdır. Fakat her zaman başlığın yanındaki ok işaretine tıklayıp birini seçmek çok pratik ve kullanılışlı olmuyor. Bu işi yanda açılan bir menüden yapmak isterseniz Excel'in dilimleyici özelliğini kullanabilirsiniz. Şimdi nasıl olduğunu anlatayım:

  • Öncelikle sayfanızı Giriş menüsündeki "Tablo Olarak Biçimlendir" kullanarak tabloya dönüştürün.
  • Sonra menüde Tablo Araçları kısmı gelecektir. Buradan "Dilimleyici Ekle" seçin

  • İstediğiniz başlıkları seçin (filtrelenecek başlıklar).
  • Ekrana kutu içinde menü şeklinde seçtiğiniz başlıklar gelecek. Artık buradan seçerek kolayca ve hızlıca filtrelemelerinizi yapabilirsiniz.

Mysql'de Tabloları İlişkilendirirken (Foreign Key) Cascade ve Restrict Farkı Nedir?


Biliyorsunuz Mysql'de tablolar arasında ilişki kurabiliyorsunuz. Bu ilişkilendirmeyi PhpMyAdmin benzeri bir arayüzden yada direk SQL kodu ile veritabanını oluştururken yapabilirsiniz. Mysql'de ilişkilendirmenin nasıl yapılacağı hakkında çok bilgi vardır. Burada buna değinmeyeceğim. Benim bahsetmek istediğim bu ilişkilendirmeyi yaparken Cascade yada Restrict hangisini seçmemiz gerektiğidir?

Cascade (kademeli): Eğer ilişkili ana satır (parent row) silinirse yada güncellenirse bağlı olduğu alt satır (child row) da silinir yada güncellenir.

Restrict (sınırlama): Fakat Restrict kullanırsanız o zaman ana satır (parent row) silinirse yada güncellenirse bağlı olduğu alt satır (child row) silinmez yada güncellenmez. Bir hata mesajı (error) verir. Örneğin "Silmeye çalıştığınız satırdaki .... alanı başka bir tabloda kullanılıyor". Bu hata işlemini parent row silerseniz çıkar. Bağlı olduğu child row'u silseniz bir hata almazsınız ki olması gereken de budur.

Set Null (Boş): Parent row silinirse yada güncellenirse child row'a Boş (Null) değeri atanır.

No Action (Hiçbirşey yapma): Hiç bir işlem yapmaz. Yani parent row silinse de güncellense de child row da bir işlem yapılmaz.

[Çözüldü] Bağlantınız Gizli Değil Saldırganlar Bilginizi Çalmaya Çalışıyor Olabilir Meb Hattı Sertifika Hatası

Google Chrome'da şu şekilde bir hata alıyorum "Bağlantınız gizli değil"
Saldırganlar www.google.com.tr sitesinden bilgilerinizi çalmaya çalışıyor olabilir (örneğin, şifreler, mesajlar veya kredi kartı bilgileri)Gelişmiş -  Yeniden yükle
Bu hatayı almadan önce adını hatırlamadığım bir siteden dosya indirdim ve çalıştırdım. Daha sonra Bağlantınız gizli değil hatası karşıma çıkmaya başladı.
Ayrıca adres satırında https yazan yerde kırmızı bir çizgi var.
Google Chrome'da Bağlantınız gizli değil hatasının çözümü nedir? Neden Bağlantınız gizli değil hatası alıyorum, acaba bilgisayarıma virüs mü bulaştı?
Bu hata birçok nedenle alınabilir (virüs, tarih hatası,...vb). Bu yazıda Meb hattına sahip bir okuldan bu hatayı alırsanız ne yapılması gerektiği üzerinde duracağım. 18.04.2016 itibariyle okullarda sertifika yüklü olmayan tüm cihazlarda (bilgisayar, tablet, telefon...) bu hatayı alabilirsiniz.


ÇÖZÜM:
Çözüm meb sertifikasını yüklemek. Bunun için sertifika.meb.gov.tr adresine gitmeniz gerekmektedir.
Sertifika ve nasıl yükleneceği ile ilgili açıklama burada var. 

ANDROİD SERTİFİKA YÜKLEME SORUNLARI: 
1) Eğer Android'de yüklerken sertifika.meb.gov.tr yazan açıklamaları yaptıktan sonra "kimlik bilgileri deposu için şifreyi yazın" şeklinde bir şifre isterse: 
Ayarlar/Ekran Kilidi/Şifre seçin ve bir şifre belirleyin. Artık sertifika yüklerken şifre sormayacaktır. Sertifika yükledikten sonra bu işlemi geri alabilirsiniz.
2) Eğer benim gibi Custom ROM'lu (Cyanogenmod gibi) bir android kullanıyorsanız indirdiğiniz sertifikaya tıkladığınızda "Sertifika okunamadı" yada "Sertifika yükleyici durdu" gibi bir hata alabilirsiniz. 
Bu durumda Ayarlar/Güvenlik kısmına girin. Burada "Sertifikayı SD karttan yükle" gibi bir seçenek olacak. Buraya tıklayıp indirdiğiniz dosyayı bulun ve seçin. Sonra sertifika ismine "MEB_SERTIFIKASI" yazıp kaydedin.

En Hızlı Çalışan ve En Hafif Linux Dağıtımları

En hızlı çalışan ve en hafif Linux versiyonlarını şöyle sıralayabiliriz:
(Not: Bunların hepsini 512RAM'li bir bilgisayarda bizzat denedim.)

1. Slitaz (çok hızlı, hatta uçuyor. fakat sadece usb yada cd'den çalışıyor. yada ben kuramadım)
2. Lubuntu
3. Xubuntu
4. Pisi Linux
5. Kubuntu

Edubuntu okullar için güzel bir dağıtım. Ama Unity arayüzüne sahip olduğu için ve Unity arayüzü en ağır arayüz olduğundan yavaş kalıyor.

ÖZET: Aslında Linux dağıtımının hızlı çalışmasının en önemli nedeni ve püf noktası kullandığı arayüzdür. LXDE ve XFCE  arayüzleri düşük sistem özellikli bilgisayarlar için birebir.

Pisi Linux ile tanışmamı sağlayan öğrencim Mehmet Sütçü'ye (Pisi Linux Tasarım Sorumlusu) teşekkür ederim.

İstanbul Şoförler Esnaf Odası Plaka Basım Yeri (Ümraniye ve İstanbul'daki Tüm Şubeler)

Güncel Bilgi: Daha önce Bağlarbaşı'nda bulunan Üsküdar şubesi kapanmış. En yakın olarak Ümraniye şubesi mevcut:

ÜMRANİYE MOT. TAŞ. SAHİPLERİ VE ŞOF. ESNAF ODASI
PLAKA BASIM ATÖLYESİ

ADRES: İSTİKLAL MAH. MİTHATPAŞA CAD. MERT İŞ MERKEZİ NO: 5/6 ÜMRANİYE/İSTANBUL

TEL:    :  0 216 335 09 75 – 0 216 412 37 75


Bu bilgi Türkiye Şoförler ve Otomobilciler Federasyonu web sayfasından alınmıştır. Bu sayfadan İstanbul ve diğer şehirlerdeki plaka basım şubelerine ulaşabilirsiniz.



Edmodo Bize Özel Sosyal Ağ Afişi

Edmodo'nun öğrencilere özel hazırlandığını anlatan afiş çalışması. Bu afişi okullarınızda ve web sitelerinizde kullanabilirsiniz.