Web Sayfası Tasarlarken Gereken PHP Kodları

Doğukan Taydaş

Moderatör
Moderatör
Premium Üye
Geliştirici
Yardımsever Üye
Mesaj
736
Çözümler
55
Beğeni
1.497
Puan
1.179
Ticaret Puanı
0
Merhaba ,
Açıklayacağım php kodlarını nasıl kullanacağınız hakkında bilgi sahibi olmanız için ileri seviye php bilginiz olması gerekmektedir. Kodları ve anlamlarını detaylı şekilde açıklayacağım. Standart bir panel için gerekli olan kodlar bunlardır. İyi bir panel için bu kodlar size örnek olacaktır.

Veritabanı seçim kodu:
Genişlet Daralt Kopyala
mysql_select_db("tabloadı");
Bu kod account tablosu haricinde farklı tablolarda çalışmak için gerekli olan koddur.Yani biz mysql bağlantısını gerçekleştirirken table kısmında accountu seçmekteyiz.Ancak hesap sayfası oluşturacaksanız "tabloadı" kısmını "player" olarak değiştirirseniz player tablosu için kodları çalıştırabilirsiniz.

Güvenlik Fonksiyonu:
Genişlet Daralt Kopyala
function g ($get) {
return htmlspecialchars(mysql_real_escape_string($_GET[$get]));
} // GET verilerinden gelecek sql injection saldırılarını önlemek için

function p ($post) {
return htmlspecialchars(mysql_real_escape_string($_POST[$post]));
} // POST verilerinden gelecek sql injection saldırılarını önlemek için
Bu fonksiyon sitenize gelecek olan sql injection ataklarından korunmak için gerekmektedir.
Saldırganlar doğrudan url üzerinden gelen get methodu ve post methodu ile havij v.b programlar gibi sitenize saldırıp bağlantılı olan veritabanına bağlanabilir ve değişiklik yapabilirler.Bu kodu her sayfanıza include ederseniz bu tür ataklardan korunabilirsiniz.

İnclude nedir ?:
Genişlet Daralt Kopyala
// İnclude bir dosyayı başka bir dosya içinde çağırmaktır.

<?php include("mmotutkunlari.php"); ?>

config:
Genişlet Daralt Kopyala
$vt_host        = "localhost"; // Doğrudan server ip adresini giriniz.
$vt_kullanici  = "root"; // Genelde root olarak kullanılır
$vt_sifre        = "123456"; // Mysql şifreniz (navicat şifresi)
$vt_adi        = "account"; // Account tablosunu seçiyoruz.Diğer tablolar için yukarda verdiğim kod ile işinizi görebilirsiniz.


//Veritabanı bağlantısını yapıyoruz
$vtbaglan = @mysql_connect($vt_host,$vt_kullanici,$vt_sifre) or die("Veritabanı bağlantısı sağlanamadı!");
mysql_select_db($vt_adi,$vtbaglan) or die("Veritabanı bulunamadı!");
@mysql_query("SET NAMES 'latin5'"); //MySQL Türkçe Karakter Sorunu
Her sayfada çağırdığınız bir dosyanın içine include edebilirsiniz.

Kayıt Sayfası:
Genişlet Daralt Kopyala
include("config.php");
$page = g('page'); // Get methodu ile page adında bir değişken tanımlıyoruz
switch($page){
case "uyeol": // URL ile page değişkenine uyeol adında bir değişken gelir ise bu kodları çalıştır diyoruz

$login = p('login');
$password = p('password'); // Burda metin2 mysqllarında kullanılan bir şifreleme methodunu aktif ediyoruz.
$email = p('email');
$phone1 = p('phone1');
$social_id = "1234567";
$question1 = "1";
$answer1 = "3751695c17afed4055a7a5ad5d46f6f5";
$real_name = "Your Name";
$usersession = "9ju1kjbmg4l4qml1g1gu26qlo3";
$web_aktiviert = "OK";
mysql_select_db("account"); // Yukarıdada belirttiğimiz gibi account tablosunu seçtiriyoruz
$result = mysql_query("SELECT * FROM account WHERE login LIKE '$login'"); // hesap adının varlığını kontrol ediyoruz
$bulunan=0;
while($r=mysql_fetch_array($result))
{  
   $bulunan++;
   $login=$r["login"];
}

if ($bulunan==0){ // Eğer bu hesap adı daha önce başka birisi tarafından kullanılmamış ise kayıt işlemine izin veriyoruz.


$ekle = mysql_query("INSERT INTO account SET  login = '".$login."', email = '".$email."', web_aktiviert = '".$web_aktiviert."', usersession = '".$usersession."',  real_name = '".$real_name."', answer1 = '".$answer1."', phone1 = '".$phone1."', social_id = '".$social_id."', question1 = '".$question1."',    password = PASSWORD('".$password."')");

if($ekle){
echo '
Hesap Başarıyla Oluşturuldu !Artık oyuna girip maceraya katılabilirsin !
';
} // Kayıt işlemi gerçekleştirilir ise bunu oyuncuya bildirilmesini sağlıyoruz.
else{

echo "
Teknik bir arıza sebebi ile işlem gerçekleştirilemedi...Lütfen daha sonra tekrar deneyiniz.
"; // Teknik bir hata var ise bildiriyoruz.

}}

else{

echo ' Böyle bir hesap zaten var ! ';} // Kullanıcı adı daha önce alındı ise bunu bildiriyoruz.
break;} // Sayfanın daha hızlı çalışması için işlemler bittikten sonra break komutu ile işlemleri durduruyoruz.
Üye kayıt sistemi gerçekleşir.

Online Oyuncu Sayısını Göstermek:
Genişlet Daralt Kopyala
include("config.php");
mysql_select_db("player");
$output = mysql_query("SELECT COUNT(*) as count FROM player WHERE DATE_SUB(NOW(),INTERVAL 5 MINUTE) < last_play;");
$online_count = mysql_fetch_object($output)->count+1;
echo "Online Oyuncu: $online_count";
Son 5 dakika içinde aktif olan kullanıcı sayısını gösterir hiç bir oyuncu yok ise sayıyı 1 olarak gösterir.

Sıralama:
Genişlet Daralt Kopyala
include("config.php");
mysql_select_db("player"); // Player tablosunda işlem yapacağımızı belirtiyoruz
$sirabul = mysql_query("SELECT * FROM player ORDER BY level DESC limit 0,10"); // Levele göre sıralatıp en yüksek levele sahip 10 oyuncuyu gösteriyoruz 10 sayısını değiştirebilirsiniz.
while($cek=mysql_fetch_array($sirabul)){

$id = $cek['id'];
$name = $cek['name']; // Karakterin Adı
$level = $cek['level']; // Leveli
$job = $cek['job']; // Karakter türü
$playtime = $cek['playtime']; // Oyun süresi
$yetkidurum = $cek['yetkidurum']; // GM değişkeni bunu aşağıda açıklayacağım
if($yetkidurum == "0"){
$yetkidurum = "";
}
else{  $yetkidurum = "display:none;";
} // Yetki durum değişikenini aşağıda açıklıyacağım

if($job == "0"){
$karakteri = 'Savaşçı';
}
if($job == "7"){
$karakteri = 'Şaman';
}
if($job == "5"){
$karakteri = 'Sura';
}
if($job == "2"){
$karakteri = 'Ninja';
}
if($job == "8"){
$karakteri = 'Lycan';
}
else
{
} // Burada player tablosundaki job sütunu ile karakterlerin türlerini belirledik.

echo '
Adı :'.$name.'
Leveli :'.$level.'
Oyun Süresi :'.$playtime.'
Karakteri :'.$karakteri.'
';

}
Bu kod ile en yüksek levele sahip 10 oyuncuyu listelettik.
Player tablonuza yetkidurum diye bir sütun ekleyip gm olan karakterlere 1 değerini verirseniz bu sıralamada görünmeyeceklerdir.

Lonca Sayısı:
Genişlet Daralt Kopyala
include("config.php");
mysql_connect($dbhost$dbuser$dbpass);
mysql_select_db("player");
$guilds ="SELECT * FROM guild";
$guildsquery = mysql_query($guilds);
$guildanzahl = mysql_num_rows ($guildsquery);
echo "Gilden : $guildanzahl";

İtem Sayısı:
Genişlet Daralt Kopyala
include("config.php");
mysql_connect($dbhost$dbuser$dbpass);
mysql_select_db("player");
$items = "SELECT * FROM item ";
$itemsquery = mysql_query($items);
$itemanzahl = mysql_num_rows($itemsquery);
echo "Items : $itemanzahl";

Kullanıcı Id Ve Hesap Sayısı:
Genişlet Daralt Kopyala
include("config.php");
mysql_connect($dbhost$dbuser$dbpass);
mysql_select_db("account");
$accs = "SELECT * from account";
$accsquery = mysql_query($accs);
$accszahl = mysql_num_rows($accsquery);
echo "Account : $accszahl";

Karakter Sayısı:
Genişlet Daralt Kopyala
include("config.php");
mysql_connect($dbhost$dbuser$dbpass);
mysql_select_db("player");
$chars = "SELECT * from player";
$charsquery = mysql_query($chars);
$charszahl = mysql_num_rows($charsquery);
echo "Charaktere : $charanzahl";
 
Son düzenleme:
Üst