PHP İle Kullanıcı Hesabını Email Yoluyla Onaylatma – PHP Eposta Sorunu

Merhaba arkadaşlar bu çok çok küçük scriptimizin sizlerin çok işine yarayacağına inanıyorum. Hemen kodlama işine başlayalım.

İlk olarak oluşturacağımız tablonun SQL kodlarını sizlerede vermek istedim ki kodlarımızada sırf bu yüzden çok hatalar çıkıyor. Böyle önemli bir kodlamada bu sıkıntının yaşanmasını da istemedim.

[ad#orta]

 
CREATE TABLE kullanicilar (
eposta VARCHAR(255) NOT NULL,
yaratilma_tarihi DATETIME NOT NULL,
dogrulama_ifadesi VARCHAR(16) NOT NULL,
onaylandi TINYINT UNSIGNED);

Şimdi ise mailin gönderileceği gonder.php sayfamızı oluşturalım…

 // Rastgele bir karekter gurubu uretelim
$dogrulama_kodu = '';
for ($i = 0; $i < 16; $i++)
	{
	$dogrulama_kodu .= chr(mt_rand(32,126));
	}
 
// Kullaniciyi ekle
if (! mysql_query("INSERT INTO kullanicilar (eposta,yaratilma_tarihi,dogrulama_ifadesi,onaylandi) VALUES ('".addslashes($eposta)."',NOW(),'".addslashes($dogrulama_kodu)."',0)"))
	{
	error_log("Bu kullanıcı eklenemiyor!: ".mysql_error());
	exit;
	}
 
$dogrulama_kodu = urlencode($dogrulama_kodu);
$guvenli_eposta = urlencode($eposta);
$url = "http://www.siteadi.com/onay.php";//Sizler bu URL adresinizi kendi siteminize göre düzenleyniz...
$eposta_govdesi=<<<_EPOSTA_
Merhaba $eposta:
Hesabinizi aktif hale getirmek icin asagidaki linke tiklayiniz:
$url?eposta=$guvenli_eposta&dogrulama_kodu=$dogrulama_kodu
Yedi gun icinde aktif hale getirilmeyen hesaplar sistemden silinir...
_EPOSTA_;
mail($eposta,"Hesabinizi aktif hale gecirmek icin lütfen tıklayın!",$eposta_govdesi);

Burada mailin gönderilmesi onaylama kodunun kullanıcı mailinde gözükmesi gibi işlemler yapılmıştır….

Şimdi ise kullanıcın bizim sitemizden onaylanması için onay.php sayfasını yapmaya geldi sıra.

$guvenli_eposta = addslashes($_REQUEST['eposta']); //Maildeki onay kısmına tıkladıktan sonra
$guvenli_dogrulama_kodu = addslashes($_REQUEST['dogrulama_kodu']); //bizim alacağımız değişkenler eposta ve dogrulama kodlarını çektik
if ($r = mysql_query("UPDATE kullanicilar SET onaylandi = 1 WHERE eposta
 LIKE '$guvenli_eposta' AND
 dogrulama_ifadesi = '$guvenli_dogrulama_kodu' AND onaylandi = 0")) {
 if (mysql_affected_rows() == 1) {
 print "Tessekkurler... Hesabınız onaylanmıştır.";
} else {
print "Ozur dileriz, hesabinizin onaylanmasinda bir problem var. Lütfen tekrar deneyiniz.";
}
} else {
print "Veritabani Hatasi: Lutfen daha sonra tekrar deneyiniz...";
 }

Sistem kullanıcıya onay epostasını gönerdi fakat kullanıcı 1 hafta içinde hala onaylamamış ise bunlar silinecektir.
Onun için sil.php kodlarımızı oluşturalım.

$zaman_araligi = 7; // Yedi gun
if ($r = mysql_query("DELETE FROM kullanicilar WHERE onaylandi = 0 AND
yaratilma_tarihi < DATE_SUB(NOW(),INTERVAL $zaman_araligi DAY)")) {
if ($silinen_kullanicilar = mysql_affected_rows()) {
print "Silinen kullanicilar: $silinen_kullanicilar kullanicin";
 }
} else {
print "Kullanici silinemiyor: ".mysql_error();
}

Sizler içinde yararlı bir makale olduğunu umuyorum inş. arkadaşlar….

Hasan Huseyin İŞLER hakkında

Lise yıllarında programlama ile tanışan ve Q-Basic, Pascal, C başlangıç seviyesinde öğrenenir. Üniversite de TEF-BSÖ okurken diğer dillerin yanı sıra PHP'de kendini geliştirmeye devam ederek bunların yanında CSS, JS ve Wordpress sistemiyle ilgilenir. www.phpsorunu.com'un da yöneticisi ve yazarlarındandır.
Bu yazı Php kategorisine gönderilmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.

PHP İle Kullanıcı Hesabını Email Yoluyla Onaylatma – PHP Eposta Sorunu için 3 cevap

  1. Kaan der ki:

    çok başarılı en azından aktivasyon mantığını anlamak için fazlasıyla yeterli bir yazı olmuş tebrik ederim

  2. ahmet der ki:

    teşekkürler paylaşımınız için..

  3. CraL der ki:

    Paylaşım İçin Teşekkürler

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir