Php email onaylama
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.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (4)
alan adımı godaddyden almayı düşünüyorum aynı şekilde epostayıda, aldıktan sonra mesela [email protected] diye degiştirdigimde çalışacak mı aynı kodlarım
merhabalar @byvenoms,
İlköncelikle zaman ayırıp cevapladıgın için çok teşekkür ederim. Çok işime yaradı.
Size şöyle bir soru sormak istiyorum şuanda üyeligi onaylama işlemini yapıyorum Gmail hesabı kullanarak, fakat bunu hostinge attıktan sonra
$mail = new PHPMailer;
$mail->isSMTP();
$mail->SMTPDebug = false;
$mail->Host = 'smtp.gmail.com';
$mail->Port = 587;
$mail->Username = '[email protected]';
$mail->Password = 'test';
$mail->setFrom('[email protected]', 'test.com');
bu kısımda username ve password yazan yerleri [email protected] diye degiştirmem yetecek mi yoksa başka bir işlem yapmam gerekir mi?
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