Merhaba hocam, öncelikle bu tür oyunlar için PHP bilmen lazım. Onu baştan söyleyeyim.
Eğer PHP biliyorsan , ve tasarım için html/css/js biliyorsan, istersen başlayalım.
Hocam öncelikle Php kodlarını mysql ye bağlayacaksın.
$baglanti = @mysql_connect('host', 'kullanici adi', 'sifre');
$veritabani = @mysql_select_db('veritabanı adı');
if($baglanti && $veritabani) {
echo 'Bağlantı kuruldu.';
} else {
echo 'Bağlantı kurulamadı.';
}
mysql_close($baglanti); // MYSQL sunucusu ile bağlantımızı koparttık
?>
mysql_connect('host', 'kullanıcı adı', 'şifre')or die("Bağlantı Kurulamadı");
mysql_select_db('veritabani adi')or die('Veritabanı Bulunamadı');
mysql_query('SQL CÜMLESİ')or die("Sorgu çalıştırılamadı");
Şimdi gelelim telif yememek için yapman gerekenlere...
HTML
<form action="mail.php" method="post">
Adınız: <br/>
<input type="text" name="ad" /><br/>
E-Posta adresiniz: <br/>
<input type="text" name="eposta" /><br/>
Konu: <br/>
<input type="text" name="konu" /><br/>
Mesajınız: <br/>
<textarea name="mesaj"></textarea><br/>
<input type="submit" value="Mesajı Gönder" />
</form>
PHP
if(isset($_POST['ad']) && isset($_POST['eposta']) && isset($_POST['konu']) && isset($_POST['mesaj'])) {
if(empty($_POST['ad']) || empty($_POST['eposta']) || empty($_POST['konu']) || empty($_POST['mesaj'])) {
echo 'Lütfen boş yer bırakmayın!';
} else {
$ad = strip_tags($_POST['ad']);
$eposta = strip_tags($_POST['eposta']);
$konu = strip_tags($_POST['konu']);
$mesaj = strip_tags($_POST['mesaj']);
$icerik = 'Ad: ' . $ad . '<br/>E-Posta: '. $eposta . '<br/>' . $mesaj;
mail('
[email protected]', $konu, $icerik);
echo 'Mesajınız Gönderildi! Teşekkürler.';
}
} else {
echo 'Lütfen Formu Kullanın!';
}
Tamamdır.
Oyun içerisinde tarih ve saat oluşturmak ve veritabanı yüklemesinde hata almamak için yapmamız gerekenlere geldik.
date_default_timezone_set('Europe/Istanbul');
olarak ayarlayalım.
// Örnek sonuç: 29.07.2013 12:13:00
echo date('d.m.Y H:i:s');
// Örnek sonuç: Saat: 12:13
echo 'Saat: ' . date('H:i');
// Örnek sonu: 29 July 2013 Monday
echo date('d F Y l');
ile devam edelim.
Sayfalama işlemlerine başladık, bu işlemde oyunumuzun menülerini oluşturacağız. Ama veritabanımıza bağlanacak.
menu.php dosyası oluşturun ve şunları yazın
$sayfada = 5; // sayfada gösterilecek içerik miktarını belirtiyoruz.
$sorgu = mysql_query('SELECT COUNT(*) AS toplam FROM mesajlar');
$sonuc = mysql_fetch_assoc($sorgu);
$toplam_icerik = $sonuc['toplam'];
$toplam_sayfa = ceil($toplam_icerik / $sayfada);
Menüden bir bağlantıya tıklandığında, sayfayı siteyi yenilemeden çıkarmak adına devam edelim
// eğer sayfa girilmemişse 1 varsayalım.
$sayfa = isset($_GET['sayfa']) ? (int) $_GET['sayfa'] : 1;
// eğer 1'den küçük bir sayfa sayısı girildiyse 1 yapalım.
if($sayfa < 1) $sayfa = 1;
// toplam sayfa sayımızdan fazla yazılırsa en son sayfayı varsayalım.
if($sayfa > $toplam_sayfa) $sayfa = $toplam_sayfa;
// kaçıncı içerikten başlanacağını ifade edecek limit değeri.
$limit = ($sayfa - 1) * $sayfada;
$sorgu = mysql_query('SELECT * FROM mesajlar LIMIT ' . $limit . ', ' . $sayfada);
while($icerik = mysql_fetch_assoc($sorgu)) {
// ...
}
Sayfa sayısı
for($s = 1; $s <= $toplam_sayfa; $s++) {
if($sayfa == $s) { // eğer bulunduğumuz sayfa ise link yapma.
echo $s . ' ';
} else {
echo '<a href="?sayfa=' . $s . '">' . $s . '</a> ';
}
}
Şimdi oyununuzun güncellemeler bölümünü oluşturalım
<<İlk sayfa <Önceki 35 36 37 38 [39] 40 41 42 43 Sonraki> Son sayfa>>
// yukarıdan geldiği varsayılan değişkenler:
// $toplam_sayfa ve $sayfa
$sayfa_goster = 11; // gösterilecek sayfa sayısı
$en_az_orta = ceil($sayfa_goster/2);
$en_fazla_orta = ($toplam_sayfa+1) - $en_az_orta;
$sayfa_orta = $sayfa;
if($sayfa_orta < $en_az_orta) $sayfa_orta = $en_az_orta;
if($sayfa_orta > $en_fazla_orta) $sayfa_orta = $en_fazla_orta;
$sol_sayfalar = round($sayfa_orta - (($sayfa_goster-1) / 2));
$sag_sayfalar = round((($sayfa_goster-1) / 2) + $sayfa_orta);
if($sol_sayfalar < 1) $sol_sayfalar = 1;
if($sag_sayfalar > $toplam_sayfa) $sag_sayfalar = $toplam_sayfa;
if($sayfa != 1) echo ' <a href="?sayfa=1"><<İlk sayfa</a> ';
if($sayfa != 1) echo ' <a href="?sayfa='.($sayfa-1).'"><Önceki</a> ';
for($s = $sol_sayfalar; $s <= $sag_sayfalar; $s++) {
if($sayfa == $s) {
echo '[' . $s . '] ';
} else {
echo '<a href="?sayfa='.$s.'">'.$s.'</a> ';
}
}
if($sayfa != $toplam_sayfa) echo ' <a href="?sayfa='.($sayfa+1).'">Sonraki></a> ';
if($sayfa != $toplam_sayfa) echo ' <a href="?sayfa='.$toplam_sayfa.'">Son sayfa>></a>';
Çoklu dil desteği / Global bir oyun istiyorsanız
lang.php oluşturun ve şunları yazın
<?php
// dili belirtiyoruz
$dil = 'en_US';
putenv('LC_ALL=' . $dil);
setlocale(LC_ALL, $dil);
// burada hangi kataloğumuzu kullanacağımızı
// ve dil dosyaların hangi dizinde olduğunu
// yani: /diller/en_US/LC_MESSAGES/projemiz.po
$katalog = 'projemiz';
bindtextdomain($katalog, "./diller");
// burada da kataloğumuzun adını belirtiyoruz.
textdomain($katalog);
$baslik = 'Deneme başlık';
$yazar = 'Musa Avcı';
$icerik = 'Selam Dünya';
// ve devamında örnek sayfamız ...
?>
<h2><?php echo $baslik ?></h2>
<p>
<?php echo _('Yazar') . ': ' . $yazar ?> -
<?php echo _('Tarih') . ': ' . date('d.m.Y') ?>
</p>
<p><?php echo $icerik ?></p>
<?php echo _('Yorumlar') ?>
Şimdi güncelleme notlarınızın yazar bölümünü ayarlayalım. ( Kusura bakma otamatiği bilmiyorum )
mes.php oluşturun ve yazın
<h2><?php echo $baslik ?></h2>
<p>
<?php echo _('Yazar') . ': ' . $yazar ?> -
<?php echo _('Tarih') . ': ' . date('d.m.Y') ?>
</p>
<p><?php echo $icerik ?></p>
<?php echo _('Yorumlar') ?>
Evet, oyunun temelini atmak için ilk aşamayı bitirdik.