İçeriğe geç

PHP

WordPress İçin İlk Eklentim

Wordpress için eklenti yazma konusunda biraz araştırma yapıp  bir kaç deneme yaptıkta sonra bir  eklenti yapıp yayınlamaya karar vermiştim.O kararımdan sonra yazdığım ilk  eklenti Slider With slidejs.

Bu  eklenti  üstteki  resimde  gördüğünüz  gibi bir slider ı blogunuza eklemenizi sağlıyor.

Kurulum

Eklentiyi kurmak için Wordpress Başlangıç>Eklentiler>Yeni Ekle sayfasındaki  arama  bölümüne ‘Slider With slidejs’ yazarak veya indirme linkine tıklayarak indirdiğiniz zip dosyasını wordpress eklenti dizinine atarak kurulum yapabilirsiniz.

Kullanımı

Slider in gözükmesini  sağlamak için temanızın index.php dosyasında slider in gözükmesini istediğiniz yere

[php]$slider->addSlider();[/php]

kodunu eklemeniz gerekiyor.

Slider a resim eklemek için blogunuza yazı eklerken yazının özel alanlarına sliderImage isminde, değeri eklemek istediğiniz resmin adresi olan bir özel alan ekleyin.

Resim  bilgilerini  ekledikten sonra yazıyı  yayınladığınızda yazı  ile ilgili resim slider da gözükecektir.

[box type="note"]Slider ın  çalışması için en az iki resim eklemiş olmanız gerekiyor.[/box] [box type="download"]İndir[/box]

PHP upload_max_filesize Değerini Değiştirme – Linux

PHP ile kullanıcının siteye dosya yüklemesini sağlayabiliyoruz bunu yaparken en çok kullanılan ve en basit metot post metodu ile sunucuya dosya yükletmek. Basit bir html form ile kullanıcın kendi bilgisayarından seçtiği bir dosyayı sitemize yüklemesini sağlayabiliriz.PHP  de güvenlik tehditlerinin en çok yaşandığı durumda dosya upload işlemidir. Upload işlemi ile dosyalar denetlenmeden sunucuya yüklenirse ciddi sorunlara yol açabilir.Upload işleminde bir diğer sıkıntı ise büyük dosyalar yüklenerek sunucunun kilitlenmesi. Bu durumu önlemek için php post metodu ile yüklenecek dosyanın boyutuna sınır koymuştur bu sınır php.ini (php ayar dosyası) dosyasında upload_max_filesize değeri ile belirlenir.

Upload_max_filesize değeri ön tanımlı olarak 2mb olarak belirlenmiştir.Bu değer çoğu zaman kullanıcıya az gelir. Günümüzde fotoğraf makineleri ile çekilen resimler  3-5 mb arasında oluyorlar.Kullanıcı çektiği bir resmi siteye yüklemeye çalıştığı zaman 2mb sınırı ile karşılaşıyor ve bu hoş bir durum olmuyor.

Bu durumdan kurtulmak için iki yöntemden bahsedeceğim birinci yöntem sunucu yönetimini elinde barındıran kullanıcılar için .

PHP.ini dosyasını düzenlemek

php.ini dosyası  PHP nin ayarlarının bulunduğu dosyadır. Bu dosya ile upload_max_filesize değerini değiştirebiliriz. Bu işlemi  yapabilmemiz için sunucumuza SSH bağlantısı ile bağlanmamız gerekiyor.Eğer localhost ile çalışıyorsanız direk konsoldan komutları  girebilirsiniz. Bu  işlemleri  yapabilmeniz için sunucuda root yetkinizin olması gerekiyor. SSH bağlantımızı  kurduktan sonra root yetkisine erişmek için “su” komutunu  verin ve root şifresini  yazıp enter a basın. root şifresini  bilimiyorsanız yada belirlemediyseniz her komutun başına “sudo” eklemeniz gerekiyor sudo  ekledikten sonra sizden şifre girmezin istenecek  aktif kullanıcının şifresini yazıp enter a basın.

Şimdi php.ini dosyamızın konumunu görmek için

[code]locate php.ini[/code]

Komutunu  çalıştıralım .Buna benzer bir sonuç alacaksınız:

[code]/etc/php5/apache2/php.ini
/etc/php5/cli/php.ini
/usr/share/php5/php.ini-development
/usr/share/php5/php.ini-production
/usr/share/php5/php.ini-production-dist
/usr/share/php5/php.ini-production.cli[/code]

Sonrasında php.ini dosyasının içeriğini  değiştirmek için konsol üzerinde çalışan bir metin editörü olan nano  programını kullanacağız.

[code]nano /etc/php5/cli/php.ini[/code]

Bu  komut ile “/etc/php5/cli/php.ini” yolundaki php.ini dosyasının içeriği açılmış olacak. php.ini dosyasının içinde bir çok ayar mevcut upload_max_filesize değerini bulmak için “Ctlr+w” tuş  kombinasyonuna basarak arama yapabiliriz.Arama kısmına upload_max_filesize yazıp istediğimiz değere kolayca ulaşabiliriz. buradaki  2M değerini 8M yada 10M gibi değerlerle değiştirebilirsiniz.

İstediğiniz gibi değişimi yaptıktan sonra “Ctrl+x” ve “y” yi tuşlayarak dosyayı kaydedin.Ayarın uygulanması için apache sunucusunu yeniden başlatılmalı bunun için

[code]service apache2 restart[/code]

komutunu yazıp enter a basmanız yeterli.

.htaccess dosyası ile bilirleme

Eğer sunucuya erişiminiz yoksa .htaccess dosyası ile upload_max_filesize değerini belirtebilirsiniz. Host unuzda bulunan  .htaccess dosyasını n içerisine aşağıdaki  satırları  ekleyecek upload limitinizi  düzenleyebilirsiniz.

[code]#Upload limiti Blirle

php_value post_max_size 10M

php_value upload_max_filesize 10M[/code]

Dosya işlemleri

Merhabalar. Bu yazımda PHP ile bir dosya nasıl oluşturulur dosya içeriği nasıl okunur dosyaya yeni bilgiler nasıl yazılır ondan bahsedeceğim.

Dosya işlemlerinde kullanılan başlıca fonksiyonlar fopen() , fread() , fwrite() , filesize() ,  file_get_content() , file_put_content() , fclose() dir. Bu fonksiyonların yanında dosya işlemleri ile ilgili bir çok fonksiyon mevcut bu fonksiyonların tamamına php.net(Dosya işlemleri için tıklayın.) adresinden ulaşabilirsiniz.

fopen() Fonksiyonu

Yolu belirtilen dosyayı işlem yapmak için açar. Dosyayı açmak için bir kip seçmelisiniz bu kip dosyanın hangi şartlar için açılacağını belirler.

[php]$dosya = fopen(‘yenidosya.txt’, ‘r’);
if ($dosya) {
echo ‘Dosya okumak için açıldı’;
} else {
echo ‘Dosya okuma için açılamadı’;
}[/php]

Burada fopen fonksiyonuna “r” parametresi vererek dosyanın sadece okuma için açılacağını belirtiyoruz. Eğer dosya varsa ve dosya izinleri okuma için izin veriyorsa dosya okumak için açılır ve true değerini döner.Eğer dosya yoksa veya dosya izinleri okumaya izin vermiyorsa false değerini döner.

[php]$dosya = fopen(‘yenidosya.txt’, ‘w’);
if ($dosya) {
echo ‘Dosya oluşturuldu yazma için açıldı’;
} else {
echo ‘Dosya oluşturulamadı’;
}[/php]

Burada fopen fonksiyonuna “w” parametresini vererek dosyanın yazma için açılmasını istedik.Eğer belirtilen dosya mevcut değilse dosya oluşturulur.

fwrite() Fonksiyonu

fopen() ile açılmış bir dosyaya 2.parametrede belirtilen metni yazar.

[php]if (fwrite($dosya, ‘Yeni dosya oluşturuldu’)) {
echo ‘Dosyaya "Yeni dosya oluşturuldu" yazıldı’;
} else {
echo ‘Yazma işlemi başarısız oldu’;
}[/php]

fopen ile oluşturduğumuz ve yazma için açtığımız dosyaya fwrite fonksiyonu ile  “Yeni dosya oluşturuldu” metnini yazdık.

filesize() Fonksiyonu

Dosya yolu belirtilen dosyanın boyutunu bayt  olarak döner.

[php]$dosyaBoyutu = filesize(‘yenidosya.txt’);
echo ‘Yeni oluşturduğumuz ve içine metin yazdığımızın şuanki  boyutu ‘.$dosyaBoyutu.’ bayt.’;[/php]

Çıktı:

[code]Yeni oluşturduğumuz ve içine metin yazdığımızın şuanki boyutu 23 bayt.[/code]

fread() Fonksiyonu

fopen ile açılmış bir dosyanın içeriğini belirtilen uzunluk kadar okur ve string olarak döner.

[php]$dosya = fopen(‘yenidosya.txt’, ‘r’);
if ($dosya) {
echo ‘Dosya okumak için açıldı</br>’;
} else {
echo ‘Dosya okuma için açılamadı</br>’;
}
$dosyaBoyutu=filesize(‘yenidosya.txt’);
$okunan=fread($dosya,$dosyaBoyutu);

echo ‘yenidosya.txt dosyasının içeriği :’.$okunan.'</br>’;[/php]

Çıktı :

[code]Dosya okumak için açıldı
yenidosya.txt dosyasının içeriği :Yeni dosya oluşturuldu[/code]

Burada ikinci  parametre olarak dosya boyutunu yazdık , bu şekilde dosyanın tamamını okumasını sağladık. Bazı durumlarda dosyanın tamamı tek seferde okunmaya biliyor.Bu durumda bir while döngüsü ile dosya sonuna ulaşıp ulaşmadığını kontrol ettirip dosya sonuna gelene kadar dosyanın okunmasını sağlayabiliriz. Örnek olarak :

[php]$dosyaBoyutu = filesize(‘yenidosya.txt’);
$okunan = ”;
while (feof($dosya)) {
$okunan .= fread($dosya, $dosyaBoyutu);
}

echo ‘yenidosya.txt dosyasının içeriği :’ . $okunan . ‘</br>’;[/php]

fclose() Fonksiyonu
fopen() fonksiyonu ile açılmış dosya bağlantısını kapatmak için kullanılır.Eğer dosya kapatılmazsa dosya üzerinde başka işlen yapılamaz ve ek olarak gereksiz yere bellek harcamış olur.Bu yüzden fopen ile açtığınız bağlantıları işlemler bitince kapatmayı unutmayın.

[php]$dosya = fopen(‘yenidosya.txt’, ‘r’);
if ($dosya) {
echo ‘Dosya okumak için açıldı</br>’;
} else {
echo ‘Dosya okuma için açılamadı</br>’;
}
$dosyaBoyutu=filesize(‘yenidosya.txt’);
$okunan=fread($dosya,$dosyaBoyutu);

echo ‘yenidosya.txt dosyasının içeriği :’.$okunan.'</br>’;
fclose($dosya);[/php]

file_get_content() Fonksiyonu

Dosya yolu belirtilen dosyanın içeriğinin tamamını okur ve string olarak döner.Dosyanın fopen ile açılması gerekmez.

[php]$okunan = file_get_contents(‘yenidosya.txt’);
echo ‘yenidosya.txt dosyasının içeriği :’ . $okunan . ‘</br>’;[/php]

file_get_content fopen,fread ve fclose fonksiyonlarının sırası ile çalıştırılmış hali gibidir.

Çıktı :[code]<code>yenidosya.txt dosyasının içeriği :Yeni dosya oluşturuldu</code>[/code]

file_put_content() Fonksiyonu
Dosya yolu belirtilen dosyaya paremetrede belirtilen string i yazar.fopen ile dosyanın açılması gerekmez.

[php]$icerik = "file_get_content fonksiyonu fopen,fwrite ve fclose fonksiyonlarının işlemlerini tek başına yaptığı için kullanımı  daha iyidir.\n
file_put_content fwrite fonksiyonuna göre daha hızlıçalışır.\n
dosyaya veri yazarken file_get_content fonksiyonunu kullanmanızı tavsiye ederim.";
file_put_contents(‘yenidosya.txt’,$icerik);

$okunan=file_get_contents(‘yenidosya.txt’);
echo $okunan;[/php]

Çıktı :

[code]file_get_content fonksiyonu fopen,fwrite ve fclose fonksiyonlarının işlemlerini tek başına yaptığı için kullanımı daha iyidir. file_put_content fwrite fonksiyonuna göre daha hızlıçalışır. dosyaya veri yazarken file_get_content fonksiyonunu kullanmanızı tavsiye ederim.[/code]

Birinci PHP-İST Etkinliği

PHP Etkinlikleri  gittikçe artıyor PHP günlerinin ardında şimdi de PHP-İST etkinliği düzenleniyor. Etkinlikler sektördeki  uzmanlarla tanışmak  onlarla bilgi  alışverişinde buluşmak açısından  çok  faydalı oluyor. İmkanı olan her PHP yazılımcısının katılmasını  öneriyorum.KPSS tarihine denk  geldiği için ben katılamayacağım ne yazıkki

[quote style="boxed"]Birinci php-ist etkinliğinde php dünyasındaki son gelişmeleri, en yeni teknolojileri konuşuyoruz. Test ve kalite araçlarından frameworklere kadar enine ve boyuna ‘PHP’ yi tartışmaya seni de bekliyoruz [/quote]

[box type="tick"] Etkinlik Ana Sayfası:http://2013.phpist.org/[/box] [box type="tick"]Konuşmacılar:http://2013.phpist.org/#!/speakers[/box] [box type="tick"]Etkinlik Programı: http://2013.phpist.org/#!/program[/box]

 

PHPMailer ile SMTP ile Mail Göndermek (Örnek Gmail İle)

Merhabalar bu yazımda PHPMailer kullanarak harici  bir mail  sunucusu ile nasıl  mail  gönderimi  yapacağımızı  göstereceğim. Bir framework kullanmadan bu  işlemi  yapmak  bizi  belki  biraz  uğraştıra bilir ama bu  işlemi  PHPMailer kullanarak yapmak  gayet kolay olacak.

Kullandığınız sunucu mail hizmetinde yetersiz kalıyor yada mail işlemleri için kullanamıyorsanız başka bir  sunucu ile mail  işlemlerini  yapabilirsiniz.Bunun için Mail  sunucusunun host adresini , kullanıcı adı  ve şifre bilgilerine  sahip olmanız  gerekiyor. Bu bilgilere sahipsek Kodlamaya başlayalım.

[php]
&lt;?php

require_once(‘class.phpmailer.php’);

$mail= new PHPMailer();
$mail-&gt;CharSet =’utf-8′;
$mail-&gt;IsSMTP();
$mail-&gt;SMTPDebug = 2;
$mail-&gt;SMTPAuth = true;
$mail-&gt;Host = ‘mailsunucuadresi’;
$mail-&gt;Port = 25;
$mail-&gt;Username = ‘mailkullanıcıadı’;
$mail-&gt;Password = ‘mailkullanıcışifresi’;

$body=’html mail içeriği’;

$mail-&gt;SetFrom(‘gönderenadres’,’gönderenadı’);
$mail-&gt;AddAddress(‘alıcıadres’,’alıcıadı’);
$mail-&gt;Subject = ‘Mail konusu’;
$mail-&gt;AltBody = ‘text mesaj’;
$mail-&gt;MsgHTML($body);

if(!$mail-&gt;Send()) {
echo ‘Mail Gönderilemedi’;
} else {
echo ‘Mail Gönderildi’;
}
?&gt;
[/php]

Bu kodlarda daha önce yazdığım PHPMailer yazısından birkaç  farkı  var onları belirteyim .

[php]
$mail-&gt;IsSMTP();
$mail-&gt;SMTPDebug = 2;
$mail-&gt;SMTPAuth = true;
$mail-&gt;Host = ‘mailsunucuadresi’;
$mail-&gt;Port = 25;
$mail-&gt;Username = ‘mailkullanıcıadı’;
$mail-&gt;Password = ‘mailkullanıcışifresi’;
[/php]

 

[php]$mail-&gt;IsSMTP();[/php]

fonksiyonunu çağırarak SMTP kullanarak mail göndereceğimizi belirtiyoruz.

[php]$mail-&gt;SMTPAuth = true;[/php]

ile Mail sunucusunda oturum açacağımızı belirtiyoruz.

[php] $mail-&gt;Host = ‘mailsunucuadresi’;
$mail-&gt;Port = 25;
$mail-&gt;Username = ‘mailkullanıcıadı’;
$mail-&gt;Password = ‘mailkullanıcışifresi’;
[/php]

Bu fonksiyonlar ile de bağlantı kurulacak olan mail sunucusunu  sunucunun kullandığı portu ve oturum bilgilerini belirliyoruz.

Gmail  Üzerinden Mail  GÖnderimi yapmak için ise kodalamamız şu şekilde olmalı:

[php]

&lt;?php

require_once(‘class.phpmailer.php’);

$mail=new PHPMailer();
$mail-&gt;CharSet =’utf-8′;
$mail-&gt;IsSMTP();
$mail-&gt;SMTPDebug = 2;
$mail-&gt;SMTPSecure = ‘ssl’;
$mail-&gt;SMTPAuth = true;
$mail-&gt;Host = ‘smtp.gmail.com’;
$mail-&gt;Port = 465;
$mail-&gt;Username = ‘gmail kullanıcı adı’;
$mail-&gt;Password = ‘gmail kullanıcı şifresi’;

$body=’html mail içeriği’;

$mail-&gt;SetFrom(‘gönderenadres’,’gönderenadı’);
$mail-&gt;AddAddress(‘alıcıadres’,’alıcıadı’)
$mail-&gt;Subject = ‘Mail konusu’;
$mail-&gt;AltBody = ‘text mesaj’;
$mail-&gt;MsgHTML($body);

if(!$mail-&gt;Send()) {
echo ‘Mail Gönderilemedi’;
} else {
echo ‘Mail Gönderildi’;
}
?&gt;
[/php]

Exit mobile version