Türkiye'nin En Eski Webmaster Forumu İyinet'e Hoşgeldiniz!

php aktivasyon e-mail gönderme kodları

kardesim

0
Onaylı Üye
Üye
Katılım
6 Ocak 2011
Mesajlar
42
Açılan Konu
10
Tepki puanı
0
Merhaba arkadaşlar

Php ile login işlemlerinde ziyaretçilerim üye kayıtta e-mail aktivasyon linki gönderebilmek için gerekli kodları hepsini detaylıca yazabilirmisiniz?veya bu konuda hazır kodları indirebileceğim adres var mı?internetten ve bu siteden aradım bu konuda yeterli tam kodlarını bulamadım?yardımcı olurmusunuz?saygılar
 
E

Erturk

Misafir
kullandığınız sistem hazır bir sistem mi yoksa kendi yazdığınız birşey mi? Ona göre mantığını anlatabilirim.
 

kardesim

0
Onaylı Üye
Üye
Katılım
6 Ocak 2011
Mesajlar
42
Açılan Konu
10
Tepki puanı
0
kendim yazmak istiyorum hazır kod var mı?
 
E

Erturk

Misafir
Hazır kaynak kodlarını pek takip etmiyorum. Ama kendini yazacaksanız biraz mantık üretebilirim.

Kullanıcınız uye olurken buna bir kod atayın md5 li ve unique olan. Bunu veritabanına dogrulamakodu diye yazdırın. Daha sonra uye kayıdı yapınca mailine içinde bu kod olan bir link atın. Ornegin siteadi.com/aktivasyon.php?kod=a4e5d8c4sjHdf1d4w85 gibi birşey.

aktivasyon.php dosyanıza da gelen bu kod degerini süzdükten sonra aşağıdakine benzer bir kod kullanın.

$sor = mysql_query("select * from uyeler where dogrulamakodu='$kod'");

Bu sorgunun sonucu eger 1 e eşitse, yani bu koda ait bir kullanıcı varsa karşısına iki adet input çıkartın. Bunlar, Kullanıcı Adınız ve Dogrulama Kodunuz şeklinde olsun.

Girilen bilgiler eşleştiğinde o kullanıcıya ait sql satırında update yapıp dogrulamakodu isimli alanı ok (dogrulandı manasında) diye değiştirebilirsiniz.

Daha sonra kullanacagınız uye girişi kısımında kullanıcı dogru bilgiler ile girince durumunun onaylanıp onaylanmadıgını sorgulatıp ona gore ekrana bir yazı yazdırabilir ve dogrulama maili gitmediyse tekrar mail atabilecegınız bir link koyabilirsiniz.

Ha dilerseniz o linke tıklayınca direk sorgu sonunda da onaylayabilirsiniz...

Kolay gelsin.
 

DEVADAM

0
Onaylı Üye
Üye
Katılım
25 Mayıs 2011
Mesajlar
14
Açılan Konu
2
Tepki puanı
0
aktivasyon tablosu oluşturuyorsun her işlemde tabloya veri kayıt edip geri dönüşlerde tablodan siliyorsun. üyeler tablosunada durum 1, 0 aktif pasif mantığı uyguluyorsun

Kod:
function DevAktivasyon($mail){
$dev= mysql_query("SELECT * FROM uyeler tablosu WHERE mail='" . $mail. "' and durum=0;");
// üye tablosunda durum alanı oluşturmamız lazım 0 ise pasif 1 ise aktif olsun ve fonksiyonumuzu tetiklerken durum şartını 0 yapalımki saçma işlemler dönmesin.

if($devadam= mysql_fetch_array($dev))
  {
// Mail adresine göndereceğimiz link için 3  aşamalı aktivasyon kodu oluşturuyoruz

$kod1=substr(md5(time() * rand()),0,90);		
$kod2=substr(md5(time() * rand()),0,5);
$kod3=substr(md5(time() * rand()),0,70);

//güvenli bir işlem için aktivasyon tablosu oluşturuyoruz ve üyelik talebinden sonra aktivasyon tablosuna veri kayıt ediyoruz
if(mysql_query("INSERT INTO aktivasyontablosu (mail,kod1,kod2,kod3)

VALUES ('" . $devadam['mail'] . "',". "'" . $kod1. "',". "'" . $kod2. "',". "'" . $kod3. "')")){

$message .= '<p><a href="siteadresi.com/gerigeldidiyelimsafyası.php?mail=' . $devadam['mail'] . '&kod1=' . $kod1. '&kod3=' . $kod3. '">Clik yapıver</a></p>';
// mail fonkisyonunu başlatıyoruz
if(Maille($devadam['mail'], $message, "Aktivasyon" )){
return true;		
}else{
return false;
}
}else{
return false;
}
}else{
return false;	 
}
return false;
}

gerigeldidiyelimsafyası.php
Kod:
$hata="";
$hata_kod1=0;

if(isset($_GET['mail']))
$mail= formatSQL($_GET['mail']); 
else
$mail="";

if(isset($_GET['kod1']))
$kod1= formatSQL($_GET['kod1']); 
else
$kod1="";

if(isset($_GET['kod3']))
$kod3= formatSQL($_GET['kod3']); 
else
$kod3="";

if($mail=="" || $kod1=="" || $kod3==""){
$hata="Parametrelerde hata var şekerim";
$hata_kod1=1;
}else{
$dev= mysql_query("SELECT * FROM aktivasyon tablosu WHERE mail='" . $mail. "' and kod1='" . $kod1. "' and kod3='" . $kod3. "';");
	 
if($devadam= mysql_fetch_array($dev))
{
// işlemde sorun yok ise durumu 1 leyip aktiflemiş oluyoruz
mysql_query("UPDATE uyeler tablosu SET durum=1 WHERE mail= '" . $mail. "';");
			
// güvenlik için aktivasyon tablosundan kaydımızı siliyoruz

mysql_query("delete from aktivasyon tablosu WHERE mail= '" . $mail. "';");
$hata="Tamamdır şekerim";
$hata_kod1=2;			
}else{
$hata="Beceremedin";
$hata_kod1=1;	  
}
}


Kod:
function maille($mail,$message_in,$subject)
{
try{

$headers = "From: " .  $GLOBALS['aktivasyon']  . "<" . $GLOBALS['maili'] . ">";
$headers .= "Content-type: text/html; charset=iso-8859-9";
if(mail($mail,$subject, $message_in, $headers)){		
return true;
}else{
return false;
}
		
}catch (Exception $e) {
 return false;
}
}
 

ozcetuy

0
Onaylı Üye
Üye
Katılım
5 Şubat 2013
Mesajlar
2
Açılan Konu
0
Tepki puanı
0
Slam lar Arkadaşlar .Sitede üyelik formu oluşturdum.Üye olanlar oraya mail adreslerini yazdıkları takdir e-postalarına aktivasyon kodu göndermek istiyorum.
Ayrıca daha önce kayıt yapılmış mail adresi veya kullanıcı adı girdiklerinde hata versin ,ama nasıl olcak bilmiyorum.Bilgisi olan yardımcı olurlarsa çok sevinirim.
formu php myadminde yapıyorum bu arada
 

serjey

0
Onaylı Üye
Üye
Katılım
1 Şubat 2013
Mesajlar
42
Açılan Konu
8
Tepki puanı
0
Konum
Kayseri
Slam lar Arkadaşlar .Sitede üyelik formu oluşturdum.Üye olanlar oraya mail adreslerini yazdıkları takdir e-postalarına aktivasyon kodu göndermek istiyorum.
Ayrıca daha önce kayıt yapılmış mail adresi veya kullanıcı adı girdiklerinde hata versin ,ama nasıl olcak bilmiyorum.Bilgisi olan yardımcı olurlarsa çok sevinirim.
formu php myadminde yapıyorum bu arada

1- PHPMailer adlı bir sınıf var, araştırabilirsin.
2- İkinci dediğiniz şu şekilde kodlarına entegre et. (verdiğim kodları kendine göre düzenle)

PHP:
<?php

## Form Bilgilerimizi Çekelim ##
$kadi = mysql_real_escape_string(strip_tags(trim($_POST['kadi'])));
$eposta = mysql_real_escape_string(strip_tags(trim($_POST['eposta'])));

## Boş Olup Olmadığını Kontrol Edelim ##
if(empty($kadi) || empty($eposta)){
	// boşsa hata verelim
	echo '<h1>Boş bırakılamaz!</h1>';
}else {
	
	## Sorgumuz ##
	$varmi = "SELECT * FROM uyeler WHERE uye_adi='$kadi' OR uye_eposta='$eposta'"; // burda uyeler tablosundaki formdan gelen bilgilerle eşleşen verileri seçtik
	$varmi_q = mysql_query($varmi); // daha sonra fonksiyonumuzu kullandık
	
	## Etkilenen Satır Olup Olmadığını Kontrol Ettik ##
	if(mysql_affected_rows($varmi_q)){
		// varsa hata verdik
		echo '<h1>Böyle bir kullanıcı adı veya e-posta mevcut!</h1>';
	}else {
		// yoksa dedik
		// kayıt işlemlerini burada yapabilirsin orasını sana bırakıyorum :)
	}
	
# serjey
	
}

?>
<h1>Üye Ol</h1>
<form action="" method="post">
<input type="text" name="kadi" /> <br />
<input type="text" name="eposta" /> <br />
<input type="submit" value="Üye Ol!" />
</form>

ya da şöyle bir alternatif var. İkisi de aynı kapıya çıkar. (hiçbir farkı yok) İstediğini kullan.

PHP:
<?php

## Form Bilgilerimizi Çekelim ##
$kadi = mysql_real_escape_string(strip_tags(trim($_POST['kadi'])));
$eposta = mysql_real_escape_string(strip_tags(trim($_POST['eposta'])));

## Boş Olup Olmadığını Kontrol Edelim ##
if(empty($kadi) || empty($eposta)){
	// boşsa hata verelim
	echo '<h1>Boş bırakılamaz!</h1>';
}else {
	
	## Sorgumuz ##
	$varmi = "SELECT * FROM uyeler WHERE uye_adi='$kadi' OR uye_eposta='$eposta'"; // burda uyeler tablosundaki formdan gelen bilgilerle eşleşen verileri seçtik
	$varmi_q = mysql_query($varmi); // daha sonra fonksiyonumuzu kullandık
	$saydir = mysql_num_rows($varmi_q); // kaç satır sonuç var onu saydırdık
	
	## Etkilenen Satır Olup Olmadığını Kontrol Ettik ##
	// saydir 0'dan büyükse dedik yani böyle bir kullanıcı varsa..
	if($saydir > 0){
		// varsa hata verelim
		echo '<h1>Böyle bir kullanıcı adı veya e-posta mevcut!</h1>';
	}else {
		// yoksa dedik
		// kayıt işlemlerini burada yapabilirsin orasını sana bırakıyorum :)
	}
	
# serjey
	
}

?>
<h1>Üye Ol</h1>
<form action="" method="post">
<input type="text" name="kadi" /> <br />
<input type="text" name="eposta" /> <br />
<input type="submit" value="Üye Ol!" />
</form>

Haydi kolay gelsin :)
 

barmen_1982

0
Onaylı Üye
Üye
Katılım
5 Ocak 2013
Mesajlar
6
Açılan Konu
0
Tepki puanı
0
aktivasyon tablosu oluşturuyorsun her işlemde tabloya veri kayıt edip geri dönüşlerde tablodan siliyorsun. üyeler tablosunada durum 1, 0 aktif pasif mantığı uyguluyorsun

Kod:
function DevAktivasyon($mail){
$dev= mysql_query("SELECT * FROM uyeler tablosu WHERE mail='" . $mail. "' and durum=0;");
// üye tablosunda durum alanı oluşturmamız lazım 0 ise pasif 1 ise aktif olsun ve fonksiyonumuzu tetiklerken durum şartını 0 yapalımki saçma işlemler dönmesin.

if($devadam= mysql_fetch_array($dev))
  {
// Mail adresine göndereceğimiz link için 3  aşamalı aktivasyon kodu oluşturuyoruz

$kod1=substr(md5(time() * rand()),0,90);		
$kod2=substr(md5(time() * rand()),0,5);
$kod3=substr(md5(time() * rand()),0,70);

//güvenli bir işlem için aktivasyon tablosu oluşturuyoruz ve üyelik talebinden sonra aktivasyon tablosuna veri kayıt ediyoruz
if(mysql_query("INSERT INTO aktivasyontablosu (mail,kod1,kod2,kod3)

VALUES ('" . $devadam['mail'] . "',". "'" . $kod1. "',". "'" . $kod2. "',". "'" . $kod3. "')")){

$message .= '<p><a href="siteadresi.com/gerigeldidiyelimsafyası.php?mail=' . $devadam['mail'] . '&kod1=' . $kod1. '&kod3=' . $kod3. '">Clik yapıver</a></p>';
// mail fonkisyonunu başlatıyoruz
if(Maille($devadam['mail'], $message, "Aktivasyon" )){
return true;		
}else{
return false;
}
}else{
return false;
}
}else{
return false;	 
}
return false;
}

gerigeldidiyelimsafyası.php
Kod:
$hata="";
$hata_kod1=0;

if(isset($_GET['mail']))
$mail= formatSQL($_GET['mail']); 
else
$mail="";

if(isset($_GET['kod1']))
$kod1= formatSQL($_GET['kod1']); 
else
$kod1="";

if(isset($_GET['kod3']))
$kod3= formatSQL($_GET['kod3']); 
else
$kod3="";

if($mail=="" || $kod1=="" || $kod3==""){
$hata="Parametrelerde hata var şekerim";
$hata_kod1=1;
}else{
$dev= mysql_query("SELECT * FROM aktivasyon tablosu WHERE mail='" . $mail. "' and kod1='" . $kod1. "' and kod3='" . $kod3. "';");
	 
if($devadam= mysql_fetch_array($dev))
{
// işlemde sorun yok ise durumu 1 leyip aktiflemiş oluyoruz
mysql_query("UPDATE uyeler tablosu SET durum=1 WHERE mail= '" . $mail. "';");
			
// güvenlik için aktivasyon tablosundan kaydımızı siliyoruz

mysql_query("delete from aktivasyon tablosu WHERE mail= '" . $mail. "';");
$hata="Tamamdır şekerim";
$hata_kod1=2;			
}else{
$hata="Beceremedin";
$hata_kod1=1;	  
}
}


Kod:
function maille($mail,$message_in,$subject)
{
try{

$headers = "From: " .  $GLOBALS['aktivasyon']  . "<" . $GLOBALS['maili'] . ">";
$headers .= "Content-type: text/html; charset=iso-8859-9";
if(mail($mail,$subject, $message_in, $headers)){		
return true;
}else{
return false;
}
		
}catch (Exception $e) {
 return false;
}
}

Güzel anlatım olmuş ama bu fonksiyonu nasıl kullanacağız. Ben bir çok yol denedim ama üye kaydını veri tabanına ekledikten sonra bu fonksiyonu çalıştıramadım.
 
Üst