Barış AKDEMİR tarafından yazılmış tüm yazılar

Php ile Ftpden Dosya Transferi

Php ile standart olarak move_uploaded_file() fonksiyonunu kullanarak, istenilen dosyayı sunucu üzerine kayıt etmek mümkün, ancak ftp üzerinden dosya yazma izni vermek sakıntılı durumlar oluşturabileceğinden, ftp yardımıyla dosya transfer etmek daha güvenli olabilir. Bir diğer neden ise uzak sunucuya dosya yükleme ihtiyacı gerekliliği olduğunda kullanmak. Bu makalede dosya yükleme ve silme olmak üzere iki örnek vericem. Umarım faydalı olur.

Dosya Yükleme

<?php
$ftp_adres = 'sakinadam.com';
$ftp_k_adi = 'ftp kullanici adi';
$ftp_sifre = 'ftp sifre';
$kaynak	   = 'kaynak url';//kaydedilecek olan dosyanın kaynagı, dosya yüklemelerde $_FILES["myfile"]["tmp_name"] de kullanabilirsiniz
$hedef     = 'hedef url';//hedef sunucuya yüklenirken hangi url ile yüknecek. örn: resim.jpg


$baglanti = ftp_connect($ftp_adres);
ftp_login($baglanti, $ftp_k_adi, $ftp_sifre);
ftp_chdir($baglanti, 'public_html/images');
ftp_put($baglanti, $hedef, $kaynak, FTP_BINARY);
ftp_close($baglanti);
?>

Dosya Silme

<?php
$ftp_adres = 'sakinadam.com';
$ftp_k_adi = 'ftp kullanici adi';
$ftp_sifre = 'ftp sifre';

$baglanti = ftp_connect($ftp_adres);
ftp_login($baglanti, $ftp_k_adi, $ftp_sifre);//baglanti yapiliyor
ftp_delete($baglanti, 'public_html/resim.jpg');//dizin ve dosya belirleniyor
ftp_close($baglanti);//baglanti kapatiliyor
?>

Php yardımıyla ftp işlemleri yaparken dikkatli olmanız gerekiyor. Bir dosya yüklerken aynı isimde bir dosya varsa direkt üzerine yazıyor ve size herhangi bir işlem onay sorusu sormuyor. Silme işleminde de durum aynı.

Php ile Mail Gönderme

Kullanıcı onaylamak, bülten göndermek gibi durumlarda php ile mail göndermeye ihtiyaç duyuyoruz. Basit olarak php’nin mail fonsiyonuyla bu işlemi gerçekleştirebiliz ancak; spama düşme, eksik gönderim gibi durumlardan dolayı kütüphane kullanmak en mantıklısı. Php için bir çok mail kütüphanesi yazılmış ancak en basiti ve kullanışlısı kuşkusuz PhpMailer. Önce kütüphanenin nasıl indirileceğini anlatayım sonra nasıl kullanılacağını anlatalım. Kütüphaneyi indirmek için bu adrese gidin ve sağ kısımda bulunan “Download ZIP” butonuna tıklayın. Benim anlatacağım kısım için, ana dizindeki üç dosyayı kullanıcaz(class.phpmailer.php,class.pop3.php,class.smtp.php).

PhpMailer ile iki farklı şekilde Mail Gönderme mümkün. İlki smtp kullanarak mail göndermek. Bu yöntemde; mail adresinizin kullanıcı adı ve şifresi ile giriş yapılır ve mailiniz bu şekilde gönderilir. Kullandığınız sunucu dışındaki bir yerden mail gönderecekseniz bu yolu kullanmak mantıklı. Örneğin gmail. Ancak aynı sunucu üzerindeki bir mail adresini kullanacaksanız pop3 yöntemini kullanmanızı daha iyi olur. Aynı sunucu üzerinde ise hem aralarında fark yoktur hem de smtp ile göndermek biraz daha sunucuyu yorabilir.

Php Smtp ile Mail Gönderme Örneği (include edilen dosyalar ile aynı dizindedir):

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>PHPMailer - SMTP test</title>
</head>
<body>
<?php

//Zaman dilimi
date_default_timezone_set('Etc/UTC');

require_once 'PHPMailerAutoload.php';

//Create a new PHPMailer instance
$mail = new PHPMailer();
//turkce karakterler icin
$mail->CharSet='utf-8';
//Tell PHPMailer to use SMTP
$mail->isSMTP();
//Hataların Gösterilmesi kapalı için false, kullanıcı hataları için 1, hem kullanıcı hem de sunucu hataları için 2
$mail->SMTPDebug = 2;
$mail->Debugoutput = 'html';
//mail sunucusunun adresi
$mail->Host = "mail.example.com";
//mail sunucusunun portu
$mail->Port = 25;
//yukarıdaki iki bilgiyi bulamazsanız, ilgili mail adresini thunderbird gibi bir mail istemcisine kurun ve bağlantı bilgilerine bakın.
$mail->SMTPAuth = true;
//kullanıcı adı
$mail->Username = "yourname@example.com";
//şifre
$mail->Password = "yourpassword";
//mail kimden geliyor gibi görünecek.
$mail->setFrom('from@example.com', 'First Last');
//cevapla butonuna bastığında kimin mail adresine gönderilecek.
$mail->addReplyTo('replyto@example.com', 'First Last');
//mail gönderilecek adres
$mail->addAddress('whoto@example.com', 'John Doe');
//mail konusu
$mail->Subject = 'PHPMailer SMTP test';
//mail gövdesi. bu örnekte harici bir html dosyasından alınıyor ancak düz yazı da yazabilirsiniz.
$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
//bu kısım önemli. mail yüklenirken vb. durumlarda bu yazı görünüyor.
$mail->AltBody = 'This is a plain-text message body';
//dosya eklemek isterseniz bu şekilde ekliyorsunuz.
$mail->addAttachment('images/phpmailer_mini.gif');

//mail gönderme işlemi.
if (!$mail->send()) {
    echo "mail gönderilemedi: " . $mail->ErrorInfo;
} else {
    echo "mail başarıyla gönderildi.";
}
?>
</body>
</html>

Php Pop3 ile Mail Gönderme Örneği (include edilen dosyalar ile aynı dizindedir):

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>PHPMailer - mail() test</title>
</head>
<body>
<?php
require_once 'PHPMailerAutoload.php';

$mail = new PHPMailer();
//turkce karakterler icin
$mail->CharSet='utf-8';
//mail kimden geliyor gibi görünecek.
$mail->setFrom('from@example.com', 'First Last');
//cevapla butonuna bastığında kimin mail adresine gönderilecek.
$mail->addReplyTo('replyto@example.com', 'First Last');
//mail gönderilecek adres
$mail->addAddress('whoto@example.com', 'John Doe');
//mail konusu
$mail->Subject = 'PHPMailer mail() test';
//mail gövdesi. bu örnekte harici bir html dosyasından alınıyor ancak düz yazı da yazabilirsiniz.
$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
//bu kısım önemli. mail yüklenirken vb. durumlarda bu yazı görünüyor.
$mail->AltBody = 'This is a plain-text message body';
//dosya eklemek isterseniz bu şekilde ekliyorsunuz.
$mail->addAttachment('images/phpmailer_mini.gif');

//send the message, check for errors
if (!$mail->send()) {
    echo "mail gönderilemedi: " . $mail->ErrorInfo;
} else {
    echo "mail başarıyla gönderildi.";
}
?>
</body>
</html>

Bu iki örnekten birisini seçerek Php ile Mail Gönderebilirsiniz. Toplu mail gönderecek olanlara kıs bir uyarı yapayım. Mailleri seri bir şekilde arka arkaya gönderirseniz spam’a düşme ihtimali artar, gmail kullansanız bile. O nedenle aralıklarla yavaş yavaş göndermenizi öneririm.

Hosting Nedir?

Hosting; paylaşımlı olarak, bir çok web sitesi tarafından kullanılan sunucudan, aldığınız hizmettir ve sahip olduğunuz web sitesinin barındırığı yerdir. Büyük çoğunlukla; Windows ve Linux olmak üzere ikiye ayrılır. Linux sunucular Php‘yi desteklerken; Windows sunucular IIS sayesinde, hem Php’yi hem de .Net’i destekler. Ancak Php kullanacaksanız, Linux hizmet almanızı öneririm. Çünkü Php Linux için geliştirilmiştir ve Windows sunucularda tam performans ve yeterlilikte çalışmayabilir.

Hosting’i kullanmaya başlamak için; satın aldığınız alan adını, hosting’in name server’larına yönlendirmeniz gerekmektedir. Yapılan güncelleme hemen gerçekleşmeyebilir, o nedenle biraz sabırlı olmak gerek. Ancak yine de bilgisayarınızda dns temizliği yapmakta yarar var. Ayrıca, proxy siteler aracılığıyla da, güncellemenin gerçekleşip, gerçekleşmediğini kontrol edebilirsiniz.

Hosting hizmeti; ziyaretçi sayısı az olan web siteleri için uygundur. Ancak ziyaretçi sayınız fazla ise, VPS Sunucu ya da VDS sunucu kiralamanız gerekmektedir.Peki VPS, VDS ne demektir, aralarındaki farklar nelerdir. İki sunucu türü de, yönetimin tamamen sizde olduğu ve size ait olan, yüksek performanslı sunuculardır. Bu iki sunucu türü ile de; ister tek bir site yayınlayabilir ya da Bayi Hosting mantığıyla birden fazla siteye hizmey verebilirsiniz.

VPS Nedir?
VPS Sucularda sanal bir bölünme söz konusudur. Yani ana sunucu üzerindeki merkezi bir yazılım aracılığıyla, sunucu parçalara ayrılır ve bu parçalardan birisi sizin hizmetinize sunulur. Bir yerde bulut sunucudur ve kaynak paylaşımı vardır.

VDS Nedir?
VDS Sunucularda sanal bir paylaşım yoktur. Almış olduğunuz hizmetteki yeterlilikler tamamen size tahsis edilmiştir. Başka bir sunucu ile ortak çalışmadığı için sunucudaki sistem tamamen sizin hizmetinizdedir. Bu nedenle VPS’e göre yüksek performans ile çalışır.

Domain/Alan Adı Nedir?

Alan adı; ziyaretcilerin, web sitenize ulaşmak için kullanacakları bir isimdir. Örnek vermek gerekirse; facebook.cok, google.com birer alan adlarıdır. Bir web sitesine sahip olmak isteyen kişinin, ilk önce bir alan adı satın alması gerekir. Dünyada alan adı satışı yapan bir çok firma var. Bu firmalardan birisini seçerek, alan adı alabilirsiniz. Alan adı alırken dikkat edilmesi gerekenlerden bahsedelim. Alan adını alacağınız firmanın sitesine kayıt olurken, gerçek bilgilerinizi vermelisiniz. Çünkü alan adı sizin adınıza kaydedilecek ve hak sahibi siz olacaksınız. Herhangi bir karışıklıkta bu bilgilerle itiraz edeceksiniz. Vereceğiniz e-posta adresinin güvenilir, yani başkaları tarafından ele geçirilmesi zor olması gerekmektedir. Domain transferlerinde e-posta yoluyla onay yapıldığından bu konuya dikkat etmek gerekir. Ayrıca, domain kayıt süresinin bitimine doğru; belli aralıklarla, vereceğiniz e-posta adresine hatırlatma mailleri gelecektir.

Alan adı uzantıları : .com, .net, .org birer alan adı uzantılarıdır. Günümüzde çok çeşitli alan adı uzantıları bulunmakta. Bu konuda dikkat edilmesi gereken nokta ise, alacağınız alan adında, uzantının çöp sitelerle dolmuş olmamasıdır. Arama motorları; çöp sitelerle dolmuş alan adı uzantılarına önem vermediğine çok kez rastlanır. Hatta ilgili alan adında hiç bir siteyi indexlemediği de görülür. Bu nedenle aldığınız alan adı uzantısına dikkat etmelisiniz.

Alan adı ve Seo : Eğer hedef anahtar kelimelerinizi içeren bir alan adına sahipseniz, yükselmeniz biraz daha kolay olacaktır. O nedenle; arama motorlarında yükselmeyi hedefliyorsanız, hedef anahtar kelimeleriniz doğrultusunda bir alan adı almanız daha yararlı olacaktır.