v2.5.2
Giriş yap

Php email onaylama

evelynpink
1,302 defa görüntülendi ve 2 kişi tarafından değerlendirildi

Php ile yaptıgım sitede Phpmailer kütüphanesini kullandım şuan için gmail üzerinden sorunsuz bir şekilde gönderim yapıyorum fakat bunu domaine atınca nasıl bir yol izlemem gerektigi hakkında bilgi almak istiyorum.

byvenoms
1639 gün önce

Merhaba dostum,

Sorunu şöyle yanıtlayabilirim. Üyeler tablona iki tane sütun ekleyeceğiz. uye_onay ve uye_token olarak. Sitende üye kaydı yapıldığı zaman uye_onay otomatik olarak 0 değerini alacaktır, uye_token tablosuna ise istediğin uzunlukta eşsiz bir token kodu oluşturup bu token kodunu mail yoluyla üyeye göndereceğiz. Sana kendi kullandığım token oluşturma fonksiyonumu veriyorum.

function tokengenerator($uzunluk)
{
	$char = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" . "abcdefghijklmnopqrstuvwxyz" . "0123456789";
	$str  = "";
	while (strlen($str) < $uzunluk) {
		$str .= substr($char, (rand() % strlen($char)), 1);
	}
	return ($str);
}

Üye kaydı oluşturulduğu anda bir değişkene token kodumuzu aldıralım. Mesela $user_token = tokengenerator(50); şeklinde 50 karakterli bir token kodu oluşturduk. Bu oluşturduğumuz token kodu veritabına yazıldı. Üye işlemi başarılı olursa $user_token değişkenini mail yoluyla kullanıcıya göndermeliyiz. Örnek olarak https://ornek.com/aktivasyon.php?token=[oluşturulan_token] şeklinde bir link olarak kullanıcıya posta yoluyla gönderildik. Şimdi yapmamız gereken aktivasyon.php dosyasımızı yazmak.

<?php

if(isset($_GET['token'])){
 $query = $db->query("SELECT * FROM uyeler WHERE uye_token = '{$_GET['token']}'")->fetch(PDO::FETCH_ASSOC);   
    if($query){
        $onay = $db->prepare("UPDATE uyeler SET
                uye_onay = :uye_onay
                WHERE uye_token = :uye_token");
        $update = $onay->execute(array(
                 "uye_onay" => 1,
                 "uye_token" => $_GET['token']));
    } else {
        die("Gerçersiz istek yapıldı!");
    }
}
?>

Evet şuan üye onaylama işlemimiz tamamlandı. Üye sayfalarının başında bir kontrol işlemi gerçekleştirmen gerekmektedir. Örneğin üye bilgileri $user_info değişkeninde tutulsun. Her sayfanın başına şu kodun yazılması gerekiyor.

if($user_info['uye_onay'] == 0){
    header("Location: e-posta-dogrula.php");
 }

Bu kod ile eğer üyelik onayı yoksa e-posta-dogrula.php dosyasına bir yönlendirme yapıp üyeyi uyarabilirsin. Kodlarımda bir hata olabilir ama mantığını anladıysan çözümünü bulursun :)
İyi çalışmalar dilerim