Mesajlar etiketlendi script

UseBB forum scripti


UseBB forum scripti

Merhaba, bugün sizlere ücretsiz bir forum script’ini, UseBB adlı scripti tanıtmak isterim.

Şunu rahatlıkla söyleyebilirim ki UseBB şu anda internet dünyasında ne kadar script var ise en hızlısıdır. 2003 yılından bu yana aktifdir. Kurulumu kullanımı çok basit bir sistemdir. Sistemin bir örneğine ulaşmak için buraya tıklayabilirsiniz.

Türkiye destek sayfası forumun yakında çıkacak olan 2.0 sürümüne kadar kapalıdır.

UseBB Anasayfası: UseBB – The Usable Forum Software

Kaynak

Yorum bırakın »

Php Alışveriş Sitesi Scripti

Aslında bir alış veriş sepeti tasarlamak veritabanındaki ürün bilgilerine göre olur. Yani ilk önce ürünlerle ilgili veritabanın tasarlanması en iyisi.
Örnek bir veritabanındaki ürün tablosunda neler olabilir acaba:

istediklerim:

  • Ürün adı
  • fiyatı
  • Ürün detayı
  • Stok durumu
  • indirim oranı


v.s

gibi daha geniş bir veritabanı tablosu tasarımıda istenebilir.

Tablomuzu oluşturalım:

CREATE TABLE `urunler` (
`id` int(11) NOT NULL auto_increment,
`urunadi` varchar(250) NOT NULL default ”,
`fiyat` int(11) NOT NULL default ‘0′,
`resim` varchar(200) default ”,
`detay` text NOT NULL,
`stok` int(11) default ‘0′,
`indirim` int(4) default ‘0′,
`goster` char(1) default ‘1′,
`tarih` datetime default ‘0000-00-00 00:00:00′,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin5;

Tabloyu veritabanına kaydettikten sonra içine ürünlerimizi ekleyelim:

INSERT INTO `urunler`(`urunadi`,`fiyat`,`resim`,`detay`) VALUES(‘Buz dolabı’,'400′,’abcd1.jpg’,'Bu buzdolabı ile yazı rahat geçirin’);
INSERT INTO `urunler`(`urunadi`,`fiyat`,`resim`,`detay`) VALUES(‘Televizyon’,'200′,’abcd2.jpg’,'Bu televizyon ile rahatsız olabilirsiniz’);
INSERT INTO `urunler`(`urunadi`,`fiyat`,`resim`,`detay`) VALUES(‘Kiatap’,'10′,’abcd3.jpg’,'Son yılların en çok okunan Kitabı’);
INSERT INTO `urunler`(`urunadi`,`fiyat`,`resim`,`detay`) VALUES(‘incik boncuk’,'4′,’abcd4.jpg’,'Sevgilinize bir küpe alın onu mutlu edin’);

Ben stok,indirim,goster,tarih gibi değerleri girmedim. Ama siz isterseniz sorguyu kendinize göre yeniden düzenleyebilirsiniz. Şimdilik bu kadarı benim için yeterli.

Sıra geldi sanal mağazamıza gelecek olan hasan ağanın ürünlerimizden birisini nasıl alacağına.

Hasan ağa,ahamet ağa ve daha birçok değerli müşterimiz rahatça ve kapkaççılardan korunsun diye onlara yüksek mertebeden bir üyelik vereceğiz. Bir nevi sanal pasaport.
Mağaza öyle sokak ortasında olmadından her gelen malı elleyemiyor yani.
Üyeler tablomuzu ben aşağıdaki gibi tasarladım ,eğer eksikse siz kendinize göre daha genişini tasarlayın ;)

CREATE TABLE `uyeler` (
`id` int(11) NOT NULL auto_increment,
`ad` varchar(30) NOT NULL default ”,
`soyad` varchar(30) NOT NULL default ”,
`kullaniciadi` varchar(30) NOT NULL default ”,
`Email` varchar(60) NOT NULL default ”,
`sifre` varchar(32) NOT NULL default ”,
`sesid` varchar(70) NOT NULL default ”,
`onay` varchar(30) default ‘0′,
`il` varchar(100) NOT NULL default ”,
`ilce` varchar(100) NOT NULL default ”,
`semt` varchar(100) NOT NULL default ”,
`mahalle` varchar(100) NOT NULL default ”,
`adres` varchar(100) NOT NULL default ”,
`ceptel` varchar(100) NOT NULL default ”,
`tarih` date NOT NULL default ‘0000-00-00′,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin5;

INSERT INTO `uyeler`(`ad`,`soyad`,`kullaniciadi`,`Email`,`sifre`,`onay`) VALUES(‘Gökçe’,'ÇİFTÇİ’,'gciftci’,'gciftci@gmail.com’,MD5(‘1234′),’1′);
Üye girişi için PHP koldarımızı yazalım.

form.html

<FORM method=”POST” action=”giris.php” method=post>
Kullanıcı adı: <INPUT type=text name=”kullaniciadi” value=”">
Şifre: <INPUT type=”password” name=”sifre” value=”">
<INPUT type=hidden name=”durum” value=”giris”>
<INPUT type=”submit” value=”Giriş Yap”>
</FORM>

giris.php programımızı yazalım:

<?php
session_start();
$conn = mysql_connect(“localhost”, “kullanıcıadı”, “şifre”);
if (!$conn) {
echo “veritabanına ulaşılamadı,kullanıcıadı,şifre yada localhost bilgisi yanlış olabilir: ” . mysql_error();
exit;
}
if (!mysql_select_db(“veritabanıadı”)) {
echo “Veritabanı adı doğru değil, yada yok: ” . mysql_error();
exit;
}

if($_POST['durum'] == ‘giris’){
$kullaniciadi=htmlentities(mysql_real_escape_string($_POST['kullaniciadi']));
$result = mysql_query(“SELECT kullaniciadi,sifre FROM uyeler WHERE kullaniciadi=’{$kullaniciadi}’”) or die(mysql_error());
$row = mysql_fetch_array($result);
if($row['kullaniciadi'] == “”){
echo “<b>Kullanıcı adınız yada şifreniz hatalı.</b>”;
}else{
if($row['onay'] == “0″){
echo “Hesabınızı aktive etmek için Eposta adresinize gönderilen adresi tıklayarak giriş yapmanız gerekir”; exit;
}
$sifre = $_POST['sifre'];
if($row['sifre'] == md5($sifre)){
$_SESSION['kullaniciadi'] = $_POST['kullaniciadi'];
$_SESSION['uye'] = ‘uyemiz’;
header(“Location: hesap.php”);
exit;
}
else{
echo “<b>Kullanıcı adınız yada şifreniz hatalı.</b>”;
}
}
}else{
header(“Location: form.html”);
}
mysql_close($conn);
?>

kullanıcımızın bilgileri şayet doğru ise onu hesap.php programına yönlendiriyoruz. Böylece bilgilerini ve siparişini görebilecek.
hesap.php programımızı yazalım ama önce program içinde kullanacağımız sparis tablosunu oluşturalım

Üye tablomuz tamam.Üye girişi için programımızda tamam, Şimdi sıra geldi üyelerimizin bize vereceği sparişi kaydetmeye. Bunun içinde bir tablo oluşturalım. Ben siparis adını vereceğim bu tabloyu aşağıdaki gibi tasarladım.

CREATE TABLE `sparis` (
`id` int(11) NOT NULL auto_increment,
`uyeid` int(11) NOT NULL default ‘0′,
`sparis` varchar(100) NOT NULL default ”,
`fiyat` varchar(32) NOT NULL default ”,
`adet` int(10) default ‘1′,
`durumu` int(1) default ”,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin5;

şimdilik sipariş tablomuz boş. Yukarıda bir kayıtlı kullanıcımız var onun adına bir sipariş vereceğiz zaten.Ozaman sipariş tablomuza nasıl kayıt yapıldığını göreceğiz.
hesap.php programımızı şimdi yazabiliriz.

<?php
session_start();
$conn = mysql_connect(“localhost”, “kullanıcıadı”, “şifre”);
if (!$conn) {
echo “veritabanına ulaşılamadı,kullanıcıadı,şifre yada localhost bilgisi yanlış olabilir: ” . mysql_error();
exit;
}
if (!mysql_select_db(“veritabanıadı”)) {
echo “Veritabanı adı doğru değil, yada yok: ” . mysql_error();
exit;
}
if($_SESSION['kullaniciadi'] == ” || $_SESSION['uye'] == ”){
header(“Location: giris.php”);
exit;
}
$kullaniciadi=$_SESSION['kullaniciadi'];
$result1 = mysql_query(“SELECT * FROM uyeler WHERE kullaniciadi=’{$kullaniciadi}’”);
if (!$result1) {
echo “Sorguda hata var ($sql) sorguyu gözden geçirin: ” . mysql_error();
exit;
}
$row1 = mysql_fetch_assoc($result1);
$uyeid=$row1['id'];
$result = mysql_query(“SELECT * FROM sparis WHERE uyeid=’{$uyeid}’”);
if (mysql_num_rows($result) == 0) {
echo “<h2>Hiç siparişiniz yok.</h2>”;
echo “Sipariş vermek için lütfen <a href=’sepet1.php’>Sipariş sayfası</a> nı tıklayın.”;
exit;
}
while ($row = mysql_fetch_assoc($result)) {
echo $row['sparis'] . “- ” . $row['fiyat'] . “- ” . $row['adet']. “<br>\n”;
}
mysql_free_result($result);
mysql_close($conn);
?>

Gelelim veritabanımızda bulunan urunler adlı tablomuzda kayıtlı olan ürünleri ekrana yazdırmaya. Bunun için aşağıdaki kodları yazdım. Sade ve anlaşılır olmasına çalıştım. Ama dileyen dahada karmaşık hale getirebilir ;)

sepet1.php

<?php
$conn = mysql_connect(“localhost”, “root”, “1234″);
if (!$conn) {
echo “veritabanına ulaşılamadı,kullanıcıadı,şifre yada localhost bilgisi yanlış olabilir: ” . mysql_error();
exit;
}
if (!mysql_select_db(“proje”)) {
echo “Veritabanı adı doğru değil, yada yok: ” . mysql_error();
exit;
}
$sql = “SELECT urunadi, fiyat, resim,detay FROM urunler”; # sorguda DESC ve ORDER BY, GROUP BY ve LIMIT kullanılabilir. Bu size kalmış birşey.
$result = mysql_query($sql);
if (!$result) {
echo “Sorguda hata var ($sql) sorguyu gözden geçirin: ” . mysql_error();
exit;
}
if (mysql_num_rows($result) == 0) {
echo “Kayıtlı hiçbir bilgiye rastlanmadı.”;
exit;
}
include(“sepet2.php”);
echo “<table>”;
while ($row = mysql_fetch_assoc($result)) {
echo ‘<tr><TD>
<img src=”‘.$row["resim"].’” border=0><br>’.$row["urunadi"].’ <br>’.$row["detay"].’<br>’.$row["fiyat"].’</TD>
<TD>
<FORM method=”POST” action=”sepet1.php” method=post>
<INPUT type=hidden name=”durum” value=1>
<INPUT type=”hidden” name=”urun” value=”‘.$row["urunadi"].’”>
<INPUT type=”hidden” name=”fiyat” value=”‘.$row["fiyat"].’”>
<INPUT type=”text” name=”adet” size=”3″ value=”1″>
<INPUT type=”submit” value=”Sepete Ekle”>
</FORM>
</TD></tr>’;
}
echo “</table>”;
mysql_free_result($result);
mysql_close($conn);
?>

Kodlarımızı sepet1.php olarak kaydettim ve çalıştırdım. Herşey yolunda. Yani istediğim gibi ürünlerimi ekran fiyat bilgisi ile birlikte ekrana yazdı.
Sipariş için tablomuzu okuttuk ve gereklibilgiler sayfaya yazdırıldı bu tamam. Sıra geldi sepet temin etmeye. Yüksek mertebedeki üyelerimize sepet vermesek ayıp olur. Mallar elde taşınmaz karizmaya zarar. Sonra pişman olup birdaha mağazaya gelmezler. Müşteri veli nimetmizdir.

Capiyto arkadaşımızın yazdığı class kullanacağım. Çünkü gayet kullanışlı.
bu kodlarıda sepet2.php olarak kaydedelim.

<?
session_start();
class sepet {
var $sepetteki_urunler;

function sepet () {
if (isset($_SESSION["sepetteki_urunler"])) {
$this->sepetteki_urunler = $_SESSION["sepetteki_urunler"];
}
}

function sepete_ekle ($urun_no,$adet) {
$this->sepetteki_urunler[$urun_no] = $adet;
}

function sepetten_cikar ($urun_no,$adet) {
if (isset($this->sepetteki_urunler[$urun_no])) {
if ($this->sepetteki_urunler[$urun_no] > $adet) {
$this->sepetteki_urunler[$urun_no] = $adet;
} else {
unset($this->sepetteki_urunler[$urun_no]);
}
}
}

function sepeti_kaydet () {
if (isset($this->sepetteki_urunler)) $_SESSION["sepetteki_urunler"] = $this->sepetteki_urunler;
}

function sepeti_listele () {
if (isset($_SESSION["sepetteki_urunler"])) {
return $_SESSION["sepetteki_urunler"];
} else {
return false;
}
}

function oturum_kapat () {
#session_destroy();
$_SESSION["sepetteki_urunler"]=”;
header(“Location: sepet2.php”);
}
}

?>

<?php
#şimdi yukarıdaki class ile nasıl çalışacağız onu ele alalım.

$yeni_sepet = new sepet;
if ($_POST["durum"]==1) {
$yeni_sepet->sepete_ekle($_POST["urun"],$_POST["adet"].”-”.$_POST["fiyat"]);
$yeni_sepet->sepeti_kaydet();
}

if ($_POST["durum"]==2) {
$yeni_sepet->sepetten_cikar($_POST["urun"],$_POST["adet"]);
$yeni_sepet->sepeti_kaydet();
}

if ($_POST["durum"]==3) {
$yeni_sepet->oturum_kapat();
}

if ($_POST["durum"]==4) {

$conn = mysql_connect(“localhost”, “root”, “1234″);
if (!$conn) {
echo “veritabanına ulaşılamadı,kullanıcıadı,şifre yada localhost bilgisi yanlış olabilir: ” . mysql_error();
exit;
}

if (!mysql_select_db(“proje”)) {
echo “Veritabanı adı doğru değil, yada yok: ” . mysql_error();
exit;
}

if($_SESSION['kullaniciadi'] == ” || $_SESSION['uye'] == ”){
header(“Location: giris.php”);
exit;
}

$kullaniciadi=$_SESSION['kullaniciadi'];

$result1 = mysql_query(“SELECT * FROM uyeler WHERE kullaniciadi=’{$kullaniciadi}’”);

if (!$result1) {
echo “Sorguda hata var ($sql) sorguyu gözden geçirin: ” . mysql_error();
exit;
}

$row1 = mysql_fetch_assoc($result1);

$uyeid=$row1['id'];

$urunler = $yeni_sepet->sepeti_listele();
while (list($anahtar,$deger) = each($urunler)) {

$tutar=explode(“-”, $deger);
$result= mysql_query(“INSERT INTO `sparis`(`uyeid`,`sparis`,`fiyat`,`adet`) VALUES(‘{$uyeid}’,'{$anahtar}’,'{$tutar[1]}’,'{$tutar[0]}’)”) or die(mysql_error());

}

if (!$result) {
echo “Sorguda hata var ($sql) sorguyu gözden geçirin: ” . mysql_error();
exit;
}else{
echo “bilgileriniz ve siparişleriniz alındı,en kısa zamnda sizinle kontak kurup bilgileri doğruluyacağız.Teşekkür ederiz.”;
exit;
}
}

$urunler = $yeni_sepet->sepeti_listele();
$durum=0;
$sepet=’<table border=1>’;
$toplamtutar=0;

if($urunler){
while (list($anahtar,$deger) = each($urunler)) {

$tutar=explode(“-”, $deger);
$toplam=$tutar[0]*$tutar[1];
$sepet.= “<tr><td>Ürün “.$anahtar.”</td><td>”.$toplam.” YTL “.$tutar[0].’ adet </td>
<td> <FORM method=”POST” action=”sepet1.php” method=post>
<INPUT type=”hidden” name=”urun” value=”‘.$anahtar.’”>
<INPUT type=”hidden” name=”adet” size=”9″ value=”‘.$deger.’”>
<input type=hidden name=”durum” value=2>
<INPUT type=”submit” value=”Sepeten Sil”>
</form></td></tr>’;
$durum=1;
$toplamtutar +=$toplam;
}
}else{
echo “<h2>sepetiniz boş</h2>”;
}

if($durum){
$bosalt= ‘<tr><td>&nbsp;</td><td><FORM method=”POST” action=”sepet1.php” method=post>
<input type=hidden name=”durum” value=3>
<INPUT type=”submit” value=”Sepeti boşalt”>
</form></td><td><FORM method=”POST” action=”sepet1.php” method=post>
<input type=hidden name=”durum” value=4>
<INPUT type=”submit” value=”Gönder”>
</form></td></tr>’;
$sepet.=’<tr><td>Toplam Tutar:</td><td>’.$toplamtutar.’</td><td></td></tr>’;
}
$sepet.=$bosalt;
$sepet.=”</table>”;
echo $sepet;
?>

Bütün kodları indirip test edebilirsiniz. Burayı tıklayın.
Kolay gelsin.

Yorum bırakın »

PHP ile Üyelik Sistemi

Günümüzde internet dünyasında hemen hemen bir çok sitede üyelik sistemini görmekteyiz.Bu makaledede PHP ile üyelik sisteminin nasıl yapılacağı hakkında bilgiler edineceğiz.Makaleyi okumak için intermediate(orta) düzeyde PHP bilginiz olması gerekmektedir.
Makalenin içerdiği sayfalar;
fonksiyonlar.php = Fonksiyonları içeren sayfa
kayit.html = Kullanıcıların siteye üye olabilmesini sağlayan sayfa
uyepostala.php = Kullanıcının siteye üye olurken girdiği bilgileri veritabanına yazan ve aktivasyon linki gönderen sayfa.
aktifle.php = Kullanıcının hesabını aktif eden sayfa.
index.php = Anasayfa, kullanıcın karşılaştığı ilk sayfa (Login)
giriskontrol.php = Kullanıcı adı ve parolasını kontrol eden sayfa
yeni_sifre.html = Şifresini unutan kullanıcıların yeni bir şifre istemeleri için gereken form.
sifre_unuttum.php = yeni_sifre.html den gelen email adresine yeni şifre gönderen sayfa.
Öncelikle MySQL’de uyelik adında bir veritabanı yaratıp, şu sorguyu çalıştıralım:
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 çalıştırdıktan sonra MySQL veritabanı bağlantısını yapalım.
fonksiyonlar.php
<?php
// Db bağlantısı
function db_baglanti()
{
$db_host = "localhost";
$db_kullanici = "root"; // Db kullanıcı adınız
$db_sifre = ""; // Db şifreniz
$db_adi = "uyelik"; // Db adınız

$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;
}

?>

Fonksiyonlara diğer sayfalardan ulaşabilmek için tek sayfada toplamak daha mantıklı olacaktır.Şimdi kullanıcıların kayıt olacağı basit bir form hazırlayalım.
kayit.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...';"> </td>
</tr>

</table>
</body>
</html>

Kullanıcı bu formu doldurup gönderdiğinde uyepostala.php sayfasına post ettireceğiz.Uyepostala.php sayfası kullanıcının girdiği bilgileri veritabanına kaydedip, kullanıcıya hesabını etkinleştirmesi için mail göndermesini sağlayacak olan sayfadır.Gerekli açıklamalar kod içinde.

uyepostala.php

<?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']);

// Form kontrolleri

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ılan kullanıcı adı veya email daha önce başkası tarafından alınmış mı?

$email_kontrol = mysql_query("select email from kullanicilar where email='$email'");
$kullanici_kontrol = mysql_query("select kullanici from kullanicilar where kullanici='$kullanici'");

// Sonucu alalım
$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.domain.com/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>';

}
?>

Kullanıcıya maili de gönderdikten sonra hesabını aktifleştirmesi için gereken sayfayı yani aktifle.php sayfasını yapalım.

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
'Hesabınız etkinleştirilemedi';
}
elseif(
$kontrol > 0)
{
echo
'Tebrikler üye olmayı başardınız.';

include(

"index.php");

}

?>

Üyeliği aktifleştirdikten sonra kullanıcının giriş yapabilmesi için gereken formu yapalım.Yani anasayfayı yapalım.

index.php

<?php
@session_start();

// Giriş yapılmamışsa
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
}
// Giriş yapılmışsa
else
{
echo
"Hoşgeldiniz, " . $_SESSION['kullanici']."<br><br>";
echo
"Kullanıcı seviyeniz, " . $_SESSION['kullanici_seviye']."<br><b>Şu bölümleri görebilirsiniz.</b><br>";
// Kullanıcı seviyesi 0 ise
if($_SESSION['kullanici_seviye'] == 0)
{
echo
'HTML,ASP,PHP';
}
// Kullanıcı seviyesi 3 ise
if($_SESSION['kullanici_seviye'] == 3)
{
echo
'Asp.net,C#, Java';
}
echo
'<br><br>Çıkış yapmak için <a href="cikis.php">tıklayın</a>';
}
?>

Kullanıcı adı ve parolasını kontrol edicek olan giriskontrol.php sayfası aynı zamanda kullanıcıya sessionları atayan sayfadır.

giriskontrol.php

<?php
@session_start();

include(

"fonksiyonlar.php");

db_baglanti();

// Formdan verileri alıyoruz.
$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ı sha1 olarak alıyoruz.
$sifre2 = sha1($sifre);

// Şimdi kullanıcı adı,şifre, aktif mi? kontrolü

$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;
// Veritabanından kullanıcı seviyesini alıp, sessiona kaydediyoruz.
$_SESSION['kullanici_seviye'] = $yaz['kullanici_seviye'];

header("Location: index.php");
}
}
else
{
echo
'<font color="red">Kullanıcı adı veya parola yanlış.Yada hesabınızı aktifleştirmediniz !</font>';
}
}
?>

Kullanıcıların yeni bir şifre istemeleri için gereken formu yapalım.

yeni_sifre.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>
yeni_sifre.html sayfasını karşılayacak olan sifre_unuttum.php sayfasını yapalım.

sifre_unuttum.php
<?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 kullanıcıya gönder.
$sql = mysql_query("update kullanicilar set sifre='$yeni_sifre' where email='$email'");
$konu = "Şifre hatırlatma";
$mesaj = " Merhaba, bizden yeni şifre istemişsiniz.Buyrun

Yeni şifreniz: $rastgele_sayi

http://www.domain.com/

Teşekkürler."

;

mail($email, $konu, $mesaj, "From: Domain.com<admin@domain.com>");

echo

'Yeni şifreniz arzu ettiğiniz adrese gönderilmiştir.';

?>

Okuduğunuz için teşekkürler.Kalın sağlıcakla.
Dökümanı Yazan: Sinan Açıkal (treedy) ~ treedyx@hotmail.com

Yorum bırakın »