GTAMulti.com - Türkiye'nin Türkçe GTA Sitesi

[ANLATIM]Karakter bağlama & Postbite veri çekme #1

Başlatan merddz, 22 Ağustos 2022, 20:49:47

« önceki - sonraki »

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

merddz

Öncelikle bir adet sayfa oluşturmamız gerek oluşturmayı bilmiyorsanız gerekli şeyleri internet üzerinde bulabilirsiniz.

Karakterbagla sayfasına gömülecek kodlar:
<?php

function template_main()
{
 global 
$context$settings$options$txt$scripturl$modSettings;
  try
  {
  
$baglan = new PDO("mysql:host=localhost;dbname=oyundb""oyundb""oyundb");
  
$baglan->exec("SET NAMES utf8");
  
$baglan->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
 
//  echo "oyun bağlantısı başarılı"; 
  
}
  catch(
PDOException $e)
  {
 
//    echo 'oyun bağlantı başarısız:  ' . $e->getMessage();
  
}

  
$stmt $baglan->prepare("SELECT * FROM karakterler WHERE forumid=? ");
  
$stmt->execute([$context['user']['id']]);
  
$sayfabakankarakter $stmt->fetch();

try 
{
  
$baglanti = new PDO("mysql:host=localhost;dbname=db""db""db");
  
$baglanti->exec("SET NAMES utf8");
  
$baglanti->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
  
//echo "forum bağlantısı başarılı";

catch (
Exception $e
{
  
//echo "forum bağlantısı başarısız";
}


 if(
$sayfabakankarakter['forumdurum'] == 0)
 {
       if(isset(
$_POST["gonder"])){
       if(empty(
$_POST['karakterad'])) { $hata[] = "Karakter ismini boş bırakamazsınız.";}
       if(empty(
$_POST['sifre'])) { $hata[] = "Şifre alanını boş bırakamazsınız.";}
         
$karakterad $_POST['karakterad'];
         
$sifre $_POST['sifre'];
         
$forumdurum 1;
 
$forum_id $context['user']['id'];
 
$forum_name $context['user']['name'];
 
 
$stmt $baglan->prepare("SELECT * FROM karakterler WHERE isim=? "); //karakter verilerini çektiğimiz databasedeki tablo satır adları.
 
$stmt->execute([$karakterad]);
 
$sorgum $stmt->fetch();
 
$pname $sorgum['isim']; // karakter adının çekildiği veri
 
if($sorgum['isim'] == $karakterad)
 {
 if (
$sorgum['forumdurum'] == 0)
 {
 if(
md5($sifre) == $sorgum['sifre'])
 { 
       if(empty(
$hata))
       {
         
$sorgu $baglan->prepare("UPDATE karakterler SET forumid = :forumid, forumnick = :karakterad, forumdurum = :forumdurum WHERE isim = :pname");
         
$sorgusonuc = array(':forumid' =>  $forum_id,
                             
':karakterad' =>  $forum_name,
                             
':forumdurum' => $forumdurum,
                             
':pname'      =>  $pname
                             
);
         
$sorgucalistir $sorgu->execute($sorgusonuc);
     
         if(
$sorgucalistir)
         {
             
$bilgi[] = "Karakterinizi başarılı bir şekilde bağladınız.";
             
header("Location:$scripturl");
         }
         else
         {
             
$hata[] = "Karakteri bağlarken bir hata oluştu tekrar deneyiniz.";
         }
       }
 }
 else
 {
 
$hata[] = "Şifre doğru değil.";
 }
 }
 else
 {
 
$hata[] = "Bu Karakter zaten eklenmiş.";
 }
 }
 else
 {
 
$hata[] = "Böyle bir karakter yok.";
 }
     }



 
$baglan null;
 echo 
'<form method="POST">';
 if(!empty(
$hata))
 {
 foreach (
$hata as $hat)
 {
 echo 
"<center><div class='col-md-12 alert alert-danger' role='alert'>".$hat."</div>";
 }
 }
 if(!empty(
$bilgi))
 {
     foreach (
$bilgi as $bilg)
     {
     echo 
"<div class='col-md-12 alert alert-success' role='alert'>".$bilg."</div>";
     }
     }
 echo 
'
 <div class="form-group col-md-12">
 <label for="karakterad">Karakter Adı</label>
 <input type="text" class="form-control" name="karakterad" placeholder="Ad_Soyad">
 </div>
 <div class="form-group col-md-12">
 <label for="sifre">Şifre</label>
 <input type="password" class="form-control" name="sifre" placeholder="***">
 <small class="form-text text-muted">Şifrenizi asla kimseyle paylaşmayınız</small>
 </div>
 <div class="form-group">
 <button style="width:100%;" name="gonder" class="btn btn-success">Karakterimi Bağla</button>
 </div>
 </form>
 '
;
 }
else
{
 
header("Location:index.php");
}
?>


Bu şekilde karakter bağlama işlemimizi yapabiliriz. Kodların açıklamasını yapayım;
öncelik olarak kişinin forumdurum verisi kontrol ediliyor eğer veri 0 ise işleme devam ediliyor. Kişinin karakteri daha onceden bağlanmış ise tekrar bağlayamayacak veyahut kullanılan ismi başkası bağlamış ise bağlayamayacak. Satır olarak ekleyeceğiniz veriler: forumid, forumdurum, forumname


Eğer karakterbagla sayfamızı yaptıkysak sırada Postbit'e verileri çekebiliriz.

Display.template.php dosyamıza giriyoruz ardından aratıyoruz:
Alıntı yapılan: undefined
// Show information about the poster of this message.
Altına sırasi ile ekliyoruz:
<?php             //forum  

           
$baglanti = new PDO("mysql:host=localhost;dbname=smfdb""smfdb""smfdb");
           
$baglanti->exec("SET NAMES utf8");
           
$baglanti->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
           
$stmt $baglanti->prepare("SELECT * FROM smf_members WHERE id_member=? ");
           
$stmt->execute([$message['member']['id']]);
           
$postatan $stmt->fetch();

           
//oyun
           
$mysqlsunucu    "localhost";
              
$mysqlkullanici "oyundb";
              
$mysqlsifre    "oyundb";
              
$mysqldatabase  "oyundb";  
              try
              {
                  
$conn = new PDO("mysql:host=$mysqlsunucu;dbname=$mysqldatabase;charset=utf8"$mysqlkullanici$mysqlsifre);
                  
$conn->setAttribute(PDO::ATTR_ERRMODEPDO::ERRMODE_EXCEPTION);
                  
//echo "Bağlantı başarılı"; 
                
}
              catch(
PDOException $e)
                {
                  
//echo "Bağlantı hatası: " . $e->getMessage();
              
}

              
$stmt $conn->prepare("SELECT * FROM karakterler WHERE forumid=?");
              
$stmt->execute([$message['member']['id']]);
              
$oyuncu $stmt->fetch();


              
$isim str_replace(_"_"$oyuncu['isim']);
                  if (
$oyuncu['skin'] >= 20000)
  {
    
$oyuncu['skin'] = "0";
  }
              if(empty(
$oyuncu['isim']))
              {
                  
$isim "(İsim bulunamadı)";
                  
$oyuncu['skin'] = 0;
                  
$oyuncu['birlik'] = "(Bir birlikte değil)";
                  
$oyuncu['level'] = "0";
                  
$oyuncu['songiris'] = "(Son giriş yok)";
                  
$oyuncu['exp'] = 0;
                  
$birlik['birlik_isim']= "(Bir birlikte değil)";
              }
              else
              {
                  if(
$oyuncu['birlik'] > 0
                  {
                    
$stmt $conn->prepare("SELECT * FROM birlikler WHERE birlik_id=?");
                    
$stmt->execute([$oyuncu['birlik']]);
                    
$birlik $stmt->fetch();
                  }
                  if(
$oyuncu['birlik'] == 0)
                  {
                    
$birlik['birlik_isim'] = "(Bir birlikte değil)";
                  }
              }

              if(
$oyuncu['level'] > 0
                  {
                    
$stmt $conn->prepare("SELECT * FROM karakterler WHERE id=?");
                    
                    
$stmt->execute([$oyuncu['level']]);

                    
$level $stmt->fetch();
                  }

                if(
$oyuncu['cinsiyet'] > 0
                  {
                    
$stmt $conn->prepare("SELECT * FROM karakterler WHERE id=?");
                    
$stmt->execute([$oyuncu['cinsiyet']]);

                    
$cinsiyet $stmt->fetch();
                  }
                  else if(
$oyuncu['cinsiyet'] < 0)
                  {
                    
$cinsiyet['cinsiyet'] = "Veri Bulunamadı";
                  }
                  if(
$oyuncu['songiris'] > 0
                  {
                    
$stmt $conn->prepare("SELECT * FROM karakterler WHERE id=?");
                    
$stmt->execute([$oyuncu['songiris']]);

                    
$songiris $stmt->fetch();
                  }
                  else if(
$oyuncu['songiris'] < 0)
                  {
                    
$songiris['songiris'] = "Veri Bulunamadı";
                  }
 echo 
'
 <div class="poster">
<div style="margin-left:-300px;width:300px;" class="godinfop">
   <div id="ilk" style="position: absolute; margin-left: 20px; margin-top: 3px;">
 <i class="fas fa-dice-d20" style="font-size: 60px; color: #fff;" aria-hidden="true"></i>
 <div style="right: -76px;z-index: 5;position: absolute;margin-left: -100px;text-align: center;">
 <img src="Resimler/Skin/'
,$oyuncu['skin'],'.png" style="
    position: relative;
    left: 29px;
    width: 110px;
">
   </div>

 <div style=" z-index: 5; position: absolute; margin-left: -5px; margin-top: -4px; text-align: center;">
 <span data-toggle="tooltip" title="" data-placement="top" style="position: absolute; margin-top: 0.7em; " data-original-title="'
,$oyuncu['exp'],'%"><div class="progress" style="background-color: #f5f5f53b; width: 67px; height: 8px;position: relative;top: 112px;left: 22px;">
 <div name="expbari" class="progress-bar progress-bar-striped" role="progressbar" style="background-color: #318d49; width: '
,$oyuncu['exp'],'%" aria-valuenow="25" aria-valuemin="0" aria-valuemax="100"></div>
 </div>
 </span>
 </div>


 </div>
   <div id="karakterad" style="position: absolute; margin-left: 243px; margin-top: -10px;width:100px;">
 <span class="badge" style="background-color: #000; color: #fff;padding: 3px 7px;border-radius:10px;">'
,$oyuncu['level'],' seviye</span>
 </div>
 <div id="karakterad" style="padding: 0 5px;border-radius: 51px;position: absolute;    margin-left: 140px;margin-top: 34px;background: #222222;width: auto;height: 20px;">
 <span style="color: #fff;font-weight: bold;font-size: 13px;">  <a href="index.php?action=ucp&karakterisim='
,$oyuncu['isim'],'',$getkarakter['isim'],'">',$isim,'</a></span>
 <br>
 <span style="background: #222222;width: auto;height: 20px;color: #fff;font-size: 11px;">'
,$birlik['birlik_isim'],'</span>
 
 <br>
 <span style="background: #222222;color: #fff;font-size: 10px;border-radius: 51px;width: auto;">'
,$oyuncu['songiris'],'</span>
 </div>
   </div>


 <h4>'
;?>


Bu şekilde postbit'e karakter adı, birlik, skin gibi bilgileri çekebileceğiz. Tasarım konusunda pek iyi olduğum söylenemez bu yüzden tasarımı size bırakıyorum hayal gücünüzden artık ne çıkarsa diyeyim. Biliyorum çok prof. bir anlatım olmadı yardım isteyen arkadaşlar bırakacağım discord hesabından bana ulaşabilirler. Ayrıca isteklerinize göre paylaşımlar yapabilirim. Bu saçma platform için uçuk miktarlar ödemenize gerek yok.


Discord: 54#4978

birazcik pawn birazcik web iste

ReveR


Warning


Rochiemaru

Çok fazla gereksiz olduğunu düşünüyorum insanlar bunu neden kullansınlar?