merhaba arkadaşlar yaptığım sayfama üyelik için aktivasyon maili olayını eklemek istiyorum biraz araştırmama rağmen php de yeni olduğum için işin içinden çıkamadım elinde hazır kodlar olan varsa benimle paylaşabilir mi
k aktivasyon icin su yolu izleyebilirsin kayit esnasinda rastgele bir sayi uretip ucuna sonuna guvenlik icin bir kac karakter harf ekleyip onu md5 lersin ve kullanici bilgileriyle veri tabanina kaydedersin. Tabi birde onay diye bir kolonun olur onuda onun degeri daima 0 olur onaylaninca 1 e doner ki kisi sitede aktif olsun simdi bu md5 li sifreyi kaydettik sonrada onu aktif edecegin sayfa adresine get le fyolliyayacaksin
Site.com/onay.php?code=.$md5lisifre gibi bunu maille gondereceksin. Sonra onay.php sayfasinda o kodu alman gerekli get le alip o kodu veritabaninda taratip kime aitse onun onay daki degerini 1 yapacaksin
Elinde hazır kod olan varmı bilmem ancak ben sana kullandığım kodları vereyim. sen kendine göre düzenlersin.
Öncelikle mantığını şöyle işler. diyelimki bir kullanıcı siteye girdi ve üye olmak istedi. gerekli bilgileri doldurdu ve kayıt ol dedi. Şimdi buraya kadar herşey normal peki nasıl bu aktivasyon zamazingosu çalışır. şöyle
öncelikle veritabanında bulunan uyeler tablosuna ek stun ekleyeceksin. bunun adına durum diyebiliriz kontrolleri sağlamamız için gerekli olacak.
herşeyden önce bu stunu ekledik. şimdi aktivasyonlu üyelik işlemi için üye girişi kontrollerini sağlamamız gerekecek.
üye girişi yapılan sayfada bulunan kodlarda şöyle bir yapı oluşturmalısın.
üye giriş yaparken şifre ve kullanıcıadının aynı olup olmadığını kontrol eden kodlarımız vardır.
genelde bu yapı kullanılır kodların nedir bilmediğim için basit şekilde örnek vereceğim.
$uyekontrolonayli = @mysql_query("SELECT * FROM uyeler WHERE kullaniciadi='$uyegirisikullaniciadi' AND sifre='$uyegirisikullanicisifresi' AND durum='1' LIMIT 1"); $uyekontrolonaylisayisi = @mysql_num_rows($uyekontrolonayli); $uyekontrolonaysiz = @mysql_query("SELECT * FROM uyeler WHERE kullaniciadi='$uyegirisikullaniciadi' AND sifre='$uyegirisikullanicisifresi' AND durum='0' LIMIT 1"); $uyekontrolonaysizsayisi = @mysql_num_rows($uyekontrolonaysiz);
Bir kullanıcı üye olduğuzaman uyeler tablosunun durum stunu 0 olacak.
ve aktivasyon stununa benzersiz bir kod atadık.
Üye girişi yapıldığı zaman üye olan kişinin durum stunu kontrol ediliyor eğer durum stunu = 0 ise giriş başarısız oluyor.
Şimdi gelelim üyeye aktivasyon kodunu göndermeye ve bu aktivasyon kodunu siteye girdiği zaman üyenin durumu =1 olacak. ve giriş yaptığı zaman girişi gerçekleşecek.
bir dosya oluşturacağız adına ise aktivasyon.php diyelim
bu dosya içerisine gerekli şekilde veritabanı bağlantılarını yapalım.
daha sonra bu bilgiler ile uyeler tablosunu sorgulatacağız.
$kontrol = @mysql_query("SELECT * FROM uyeler WHERE email='$email' AND aktivasyon='$aktivasyonkodu' AND durum='0' LIMIT 1"); $kontrolsayisi = @mysql_num_rows($kontrol);
if($kontrolsayisi>0){
$guncelle = @mysql_query("UPDATE uyeler SET durum='1' WHERE email='$email' AND aktivasyon='$aktivasyonkodu' LIMIT 1");
@header("Location:benimsayfam.php");
} else {
echo "aktivasyon kodu yanlış";
}
Gelen aktivasyon kodu ile veritabanındaki aktivasyon kodu aynı ise üyenin durum stununu = 1 yap dedik.
Sana mantığını anlattım bundan sonrası senin yapacağın birşeydir. kolay gelsin
Site.com/onay.php?code=.$md5lisifre gibi bunu maille gondereceksin.
Sonra onay.php sayfasinda o kodu alman gerekli get le alip o kodu veritabaninda taratip kime aitse onun onay daki degerini 1 yapacaksin
< Bu ileti mobil sürüm kullanılarak atıldı >
Öncelikle mantığını şöyle işler. diyelimki bir kullanıcı siteye girdi ve üye olmak istedi. gerekli bilgileri doldurdu ve kayıt ol dedi.
Şimdi buraya kadar herşey normal peki nasıl bu aktivasyon zamazingosu çalışır. şöyle
öncelikle veritabanında bulunan uyeler tablosuna ek stun ekleyeceksin. bunun adına durum diyebiliriz kontrolleri sağlamamız için gerekli olacak.
herşeyden önce bu stunu ekledik. şimdi aktivasyonlu üyelik işlemi için üye girişi kontrollerini sağlamamız gerekecek.
üye girişi yapılan sayfada bulunan kodlarda şöyle bir yapı oluşturmalısın.
üye giriş yaparken şifre ve kullanıcıadının aynı olup olmadığını kontrol eden kodlarımız vardır.
genelde bu yapı kullanılır kodların nedir bilmediğim için basit şekilde örnek vereceğim.
$uyegirisikullaniciadi = $_POST["uyekullaniciadi"];
$uyegirisikullanicisifresi = $_POST["uyesifre"];
$uyekontrolonayli = @mysql_query("SELECT * FROM uyeler WHERE kullaniciadi='$uyegirisikullaniciadi' AND sifre='$uyegirisikullanicisifresi' AND durum='1' LIMIT 1");
$uyekontrolonaylisayisi = @mysql_num_rows($uyekontrolonayli);
$uyekontrolonaysiz = @mysql_query("SELECT * FROM uyeler WHERE kullaniciadi='$uyegirisikullaniciadi' AND sifre='$uyegirisikullanicisifresi' AND durum='0' LIMIT 1");
$uyekontrolonaysizsayisi = @mysql_num_rows($uyekontrolonaysiz);
if($uyekontrolonaylisayisi>0){
$_SESSION["kullanici"] = $uyegirisikullaniciadi;
@header("Location:benimsayfam.php");
}elseif($uyekontrolonaysizsayisi>0){
@header("Location:uyegiris.php");
}else{
@header("Location:uyegiris.php");
}
böyle bir yapıya sahipsen işin kolay olacaktır. ancak değilse şunu yapacaksın.
$_SESSION["kullanici"] = $uyegirisikullaniciadi;
kaydettiğimiz sessiondan önce bir sorgu yapacağız. gelen üye kullanıcı adına göre uyeler tablosu sorgulatacağız
$kontrol = @mysql_query("SELECT * FROM uyeler WHERE kullaniciadi='$uyegirisikullaniciadi' LIMIT 1");
$kontroller = @mysql_fetch_array($kontrol);
$durum = $kontroller ["durum"];
if($durum == 0){
@header("Location:uyegiris.php");
} else {
$_SESSION["kullanici"] = $uyegirisikullaniciadi;
}
şeklinde yapman gerekecek.
bu kısım bittikten sonra aktivasyon kodu için bir adet daha uyeler tablosuna stun eklememiz gerekecek.
adı aktivasyon olsun
şimdi herşeyden önce elimizde bir benzersiz aktivasyon kodu olması gerekiyor.
uye kayıt sayfası kodları içerisine şunu kodu yapıştır
function aktivasyonkoduuret($karakterseti){
$aktivasyonkodukarakterleri = "ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789";
srand((double)microtime()*1000000);
$aktivasyonkodui = 0;
while ($aktivasyonkodui<$karakterseti) {
$aktivasyonkoduolusankarakterler = rand() % 56;
$geciciaktivasyonkodu = substr($aktivasyonkodukarakterleri, $aktivasyonkoduolusankarakterler, 1);
$aktivasyonkoduolusumu = $aktivasyonkoduolusumu . $geciciaktivasyonkodu;
$aktivasyonkodui++;
}
return $aktivasyonkoduolusumu;
}
bu benzersiz bir kod üretecektir ve bu kodu veritabanında açtığımız aktivasyon stununa ekleyeceğiz.
şimdi aktivasyon kodunu üreteceğimiz değişkenimizi ve yeni üyenin durumunun = 0 olacağını belirtelim
$durum = "0";
$aktivasyonkodu = aktivasyonkoduuret(20);
şimdi üye kaydını veritabanına insert ettiğimiz koda bu iki stunuda ekliyoruz.
$kayityap = @mysql_query("INSERT INTO uyeler şeklinde olana
$durum ve $aktivasyonkodu değişkenlerimizi insert ettireceğiz.
insert işleminden hemen sonra kişiye aktivasyon maili göndereceğiz.
gelen eposta değerine göre değişken atayacağız örneğin post ile gelen eposta name değeri eposta olsun
$email = $_post["eposta"];
$mail = new PHPMailer();
$mail->IsSMTP(); // send via SMTP
$mail->Host = "webmail.siteadi.com"; // SMTP servers
$mail->SMTPAuth = true; // turn on SMTP authentication
$mail->Username = "info@siteadi.com"; // SMTP username
$mail->Password = "123456"; // SMTP password
$mail->IsHTML(true);
$mail->From = "info@siteadi.com"; // smtp kullanıcı adınız ile aynı olmalı
$mail->Fromname = "Siteadi.com";
$mail->AddAddress($email);
$mail->Subject = "Siteadi.com Aktivasyon";
$mail->Body = "<a href='www.siteadi.com/aktivasyon.php&email=$email&aktivasyonkodu=$aktivasyonkodu'>ÜYELİĞİMİ AKTİFLEŞTİR</a>";
Buraya kadar şunu yaptık.
Bir kullanıcı üye olduğuzaman uyeler tablosunun durum stunu 0 olacak.
ve aktivasyon stununa benzersiz bir kod atadık.
Üye girişi yapıldığı zaman üye olan kişinin durum stunu kontrol ediliyor eğer durum stunu = 0 ise giriş başarısız oluyor.
Şimdi gelelim üyeye aktivasyon kodunu göndermeye ve bu aktivasyon kodunu siteye girdiği zaman üyenin durumu =1 olacak. ve giriş yaptığı zaman girişi gerçekleşecek.
bir dosya oluşturacağız adına ise aktivasyon.php diyelim
bu dosya içerisine gerekli şekilde veritabanı bağlantılarını yapalım.
sonrasından ise get ile gelen değerleri alalım
$email = $_GET["email"];
$aktivasyonkodu = $_GET["aktivasyonkodu"];
daha sonra bu bilgiler ile uyeler tablosunu sorgulatacağız.
$kontrol = @mysql_query("SELECT * FROM uyeler WHERE email='$email' AND aktivasyon='$aktivasyonkodu' AND durum='0' LIMIT 1");
$kontrolsayisi = @mysql_num_rows($kontrol);
if($kontrolsayisi>0){
$guncelle = @mysql_query("UPDATE uyeler SET durum='1' WHERE email='$email' AND aktivasyon='$aktivasyonkodu' LIMIT 1");
@header("Location:benimsayfam.php");
} else {
echo "aktivasyon kodu yanlış";
}
Gelen aktivasyon kodu ile veritabanındaki aktivasyon kodu aynı ise üyenin durum stununu = 1 yap dedik.
Sana mantığını anlattım bundan sonrası senin yapacağın birşeydir. kolay gelsin