Newsletter Sign-up Form

newsletter1Çoğu sitede bulunan haber bültenine kayıt , yenilikleri öğrenmek için veritabanımıza kayıt olun vb formlardan görmüşsünüzdür. Bu formu oldukça güzel bir şekilde çalışan ve ister veritabanına isterseniz de txt dosyasına kayıt eden bir kod paylaşacağım. Genelde yazının sonuna eklenir fakat ben en başa ekleyelim bu kodu istediğiniz gibi alıp , kesip biçip istediğiniz yere koyup dilediğiniz gibi paylaşabilirsiniz. Tabi ki ricam bir teşekkür linki koymanız.

 

Formumuzu ajax , PHP ve Prototype javascript framework ile oluşturacağız. 7 adet dosyamız bulunmaktadır. Bunlardan ilki Javascript kodunu ve formu içeren default.php dosyası. Veritabanına formda girilen verileri kaydeden dosyamız optIn.php , verileri veritabanına değil de bir harici txt dosyasına kaydetmek istiyorum diyorsanız optIn_2.php ile işlem yapacaksınız. Yükleniyor resmi olarak wait.gif bulunuyor. myemails.txt dosyasında optIn_2.php‘den gelen verileri bulacaksınız. Javascript kütüphanesi olan Prototype.js ve son olarak Türkçe’sinden bir şey anlamadım bana İngilizce halini göster derseniz ReadMe.html ile karşı karşıyasınız. İster localhost‘unuza isterseniz de kendi server‘ınıza kurabilirsiniz. Eğer verileri veritabanına aktarmak istiyorsanız bir adet mysql veritabanına ihtiyacınız olacak. Güncellemeniz gereken iki dosya bulunuyor. default.php ve optIn.php (ya da isteğinize göre optIn_2.php) dosyalarında güncellemeniz gereken yerler komut satırında belirtilmiştir. Yine de az sonra değiştirmeniz gereken yerleri göstereceğim. Veritabanında oluşturmanız gereken tablo ve sütun adları aşağıda belirtilmiştir :

 

CREATE TABLE `subscribers` (
`idEmail` mediumint(9) NOT NULL auto_increment,
`email` varchar(150) default NULL,
`name` varchar(150) default NULL,
PRIMARY KEY (`idEmail`)
);

 

optIn.php :

<?php
header ("Expires: Mon, 26 Jul 2013 05:00:00 GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Pragma: no-cache");

$email	= trim($_REQUEST["email"]);
$name 	= trim($_REQUEST["name"]);

// Bu alanları kendi bilgileriniz ile değiştirin. Host : localhost ya da server adresiniz , username : kullanıcı adınız , password şifreniz ve veritabanı adınızı myDb ile değiştirin.
$pdbHost = "localhost";
$pdbUserName = "username";
$pdbPassword = "password";
$pdbName     = "myDb";

/*  Farklı bir tablo da kullanabilirsiniz. Yine yukarıdaki gibi aşağıdaki değerleri de değiştirin.
*/

//  Connect to mySQL
$conlink = mysql_connect($pdbHost, $pdbUserName, $pdbPassword);
if(!$conlink) {die('Unable to connect to '.$pdbHost);}
if (!mysql_select_db($pdbName, $conlink)){die('Caanot find database '.$pdbName);}

//  Girilen değer mevcut mu diye kontrol eder
$SQL= "select email from subscribers where email='".$email."'";
$result	= mysql_query($SQL);
if(!$result) {die('Problem in SQL: '.$SQL);}    //Sorguda bir problemin olup olmadığını kontrol eder.

if (mysql_num_rows($result)==1) {   // kayıt mevcut
	echo 'You are subscribed.';     	// Mesajı değiştirebilirsiniz.
}
else {      	// kayıtlı değil ==> tabloya ekleniyor
	$SQL2= "INSERT into subscribers (name, email) VALUES ('".$name."', '".$email."')";
	mysql_query($SQL2);
	echo 'Thank you for subscribing';	// Mesajı değiştirebilirsiniz
}
mysql_close($conlink);
?>

 

Not : default.php‘de bulunan javascript kodlarını prototypemail.js dosyasına aktardım. optIn.php veya optIn_2.php seçimlerinizi bu dosyadan değiştireceksiniz. 28. satırdaki url‘yi değiştirmeniz yeterlidir :

var url = "optIn_2.php";

 

Dosyayı GitHub hesabımdan indirebilirsiniz. İndirmek için linke tıklayın.

Cevapla

E-posta adresiniz yayınlanmayacak. Gerekli alanlar işaretlenmelidir *

*