Php Uyelik Sistemi - Php uyelik yapma - Hazir Php Uyelik Sistemi - Php Uyelik Scripti - Sitenize Entegre YapabilirSiniz. Gerekli Php uyelik bilgileri....
fonksiyonlar.php = Fonksiyonlari iceren sayfa
kayit.html = Kullanicilarin siteye uye olabilmesini saglayan sayfa
uyepostala.php = Kullanicinin siteye uye olurken girdigi bilgileri veritabanina yazan ve aktivasyon linki gonderen . sayfa.
aktifle.php = Kullanicinin hesabini aktif eden sayfa.
index.php = Anasayfa, kullanicin karsilastigi ilk sayfa (Login)
giriskontrol.php = Kullanici adi ve parolasini kontrol eden sayfa
yeni_sifre.html = sifresini unutan kullanicilarin yeni bir sifre istemeleri icin gereken form.
sifre_unuttum.php = yeni_sifre.html den gelen email adresine yeni sifre gonderen sayfa.
oncelikle MySQLde uyelik . adinda bir veritabani yaratip, su sorguyu calistiralim:
CREATE TABLE kullanicilar (
id int(25) NOT NULL auto_increment,
ad_soyad varchar(25) NOT NULL default ,
kullanici varchar(25) NOT NULL default ,
sifre varchar(255) NOT NULL default ,
email varchar(25) NOT NULL default ,
hakkinda text NOT NULL,
kullanici_seviye enum(0,1,2,3) NOT NULL default 0,
kayit_tarih datetime NOT NULL default 0000-00-00 00:00:00,
akod varchar(255) NOT NULL default ,
aktiflik enum(0,1) NOT NULL default 0,
PRIMARY KEY (id)
) TYPE=MyISAM;
Sorguyu calistirdiktan sonra MySQL veritabani baglantisini yapalim.
fonksiyonlar.php
<?php // Db baglantisi function db_baglanti()
{
$db_host = "localhost"; $db_kullanici = "root"; // Db kullanici adiniz $db_sifre = ""; // Db sifreniz $db_adi = "uyelik"; // Db adiniz $baglanti = mysql_connect($db_host, $db_kullanici, $db_sifre); mysql_select_db($db_adi, $baglanti);
if(mysql_errno())
{
echo Veritabanina baglanilamiyor ...;
exit;
}
}
// Rastgele sayi Olustur. function . rastgelesayi() { $salt = "abchefghjkmnpqrstuvwxyz0123456789"; srand((double)microtime()*1000000); $i = 0;
while ($i <= 7) { $num = rand() % 33; $tmp = substr($salt, $num, 1); $pass = $pass . $tmp; $i++;
}
return $pass;
}
?>
Fonksiyonlara diger sayfalardan ulasabilmek icin tek sayfada toplamak daha mantikli olacaktir.simdi kullanicilarin kayit olacagi basit bir form hazirlayalim.
kayit.html
<html>
<head>
<title>Kayit ol</title>
<style type="text/css">
table {
font-family: Arial;
font-size: 9pt;
}
</style>
</head>
<body>
<form action="uyepostala.php" method="post">
<table border="0">
<tr>
<td>Ad Soyad: </td>
<td><input type="text" name="ad"> *</td>
</tr>
<tr>
<td>Kullanici adi: </td>
<td><input type="text" name="kullanici"> *</td>
</tr>
<tr>
<td>sifre: </td>
<td><input type="password" name="sifre"> *</td>
</tr>
<tr>
<td>sifre tekrar: </td> .
<td><input type="password" name="sifre2"> *</td>
</tr>
<tr>
<td>Email: </td>
<td><input type="text" name="email"> *</td>
</tr>
<tr>
<td>Hakkinda: </td>
<td><textarea name="hakkinda" rows="10" cols="23"></textarea></td>
</tr>
<tr>
<td></td>
<td><input type="submit" onclick="javascript:this.form.submit(); this.disabled=true; this.value=Gonderiliyor...;"> </td>
</tr>
</table> .
</body>
</html>
Kullanici bu formu doldurup gonderdiginde uyepostala.php sayfasina post ettirecegiz.Uyepostala.php sayfasi kullanicinin girdigi bilgileri veritabanina kaydedip, kullaniciya hesabini etkinlestirmesi icin mail gondermesini saglayacak olan sayfadir.Gerekli aciklamalar kod icinde.
uyepostala.php
<?php
include ("fonksiyonlar.php");
// Baglanti olustur.
db_baglanti();
// Formdan verileri alalim.
$ad = stripslashes($_POST[ad]);
$kullanici = stripslashes($_POST[kullanici]);
$sifre = stripslashes($_POST[sifre]);
$sifre2 = stripslashes($_POST[sifre2]);
$email = stripslashes($_POST[email]);
$hakkinda = stripslashes($_POST[hakkinda]);
// Form kontrolleri
if((!$ad) || (!$kullanici) || (!$sifre) || (!$sifre2) || (!$email))
{
echo <font color="red">Gerekli bir bolumu bos biraktiniz.</font>;
if(!$ad)
{
echo <font color="red">Ad soyadi bos biraktiniz.</font>;
}
if(!$kullanici)
{
echo <font color="red">Kullanici adini bos biraktiniz.</font>;
}
if(!$sifre)
{
echo <font color="red">sifre alanini bos biraktiniz.</font>;
}
if(!$sifre2)
{
echo <font color="red">sifrenizi tekrar yazmadiniz.</font>;
}
if($sifre != $sifre2)
{
echo <font color="red">sifreler uyusmuyor.</font>;
}
if(!$email)
{
echo <font color="red">Emaili alanini bos biraktiniz.</font>;
}
include("kayit.html");
exit;
}
// Yazilan kullanici adi veya email daha once baskasi tarafindan alinmis mi?
$email_kontrol = mysql_query("select email from kullanicilar where email=$email");
$kullanici_kontrol = mysql_query("select kullanici from kullanicilar where kullanici=$kullanici");
// Sonucu alalim
$email_kontrol2 = mysql_num_rows($email_kontrol);
$kullanici_kontrol2= mysql_num_rows($kullanici_kontrol);
if(($email_kontrol2 > 0) || ($kullanici_kontrol2 > 0))
{
echo <font color="red">Hata olustu.</font>;
if($email_kontrol2 > 0)
{
echo <font color="red">Bu email adresi zaten kullaniliyor.</font>;
unset($email);
}
if($kullanici_kontrol2 > 0)
{
echo <font color="red">Bu kullanici adi zaten kullaniliyor.</font>;
unset($kullanici);
}
include("kayit.html");
exit;
}
$rastgele_sayi = rastgelesayi();
$sifre2 = sha1($sifre);
// Girilen Bilgileri Dbye yazdiriyoruz.
$sql = "insert into kullanicilar (ad_soyad, kullanici, sifre, email, hakkinda, akod, kayit_tarih)
values($ad, $kullanici, $sifre2, $email, $hakkinda, $rastgele_sayi, now())";
$sql2 = mysql_query($sql);
// Dbye yazdirirken bir hata olusursa;
if(!$sql2)
{
echo Bir hata olustu.Lutfen daha sonra tekrar deneyin.;
}
else
{
$kullanici_id = mysql_insert_id();
// Kullaniciya hesabini etkinlestirmesi . icin mail gonderiyoruz.
$konu = "uyelik Onayi";
$mesaj = " Sayin $ad
uyelik isleminizi tamamlamak icin asagidaki linke tiklayin ya da adres cubuguna kopyalayin.
http://www.domain.com/aktifle.php?id=$kullanici_id&akod=$rastgele_sayi
Giris Bilgileriniz;
Kullanici adi: $kullanici
sifre: $sifre
Tesekkurler.";
mail($email, $konu, $mesaj, "From: Domain.com<admin@domain.com>");
echo Kullanici bilgileriniz email adresinize gonderildi.uyeligizi onaylamak icin lutfen email adresinizdeki
baglantiya tiklayin.Aksi halde siteye giris yapamazsiniz .<br />;
echo Anasayfa icin <a href="index.php">tiklayin</a>;
}
?>
Kullaniciya maili de gonderdikten sonra hesabini aktiflestirmesi icin gereken sayfayi yani aktifle.php sayfasini yapalim.
aktifle.php
<?php
include ("fonksiyonlar.php");
db_baglanti();
// Urlden verileri al.
$kullanici_id = $_REQUEST[id];
$akod = $_REQUEST[akod];
$sql = mysql_query("update kullanicilar SET aktiflik=1 where id=$kullanici_id AND akod=$akod");
$sql2 = mysql_query("select * from kullanicilar where id=$kullanici_id AND akod=$akod AND aktiflik=1");
$kontrol = mysql_num_rows($sql2);
if($kontrol == 0)
{
echo Hesabiniz etkinlestirilemedi;
}
elseif($kontrol > 0)
{
echo Tebrikler uye olmayi basardiniz.;
include("index.php");
}
?>
uyeligi aktiflestirdikten sonra kullanicinin giris yapabilmesi icin gereken formu yapalim.Yani anasayfayi yapalim.
index.php
<?php
@session_start();
// Giris yapilmamissa
if(!isset($_SESSION[kullanici]))
{
?>
<html>
<head>
<title>Giris</title>
<style type="text/css">
table {
font-family: Arial;
font-size: 9pt;
}
</style>
</head>
<body>
<form action="giriskontrol.php" method="post">
<table border="0">
<tr>
<td>Kullanici:</td>
<td><input type="text" name="kullanici"></td>
</tr>
<tr>
<td>sifre:</td>
<td><input type="password" name="sifre"></td>
</tr>
<tr>
<td></td>
<td><input type="submit"></td>
</tr>
<tr>
<td><a href="yeni_sifre.html">sifremi Unuttum</a></td>
<tr>
<td><a href="kayit.html">uye ol</a></td>
</tr>
</table>
</form>
</center>
</body>
</html>
<?php
}
// Giris yapilmissa
else
{
. echo "Hosgeldiniz, " . $_SESSION[kullanici]."<br><br>";
echo "Kullanici seviyeniz, " . $_SESSION[kullanici_seviye]."<br><b>su bolumleri gorebilirsiniz.</b><br>";
// Kullanici seviyesi 0 ise
if($_SESSION[kullanici_seviye] == 0)
{
echo HTML,ASP,PHP;
}
// Kullanici seviyesi 3 ise
if($_SESSION[kullanici_seviye] == 3)
{
echo Asp.net,C#, Java;
}
echo <br><br>cikis yapmak icin <a href="cikis.php">tiklayin</a>;
}
?>
Kullanici adi ve parolasini kontrol edicek olan giriskontrol.php sayfasi ayni zamanda kullaniciya sessionlari atayan sayfadir.
giriskontrol.php
<?php
@session_start();
include("fonksiyonlar.php");
db_baglanti();
// Formdan verileri aliyoruz.
$kullanici = addslashes($_POST[kullanici]);
$sifre = addslashes($_POST[sifre]);
// Form kontrolleri
if((!$kullanici) || (!$sifre))
{
echo <font color="red">Lutfen tum alanlari doldurun.</font>;
include("index.php");
}
else
{
//Parolayi sha1 olarak aliyoruz.
$sifre2 = sha1($sifre);
// simdi kullanici adi,sifre, aktif mi? kontrolu
$sql = mysql_query("select * from kullanicilar where kullanici=$kullanici and sifre=$sifre2 and aktiflik= 1 ");
$sql2 = mysql_num_rows($sql);
if ($sql2 > 0)
{
while($yaz = mysql_fetch_array($sql))
{
$_SESSION[kullanici] = $kullanici;
// Veritabanindan kullanici seviyesini alip, sessiona kaydediyoruz.
$_SESSION[kullanici_seviye] = $yaz[kullanici_seviye];
header("Location: index.php");
}
}
else
{
echo <font color="red">Kullanici adi veya parola yanlis.Yada hesabinizi aktiflestirmediniz !</font>;
}
}
?>
Kullanicilarin yeni bir sifre istemeleri icin gereken formu yapalim.
yeni_sifre.html
<html>
<head>
<title>sifremi Unuttum</title>
</head>
<body>
<form action="sifre_unuttum.php" method="post">
Email :<input type="text" name="email"><br />
<input type="submit">
</form>
</body>
</html>
yeni_sifre.html sayfasini karsilayacak olan sifre_unuttum.php sayfasini yapalim.
sifre_unuttum.php
<?php
include("fonksiyonlar.php");
db_baglanti();
$email = $_POST[email];
if(!$email)
{
echo "Lutfen kayit olurken girdiginiz mail adresini giriniz.";
include ("yeni_sifre.html");
exit();
}
// Email adresini kontrol . et.
$email_kontrol = mysql_query("select * from kullanicilar where email=$email");
$email_kontrol2 = mysql_num_rows($email_kontrol);
if($email_kontrol2 == 0)
{
echo <font color="red">Girdiginiz email adresi kayitli degil.</font>;
unset($email);
include ("yeni_sifre.html");
exit();
}
// Rastgele sayi uret
$rastgele_sayi = rastgelesayi();
// Rastgele uretilen sayiyi sha1 yap.
$yeni_sifre = sha1($rastgele_sayi);
// Sha1 olan sifreyi dbye kaydet, normal sifreyi maille kullaniciya gonder.
$sql = mysql_query("update kullanicilar set sifre=$yeni_sifre where email=$email");
$konu = "sifre hatirlatma";
$mesaj = " Merhaba, bizden yeni sifre istemissiniz.Buyrun
Yeni sifreniz: $rastgele_sayi
http://www.domain.com/
Tesekkurler.";
mail($email, $konu, $mesaj, "From: Domain.com<admin@domain.com>");
echo Yeni sifreniz arzu ettiginiz adrese gonderilmistir.;
?>
Biraz Uzun Ama HepSi Bukadar NOT ALINTIDIR .
etiketler: php uyelik scripti php uyelik php uyelik scripti php uyelik yapma uyelik scripti basit uyelik scripti
|