@ozan15 şimdi şöyle düşün;

Veri tabanı vardır tüm bilgileri tutacağın burada bir tablomuz olsun ismi uyeler 3 alanımız olsun; uye_id, uye_ismi, kullanici_adi, şifre, alanları düşün.

Çok basit bir şekilde üyelik örneği yapıyorum belki anlamana yardımcı olur. Gerekli yerlerde de açıklamalar yaptım burada gördüğün örneği geliştirmek tabii senin elinde sormak istediğin yerlerde yine buradan soru sorarsan yardımcı olabiliriz.

localhostta veritabani isminde bir veri tabanı oluşturup içerisine gir sql bölümünden altaki kod ile tablolar oluşturulacaktır.

CREATE TABLE `veritabani`.`uyeler` ( `uye_id` INT(11) NOT NULL AUTO_INCREMENT , `uye_ismi` VARCHAR(255) NOT NULL , `kullanici_adi` VARCHAR(255) NOT NULL , `sifre` VARCHAR(255) NOT NULL , PRIMARY KEY (`uye_id`)) ENGINE = InnoDB;

uye_id kısmı AUTO_INCREMENT yaptık çünkü biz bu alana bir şey yazmayacağız üyelerimize benzersiz bir numara verecek sistem otomatik olarak. Varchar alanlar ise sayı karakter ve büyük küçük harf girebileceğiz. üye id kısmı sadece sayısal olacağı için int dedik.

baglanti.php oluşuturp içine bu kodları yazıyoruz.
/* VERİ TABANI BAĞLANTISI */
define('DATABASE_HOST','127.0.0.1'); // Sunucu ismi
define('DATABASE_NAME','veritabani'); // Veri tabanı ismi
define('DATABASE_USERNAME','root'); // Veri tabanı kullanıcı adı
define('DATABASE_PASSWORD',''); // Veri tabanı şifrem


// TRY - CATCH yapısı ile daha anlamlı hatalar yakalıyoruz...
try {
$db = new PDO('mysql:host='.DATABASE_HOST.';dbname='.DATABASE_NAME.';charset=utf8',DATABASE_USERNAME,DATABASE_PASSWORD);
} catch(PDOException $e){
echo 'Hata: '.$e->getMessage();

}
/* SON */
?>


kayit.php kodları:
require 'baglanti.php'; // Veri tabanı dosyamızı dahil ettik.

if ( !isset($_SESSION['giris']) ) {
if ( isset($_POST['kayit']) ) {
if ( !empty($_POST['isim']) && !empty($_POST['kadi']) && !empty($_POST['sifre']) ) {

$query = $db->prepare("SELECT * FROM uyeler WHERE kullanici_adi=?");
$query->execute(array($_POST['kadi']));

if ( $query->rowCount() == 1) { // bu değer sadece bu gelen isimde bir kullanıcı adı var ise 1 olur.
echo "Bu kullanıcı adı zaten kayıtlı!";
} else {
// girilen isimle eşleşen kayıtlı kullanıcı yok ise

$query = $db->prepare("INSERT INTO uyeler(uye_ismi,kullanici_adi,sifre) VALUES(?,?,?)");
$insert = $query->execute(array($_POST['isim'],$_POST['kadi'],$_POST['sifre']));
if ($insert) { // kayıt oluşturulmuş ise giriş yapıp yönlendiriyoruz

$_SESSION['giris'] = true;
$_SESSION['kullanici_adi'] = $_POST['kadi'];
echo "Başarılı bir şekilde kayıt oldunuz ve giriş yaptınız.";

} else {
echo "Kayıt işlemi gerçekleştirilikren bir hata oluştu.";
}

}

} else {
echo 'Lütfen tüm alanları doldurun!';
}
}
?>




İsminiz:

Kullanıcı Adı:

Şifre:



} else {
header('Location:index.php');
}
?>


giris.php kodları

require 'baglanti.php'; // Veri tabanı dosyamızı dahil ettik.

if ( !isset($_SESSION['giris']) ) {

if ( isset($_POST['giris']) ) {
if ( !empty($_POST['kadi']) && !empty($_POST['sifre']) ) { //!empty ile boş alan yoksa şekline kontrol edilir.

$query = $db->prepare("SELECT * FROM uyeler WHERE kullanici_adi=? AND sifre=?");
$query->execute(array($_POST['kadi'],$_POST['sifre']));

if ( $query->rowCount() == 1) { // ÜYelik var ise devam ediyorum
$row = $query->fetch(PDO::FETCH_ASSOC); // fetc_assoc ile row değişkenine tablodan gelen verileri alıyorum

$_SESSION['giris'] = true; // giriş için gerekli oturumları başlatıyoruz.
$_SESSION['uye_id'] = $row['uye_id'];
$_SESSION['kullanici_adi'] = $row['kullanici_adi'];
echo "Başarılı bir şekilde giriş yaptınız.";
header('Location:index.php'); // yönlendirme ypaıyoruz

} else { // bilgiler yanlışsa
echo 'Bilgilerinizi kontrol edin!';
}

} else { // boş alanlar var ise
echo 'Lütfen tüm alanları doldurun!';
}
}
?>




Kullanıcı Adı:

Şifre:



} else {
header('Location:index.php'); // giriş yapılmışsa burayı göstermek anlamsız olur index.php yönlenecek.
}
?>


profil.php içerisinde aşağıdaki kodlarımız yer alsın;


require 'baglanti.php'; // Veri tabanı dosyamızı dahil ettik.
//* http://127.0.0.1/profil.php?id=1 *\\

if ( isset($_SESSION['giris']) ) {

$id = $_GET['id']; // Buradaki get içerisinde yer alan id profil.php?id den gelmektedir.
$query = $db->prepare("SELECT * FROM uyeler WHERE uye_id=?"); // Sorgumuz oluşturduk.
$query->execute(array($id)); // Sorguda sql güvenliği için prepare ve execute kullandık.

if ($query->rowCount() >= 1) { // Bu id'ye ait bir üye varsa sayfayı gösterdik.
$row = $query->fetch(PDO::FETCH_ASSOC);

echo 'Hoşgeldin, '.$row['uye_ismi'];

} else { // Üye yok ise bu kısım çalışır.
echo 'Bu bilgide bir kullanıcı bulunamadı!';
}

} else {
header('Location:giris.php');
}
?>


index.php kodları

require 'baglanti.php'; // Veri tabanı dosyamızı dahil ettik.

if ( isset($_SESSION['giris']) ) {
echo 'Hoşgeldiniz, '.$_SESSION['kullanici_adi']. ' Profile Git - Çıkış Yap';
} else {
header('Location:giris.php');
}

if ( isset($_GET['logout']) && $_GET['logout'] == 1) {
session_destroy();
header('Location:giris.php');
}
?>