İlk önce index.php sayfamızı oluşturalım.
<?php
@session_start();
# Eğer giriş yapılmamış ise ziyaretçiye giriş ve üyelik formunu gösterelim.
if(!isset($_SESSION['kullanici']))
{
?>
<html>
<head>
<title>Giriş</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>Kullanıcı:</td>
<td><input type="text" name="kullanici"></td>
</tr>
<tr>
<td>Şifre:</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">Şifremi Unuttum</a></td>
<tr>
<td><a href="kayit.html">Üye ol</a></td>
</tr>
</table>
</form>
</center>
</body>
</html>
<?php
}
# Eğer giriş yapılmış ise üyeyi tanıyalım.
else
{
echo "Hoşgeldiniz, " . $_SESSION['kullanici']."<br><br>";
echo "Kullanıcı seviyeniz, " . $_SESSION['kullanici_seviye']."<br><b>Bu bölümleri görebilirsiniz.</b><br>";
# Seviye "0" ise
if($_SESSION['kullanici_seviye'] == 0)
{
echo 'HTML,ASP,PHP';
}
# Seviye "3" ise
if($_SESSION['kullanici_seviye'] == 3)
{
echo 'Asp.net,C#, Java';
}
echo '<br><br>Çıkış yapmak için <a href="cikis.php">TIKLA</a>';
}
?>index.php de sayfamıza gelen kişi ziyuaretçi ise giriş ve kayıt linklerini eğer üye ve giriş yapmış ise session ile görmesi gereken sayfaları gösteriyoruz.geliştirmek size kalmış.Ardından giriskontrol.php sayfamızı inceliyoruz.
<?php
@session_start();
include("fonksiyonlar.php");
db_baglanti();
# Formdan veri çekiyoruz
$kullanici = addslashes($_POST['kullanici']);
$sifre = addslashes($_POST['sifre']);
# Form Kontrolleri
if((!$kullanici) || (!$sifre))
{
echo '<font color="red">Lütfen tüm alanları doldurun.</font>';
include("index.php");
}
else
{
# Parolayı Shal olarak alıyoruz
$sifre2 = sha1($sifre);
# Kullanıcı adı ve şifre atifmi kontrolü yapıyoruz.
$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;
# Databaseden kullanıcı seviyesini alıp sesiona atıyoruz
$_SESSION['kullanici_seviye'] = $yaz['kullanici_seviye'];
header("Location: index.php");
}
}
else
{
echo '<font color="red">Kullanıcı adı ve parola yanlış, yada hesabınızı aktif etmediniz. !</font>';
}
}
?>Kontroller ve onay sayfası için<?php
include ("fonksiyonlar.php");
# Bağlantı Oluştur
db_baglanti();
# Formdan verileri alalım
$ad = stripslashes($_POST['ad']);
$kullanici = stripslashes($_POST['kullanici']);
$sifre = stripslashes($_POST['sifre']);
$sifre2 = stripslashes($_POST['sifre2']);
$email = stripslashes($_POST['email']);
$hakkinda = stripslashes($_POST['hakkinda']);
# Kontrol Edelim
if((!$ad) || (!$kullanici) || (!$sifre) || (!$sifre2) || (!$email))
{
echo '<font color="red">Gerekli bir bölümü boş bıraktınız.</font>';
if(!$ad)
{
echo '<font color="red">Ad soyadı boş bıraktınız.</font>';
}
if(!$kullanici)
{
echo '<font color="red">Kullanıcı adını boş bıraktınız.</font>';
}
if(!$sifre)
{
echo '<font color="red">Þifre alanını boş bıraktınız.</font>';
}
if(!$sifre2)
{
echo '<font color="red">Þifrenizi tekrar yazmadınız.</font>';
}
if($sifre != $sifre2)
{
echo '<font color="red">Şifreler uyuşmuyor.</font>';
}
if(!$email)
{
echo '<font color="red">Emaili alanını boş bıraktınız.</font>';
}
include("kayit.html");
exit;
}
# Yazılın kullanıcı adı yada mail daha önce alınmışmı bakalım.
$email_kontrol = mysql_query("select email from kullanicilar where email='$email'");
$kullanici_kontrol = mysql_query("select kullanici from kullanicilar where kullanici='$kullanici'");
# Sonucu
$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 oluştu.</font>';
if($email_kontrol2 > 0)
{
echo '<font color="red">Bu email adresi zaten kullanılıyor.</font>';
unset($email);
}
if($kullanici_kontrol2 > 0)
{
echo '<font color="red">Bu kullanıcı adı zaten kullanılıyor.</font>';
unset($kullanici);
}
include("kayit.html");
exit;
}
$rastgele_sayi = rastgelesayi();
$sifre2 = sha1($sifre);
#Girilen Bilgileri Dbye yazdırıyoruz.
$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 yazdırırken bir hata oluşursa;
if(!$sql2)
{
echo 'Bir hata oluştu.Lütfen daha sonra tekrar deneyin.';
}
else
{
$kullanici_id = mysql_insert_id();
# Kullanıcıya hesabını etkinleştirmesi için mail gönderiyoruz.
$konu = "Üyelik Onayı";
$mesaj = " Sayın $ad
Üyelik işleminizi tamamlamak için aşağıdaki linke tıklayın ya da adres çubuğuna kopyalayın.
http://www.10bir.net/aktifle.php?id=$kullanici_id&akod=$rastgele_sayi
Giriş Bilgileriniz;
Kullanıcı adı: $kullanici
Şifre: $sifre
Teşekkürler.";
mail($email, $konu, $mesaj, "From: Domain.com<admin@domain.com>");
echo 'Kullanıcı bilgileriniz email adresinize gönderildi.Üyeliğizi onaylamak için lütfen email adresinizdeki
bağlantıya tıklayın.Aksi halde siteye giriş yapamazsınız .<br />';
echo 'Anasayfa için <a href="index.php">tıklayın</a>';
}
?>ardından üye onay sayfası<?php
include ("fonksiyonlar.php");
db_baglanti();
# Linkden bilgileri çekelim.
$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 'Hesabınız aktifleştirilemedii';
}
elseif($kontrol > 0)
{
echo 'Tebrikler üye olmayı başardın.';
include("index.php");
}
?>Şifremi unutum sayfası
<?php
include("fonksiyonlar.php");
db_baglanti();
$email = $_POST['email'];
if(!$email)
{
echo "Lütfen kayıt olurken girdiğiniz 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">Girdiğiniz email adresi kayıtlı değil.</font>';
unset($email);
include ("yeni_sifre.html");
exit();
}
#Rastgele say üret
$rastgele_sayi = rastgelesayi();
#Rastgele üretilen sayıyı sha1 yap.
$yeni_sifre = sha1($rastgele_sayi);
# Sha1 olan şifreyi dbye kaydet, normal şifreyi maille kullancya gönder.
$sql = mysql_query("update kullanicilar set sifre='$yeni_sifre' where email='$email'");
$konu = "Þifre hatrlatma";
$mesaj = " Merhaba, bizden yeni şifre istemişsiniz.Buyrun
Yeni şifreniz: $rastgele_sayi
http://www.10bir.net/
Teşekkürler.";
mail($email, $konu, $mesaj, "From: Domain.com<admin@domain.com>");
echo 'Yeni şifreniz arzu ettiğiniz adrese gönderilmiştir.';
?>Kullanılan Fonksiyonlar<?php
# Db bağlantısı
function db_baglanti()
{
$db_host = "localhost";
$db_kullanici = "r10";
$db_sifre = "123456";
$db_adi = "root";
$baglanti = mysql_connect($db_host, $db_kullanici, $db_sifre);
mysql_select_db($db_adi, $baglanti);
if(mysql_errno())
{
echo 'Veritabanına bağlanılamıyor ...';
exit;
}
}
# Rastgele sayı Oluştur.
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;
}
?>ve çıkış sayfamız.<?php
session_start();
if(!isset($_SESSION['kullanici']))
{
echo 'Hayrola nerden ?';
}
else
{
session_destroy();
header("Location: index.php");
}
?>2 tanede html sayfamız varKayıt HTML
<html>
<head>
<title>Kayıt 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>Kullanıcı adı: </td>
<td><input type="text" name="kullanici"> *</td>
</tr>
<tr>
<td>Şifre: </td>
<td><input type="password" name="sifre"> *</td>
</tr>
<tr>
<td>Şifre tekrar: </td>
<td><input type="password" name="sifre2"> *</td>
</tr>
<tr>
<td>Email: </td>
<td><input type="text" name="email"> *</td>
</tr>
<tr>
<td>Hakkında: </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='Gönderiliyor...';" value="Gönder"></td>
</tr>
</table>
</body>
</html>Yenisifre html<html> <head> <title>Şifremi Unuttum</title> </head> <body> <form action="sifre_unuttum.php" method="post"> Email :<input type="text" name="email"><br /> <input type="submit"> </form> </body> </html>
Takılan yapamayan olursa yazarsınız..
unutmadan sql i

-- phpMyAdmin SQL Dump
-- version 2.9.2
-- http://www.phpmyadmin.net
--
-- Anamakine: localhost
-- Üretim Zamanı: 15 Ağustos 2007 saat 23:28:54
-- Sunucu sürümü: 5.0.33
-- PHP Sürümü: 5.2.1
--
-- Veritabanı: `r10`
--
-- --------------------------------------------------------
--
-- Tablo yapısı: `kullanicilar`
--
CREATE TABLE `kullanicilar` (
`id` int(25) NOT NULL auto_increment,
`ad_soyad` varchar(25) collate latin1_general_ci NOT NULL default '',
`kullanici` varchar(25) collate latin1_general_ci NOT NULL default '',
`sifre` varchar(255) collate latin1_general_ci NOT NULL default '',
`email` varchar(25) collate latin1_general_ci NOT NULL default '',
`hakkinda` text collate latin1_general_ci NOT NULL,
`kullanici_seviye` enum('0','1','2','3') collate latin1_general_ci NOT NULL default '0',
`kayit_tarih` datetime NOT NULL default '0000-00-00 00:00:00',
`akod` varchar(255) collate latin1_general_ci NOT NULL default '',
`aktiflik` enum('0','1') collate latin1_general_ci NOT NULL default '0',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=2 ;
--
-- Tablo döküm verisi `kullanicilar`
--
INSERT INTO `kullanicilar` VALUES (1, 'volkan', 'bagcali', 'fa6977c99b809db68e1c56888ec38bd004719b39', 'volkan@dode.com.tr', 'r10.net', '0', '2007-08-15 23:26:08', 'ua8umew1', '0');ekstra bir üyelik seviyesi eklenip db yapısı değiştirilmiştir.
özgem'li ... ((: