Php ile user agent değiştirmek

Bazen olur ki php ile curl kullanmadan user agent değiştirmek isteriz.Curl ile curlopt_useragent ile kolayca yapabileceğimiz işlemi aslında php ile de kolayca yapabiliriz.

Mesela bazen karşımıza çıkar file_get_contents yaparken user agent kullanmayız verileri çekemeyız.İşte o zaman bu kod işimizi görebilir 🙂

 

<?php
$ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36";
ini_set('user_agent', "$ua");

User agentlere ulaşmak için buraya bakabilirsiniz..

Php ile github api kullanımı

Selamlar arkadaşlar internette dolanıyordum ki ne göreyim! Github api baktım ilk önce birazcık garipsedim github nasıl key vs. oluşturmadan sunuyor diye sonra hemen bir örnek uygulama yapayım dedim…

Öncelikle bu bağlantıdan apiye ulaşabilirsiniz.Emojilerden tutun kullanıcı bilgilerine kadar var.Aşağıda örnek bir uygulama sizi bekliyor.

<?php
// Kullanıcı adını yazıyoruz.
$kadi = "borabozdogan";
// Curl'in gideceği bağlantı
$git = "https://api.github.com/users/{$kadi}";

// Curl parametrelerimizi belirtiyoruzzz.
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $git);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_REFERER, "https://google.com.tr");
curl_setopt($ch, CURLOPT_USERAGENT, "Google Bot 1.0");
$bas = curl_exec($ch);

 

// Gelen veriyi json to array yapıyoruz.
$json = json_decode($bas, true);

// İstediğimiz verileri ekrana yazdırıyoruz..
echo "Kullanıcı Adı : $json[login] <br />";
echo "Kullanıcı İd : $json[id] <br />";
echo "Avatar Url : $json[avatar_url] <br />";
echo "Bio : $json[bio] <br />";

Hadi kolay gele..

Php İle Güvenli Parola Şifreleme

Merhabalar arkadaşlar ,php yazılımlar geliştirirken gerek admin panel ,gerek kullanıcılar için oluşturulan parolaların direkt olarak çekilmesi güvenlik problemleri oluşturabilir bizler için.Bunun için password_hash ve password_verify fonksiyonlarını kullanacağız.

Password_hash fonksiyonunda 2 adet farklı işleyiş var , PASSWORD_DEFAULT ve PASSWORD_BCRYPT.Biz bu yazımıda ilk işleyişimizi kullanacağız.

En basitinden hepimiz insanız ,ufak bir sql injection açığında tüm veritabanı aşağıda kolaylıkla indirilebilir.Bu gibi durumlarda bütün parolalar ve erişim için detaylar dışarıya aktarılabilir.

Türkiye de gördüğüm çoğu geliştirici de projeleri köklü olsa bile şifreleme kullanmıyor veya md5,sha1 gibi algoritmalar kullanıyor.Bu algoritmalar doğrudan kırılamaz olsa bile internet üzerinde hazır wordlist checker ile bazen kırılabilmektedir.

İlk etapta  gelen bi veriyi şifreleyelim.

<?php
$parola = "123456";
$sifrele = password_hash("{$parola}", PASSWORD_DEFAULT);
echo $sifrele;
?>

$parola değişkeninine şifrelenecek olan verimi girdim ,genelde kayıt sayfasında bu şekilde işlem yapılır.$parola değişkeni post ile gelen parola olur.Sayfayı her yenilediğinizde farklı hash oluşmasına aldanmayın 🙂 Bu işin doğasında var..

Oluşturulan bir hashı kopyaladım ve bir değişkene aktarıyorum, bu değişken değil de bir veritabanı da olabilir.Bunun bir önemi yok.Doğrulama için password_verify kullanıyoruz.

<?php
$parola = '123456';
$hash = '$2y$10$YfVtZ/gLwmOdl/m6mgo2n.U7wBgvSz1mgC.P2bBpVl9XCgaZJ1fsW';


if (password_verify("{$parola}",$hash)) {
	echo "Doğru";
}else {
	echo "Yanlış";
}
?>

Yukarıda gördüğünüz gibi if ile güzel bir şekilde kontrol yaptırdık ve hash’ın doğru olup olmadığını anladık.

Php İle Dns Bilgileri Almak

Aslında bayağıdır paylaşım yapmıyordum ,gireyim de az post basayım dedim 🙂 Dns bilgileri bazen işimize yarıyabilir , pek olmasada..

Öncelikle kullandığımız fonksiyonumuzun adı dns_get_record çok bilinen bir fonksiyon değil aslında.Rastladığım bazı kişiler saçma salak botlar ile yapmışlar bu işlemi ,fakat php’nin bize sunduğu hali hazırda cıncık gibi bir fonksiyon var.Örnek kod aşağıda.

 

<?php 
$dns = dns_get_record("borabozdogan.net.tr"); 
print_r($dns); 

?>

Yorumlarınızı eksik etmeyin dostlar.

Php İle Döviz Kurları Çekme

Mrblar ,örnek bir uygulama yaptım.Yeni başlayan arkadaşlar için faydalı olacaktır.

<?php
$site = file_get_contents("https://kur.doviz.com/"); //sitemize bağlandık
preg_match_all('@<span class="menu-row2">(.*?)</span>@si',$site,$veri); //çektiğimiz verileri $veri dizisine aktardık
?>

<h3>Gram Altın : <?=$veri[0][0];?></h3>


<h3>Dolar : <?=$veri[0][1];?></h3>


<h3>Euro : <?=$veri[0][2];?></h3>

Php İle Base64 İçerikli Fotoğrafları Kayıt Etmek

Merhabalar arkadaşlar ,internet üzerinde dolanırken bir kişinin sorunla karşılaştığını gördüm.Daha evvel kullandığım bir teknik aklıma geldi.

Sizlerle paylaşmak istiyorum bu örnek kodları ,öncelikle gelen verim Aşağıdaki biçimde olsun.

Örnek linkimiz view-source:http://www.elele.com.tr/guzellik/makyaj/makyaj-hileleri burası olsun.Sayfada ctrl f yardımı ile base64 diye aradğımızda görselimize rastlıyoruz.

Karşımıza gelen kodda olay şu şekilde ,image/jpeg;base64, -> base64 kodları…

Burada yapacağımız işlem gelen base64’ü kırıp bi değişkene aktarmak.Ardından resim dosyası oluşuturup kırılan base64’ü ona yazdırmak..Örnek kodlar aşağıdaki biçimde.

 

<?php

$b64 = "kodlar..";

$i = base64_decode($b64);
$ad = "test";
touch("$ad.jpg");

$dosya = fopen("$ad.jpg", 'w');
fwrite($dosya, "$i");
fclose($dosya);

?>

Php Trim Fonksiyonları Kullanımı

Php kodu yazarken çoğu geliştiricinin kullanmadı eski bir fonksiyon.Ama bazı durumlar olur ki size trim fonksiyonu cidden lazım olur..

Trim soldaki ve sağda bulunan boşlukları silmeye yarayan bir fonksiyondur.L-Trim ve R-Trim ise left ve right’dan gelmektedir.

Sol ve sağ yani.Örnek kullanımını ise aşağıdaki şekilde yapabilirsiniz.

$abc = "  trim fonksiyonu  ";
print trim($abc);

Kullanımı kısaca bu şekilde ,soldan almak istersen ltrim sağdan almak istersek rtrim işimizi görecektir.

Olay böyle ,kolay gelsin..

Larevel Migration Nedir? Nasıl Kullanılır?

Laravel ile ilgili yazılar hazırlamaya başlamıştım ,yaklaşık 15 adet yazıdan oluşacak bu seri umarım güzel bir bilgi kaynağı olacaktır.

Veritabanları php projelerin olmazsa olmazlarındandır.Düz php ile yazılımlar geliştirirken veritabanını phpmyadmin yardımıyla oluşturup kullanımlar için ise dışarı aktarırdık.

Laravel ve Migration yapısı olan frameworklerde ise bu olay php dosyaları üzerinden sorgular çalıştırılarak gerçekleştiriliyor.Bu da kurulum ve olası hatalara karşı bir nevi çözüm demek.

Migration kullanmak ,teslim ettiğiniz yazılımın kurulumunu oldukça kolaylaştıracaktır.

Laravelde migration oluşturmak için kullanılan komut make:migration ,şimdi diyeceksiniz neden böyle şeylerle uğraşıyoruz.Composer ve artisanı bizim amelemiz gibi düşünün.Tek tek girip çıkmak zor iş olsa gerek ve veritabanı yapısının düzenlenmeside oldukça zor..

Basit bir migration oluşturmak için aşağıdaki kodu kullanabiliriz ,bu kod arabalar adında migration oluşturcaktır.

php artisan make:migration create_arabalar_table

Oluşturulan migration dosyası database/migrations içerisinde bulunmaktadır.

Yukarıda belirttiğim gibi ,migration bir nevi sorguları php dosyasının içerisinde çalıştırmak.

Oluşturduğumuz migration dosyasını açalım ,içerisinde iki tane public function tanımlanmış olacak.Bunlardan ilki public function up genellikle yeni veriler eklemek amacıyla kullanılır.İkinci ise public function down tabloların kaldırılması ,boşaltılması gibi amaçlarla kullanılır.

Bizim yapacağımız migration da public function up aşağıdaki şekilde olacak.

public function up()
{
Schema::create('arabalar', function (Blueprint $tablo) {
$tablo->string('araba_id');
$table->string('araba_ad');
$table->string('araba_model');

});
}

Umarım kafanızda kabaca bir taslak oluşturmuştur.Gelelim migrationları çalıştırmaya..

php artisan migrate

Komutunu artisana vermemiz yeterli olacaktır.

Son olarak tablo adı değiştirmeyi ve tablo silmeyi göstermek istiyorum.

Schema::drop('arabalar');

Bu kod ile arabalar tablosunu siliyoruz.Droptan anladığınız gibi.

Schema::rename($eski ,$yeni);

Değişkenlere atadığımız verilerle rename kullanarak tablo isimleri değiştirebiliriz.

Olay kısaca budur arkadaşlar ,daha detaylı bilgi sahibi olmak için laravel dökümantasyonunu inceleyebilirsiniz.

Laravel Nedir? Laravel Nasıl Kurulur?

Laravel ,özellikle web geliştirme yapan arkadaşların sıkça duyduğu bir php framework..Laravel geliştiricilerin basit ve işlevsel kodlar yazmasını sağlayan php geliştirme sektöründe büyük bir yer kaplayan framework..

Laravel diğer frameworklere nazaran çok çabuk öğrenilebilir ,küçük uygulamalardan tutun kapsamlı projelere kadar geliştirme maksimum performansla yapılır.

Kısaca laravel budur ,neden mi laravel kullanmalısınız? Laravel size her türlü imkanı kolayca kullandırttırır ,spagetti php ile 1 ayda yazacağınız uygulamayı laravel ile zevkli bir şekilde 1 haftada dahi çıkartabilirsiniz..

İçerisinde tema sistemi içerir ve eloquent orm kullanır…

Kafanızda bir taslak oluşmuştur diye düşünüyorum ,gelelim laravel kurulumuna.
Linux için kurulum yapmak istiyorsak ilk önce composer kurulumunu gerçekleştirmeliyiz.

curl -sS https://getcomposer.org/installer | php

Ardından composer yardımıyla laravel dosyalarını sunucumuza çekmeliyiz.Komutumuzu çalıştırdığımız dizin proje dizinimiz olmalıdır.

composer create-project laravel/laravel projeismi

Laravel projeniz başarı ile kurulmuş olacaktır.Klasörünüze girip hemen geliştirmeye başlayabilirsiniz.

Eğer laravel ekranında 500 hatası alıyorsanız bilin ki dosyalarınızda chmod yani yazma izni yoktur.Dosyaların yazma izinlerini düzeltip tekrardan deneyebilirsiniz.

Unutmayın ,500 hatası sunucudan kaynaklanan bir sorundur.Dosyaların yazma izinleri yoktur ,kodlarda hata vardır vsvs..

Linux işletim sisteminde chmod izinlerini değiştirmek için aşağıdaki kodu kullanabilirsiniz.

chmod -R xxx public_html/laravel

Xxx ile yazdığımız yere chmod izini gelecektir.Chmod hakkında daha fazla bilgiye sahip olmak için buraya tıklayabilirsiniz.


Eğer windows işletim sistemi kullanıyorsanız ,aşağıdaki yolları inceleyiniz.

Windows’a kurulan sunucu paketleri genelde içerisinde composer bulundurmaz.Aslında ne windows ne de linuxde default olarak composer kurulu gelir..

Ama normal bir geliştirme yaparken bile composer kurulması gereklidir.

Composer kurulumunu indirmek için get composer bağlantısını ziyaret edebilirsiniz.Download kısmından size uygun olan versiyonu indririp ,kurulum sırasında php.exe dosyanızı bulunduğu konumdan seçmeniz gerekmektedir.

Gerisi linux işletim sisteminde yaptığımız gibi ,aşağıdaki kodu proje dizinimizde çalıştırmamız yeterlı olacaktır.

composer create-project laravel/laravel projeismi

Laravel ve ben?

Bundan bayaa bir önceye kadar laravel kullanmıyordum ,aslında çok öneriye rastlıyordum fakat üşengeçlikten dökümantasyonuna bile kabaca göz atmamıştım.2-3 gün evvel boş bir vaktim vardı incelemeye karar verdim ,gerçekten bana basit geldi.Yukarıda belirttiğim gibi hem performansı yüksek hem de kolay bir framework.

Her php geliştiricisinin az da olsa anlaması gereken bir framework diyebilirim ,codeıgnıter ile vs attırdığımızda performans olarak laravel sollayıp geçiyor 🙂

Yorumlarınızı eksik etmezseniz mutlu olurum.