İhtiyaç duyulabilecek PHP kodları

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Onaylı Üye
Katılım
17 Mar 2020
Mesajlar
50
Tepki puanı
23
Ödüller
4
Yaş
40
6 HİZMET YILI
Php ile Resim Üzerine Yazı Yazmak

Öncelikle üzerine yazı yazacağımız "resmim.png"
isminde bir resim dosyası oluşturun. PHP ile grafik işlemleri için GD kütüphanesinin açık olması
gerekli. Bunu yapmak için "PHP.INI" dosyasında ki ";extension=php_gd.dll" satırının başındaki ";"
işaretini kaldırın.

Şimdi gelelim php kodumuza
Kod:
<?php
 
/*
İstanbul Web Dizayn ([email protected]) Php Programcısı (:
*/
 
// Browser'a dosyamızın png dosyası olduğunu belirtiyoruz.
Header("Content-type: image/png");
 
$resim=ImageCreateFromPNG("resim.png");
 
// Burada yazımızın rengini belirtiyoruz. Şu anda kırmızı.
$yazirengi = ImageColorAllocate($grafik, 255, 0, 0);
 
/* Burada resmin üzerindeki yazıyı, rengini ve hizasını belirtiyoruz. $resim sonrasında "2" yazının
boyutu, "5" sağ&sol ayarı ve "1" ise yukarı&aşağı ayarını belirtiyor. Sonrasında ki "Resim Üzerine
Yazı" resmin üzerine yazılacak yazıdır. Ve en son olarak yazının rengini $yazırengi ile
belirtiyoruz. İki tane yazı yazmamın sebebi farklılıklarını göstermektir. Bu değerleri değiştirip
nasıl göründüklerine bakınız.
*/
ImageString($resim, 2, 5, 1, "Resim Üzerine Yazı", $yazirengi);
ImageString($resim, 3, 5, 10, "Istikbal Göklerdedir", $yazirengi);
 
// Resmi PNG olarak browser'a yolluyoruz.
ImagePNG($resim);
 
// Hafızayı temizliyoruz.
ImageDestroy($resim);
?>

Web sitesine WhatsApp butonu eklemek​

WhatsApp uygulamasını web sitenize bir buton aracılığı ile bağlayabilirsiniz. Web sayfanızı ziyaret eden kullanıcılar masaüstü bilgisayarlarda whatsapp web uygulamasını kullanarak eklediğiniz numaraya sohbet başlatabilir.

Mobil cihazlardan whatsapp uygulamasını kullanarak eklediğiniz telefon numarası ile sohbete başlayabilir. Kullanıcıların site ile iletişim kurmasını hızlandırmak için ideal bir yoldur. Canlı çevrimiçi sohbet uygulamaları sayfa için ağırlık oluşturduğu gibi kullanıcının oturumu sonlandığı zaman yapılan görüşmenin kayıtlarına ulaşamamasına sebep olur.

Whatsapp sohbet butonu aracılığı ile whatsapp web yada mobil uygulama üzerinden yaptığı görüşmeler herzaman kayıtlı kalır.

Bunun için sitenize kullanımı çok basit olan

Kod:
<a  href="https://wa.me/905550000000" target="_blank"><i class="fa fa-whatsapp"></i> WhatsApp</a>

Bir web sitesinin Sağ ve Sol alt kısmına Arama Butonları eklemek için gerekli kod
Lütfen Kodları eklemeden önce numaraları kendi numaranızla değiştiriniz
Kod:
<style>
.float{
position:fixed;
width:60px;
height:60px;
bottom:40px;
left:40px;
background-color:#25d366;
color:#FFF;
border-radius:50px;
text-align:center;
  font-size:30px;
box-shadow: 2px 2px 3px #999;
  z-index:100;
 
}
.my-float{
margin-top:16px;
}
</style>
 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"> <!-- Font Awesome zaten varsa bunu eklemenize gerek yok -->
<a href="https://api.whatsapp.com/send?phone=90555555555" class="float" target="_blank">
<i class="fa fa-whatsapp my-float"></i>
</a>

kod2
....................................



<style>
.wsLink{position:fixed;bottom:6px;right:2.5%;z-index:100;width:60px;height:60px;-webkit-transition:.2s linear;-moz-transition:.2s linear;transition:.2s linear}.wsLink a{position:absolute;top:0;right:0;width:50px;height:50px;animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;background:url(https://hemencdn.com/interface/platinum/img/whatsapp.png) no-repeat center;-ms-transform-origin:50% 100%;-webkit-transform-origin:50% 100%;transform-origin:50% 100%;animation-name:tada;animation-duration:1s;animation-fill-mode:both}
</style>
<div class="wsLink">
<a href="https://api.whatsapp.com/send?phone=902124440444" target="_blank" title="Bize Ulaşın!"> </a>
</div>
<style>
.hotline-phone-ring-wrap{position:fixed;bottom:0;left:0;z-index:999999}.hotline-phone-ring{position:relative;visibility:visible;background-color:transparent;width:110px;height:110px;cursor:pointer;z-index:11;-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0);transition:visibility .5s;left:0;bottom:0;display:block}.hotline-phone-ring-circle{width:85px;height:85px;top:10px;left:10px;position:absolute;background-color:transparent;border-radius:100%;border:2px solid #e60808;-webkit-animation:phonering-alo-circle-anim 1.2s infinite ease-in-out;animation:phonering-alo-circle-anim 1.2s infinite ease-in-out;transition:all .5s;-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;opacity:.5}.hotline-phone-ring-circle-fill{width:55px;height:55px;top:25px;left:25px;position:absolute;background-color:rgba(230,8,8,0.7);border-radius:100%;border:2px solid transparent;-webkit-animation:phonering-alo-circle-fill-anim 2.3s infinite ease-in-out;animation:phonering-alo-circle-fill-anim 2.3s infinite ease-in-out;transition:all .5s;-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.hotline-phone-ring-img-circle{background-color:#e60808;width:33px;height:33px;top:37px;left:37px;position:absolute;background-size:20px;border-radius:100%;border:2px solid transparent;-webkit-animation:phonering-alo-circle-img-anim 1s infinite ease-in-out;animation:phonering-alo-circle-img-anim 1s infinite ease-in-out;-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;align-items:center;justify-content:center}.hotline-phone-ring-img-circle .pps-btn-img{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:20px}.hotline-bar{position:absolute;background:rgba(230,8,8,0.75);height:40px;width:200px;line-height:40px;border-radius:3px;padding:0 10px;background-size:100%;cursor:pointer;transition:all .8s;-webkit-transition:all .8s;z-index:9;box-shadow:0 14px 28px rgba(0,0,0,0.25),0 10px 10px rgba(0,0,0,0.1);border-radius:50px!important;left:33px;bottom:37px}
@-webkit-keyframes phonering-alo-circle-anim{0%{-webkit-transform:rotate(0) scale(0.5) skew(1deg);-webkit-opacity:.1}30%{-webkit-transform:rotate(0) scale(0.7) skew(1deg);-webkit-opacity:.5}100%{-webkit-transform:rotate(0) scale(1) skew(1deg);-webkit-opacity:.1}}@-webkit-keyframes phonering-alo-circle-fill-anim{0%{-webkit-transform:rotate(0) scale(0.7) skew(1deg);opacity:.6}50%{-webkit-transform:rotate(0) scale(1) skew(1deg);opacity:.6}100%{-webkit-transform:rotate(0) scale(0.7) skew(1deg);opacity:.6}}@-webkit-keyframes phonering-alo-circle-img-anim{0%{-webkit-transform:rotate(0) scale(1) skew(1deg)}10%{-webkit-transform:rotate(-25deg) scale(1) skew(1deg)}20%{-webkit-transform:rotate(25deg) scale(1) skew(1deg)}30%{-webkit-transform:rotate(-25deg) scale(1) skew(1deg)}40%{-webkit-transform:rotate(25deg) scale(1) skew(1deg)}50%{-webkit-transform:rotate(0) scale(1) skew(1deg)}100%{-webkit-transform:rotate(0) scale(1) skew(1deg)}}
@media (max-width: 768px) {
.hotline-bar { display: none;}
}
.hotline-phone-ring-circle {border-color: #f7bc3c;}
.hotline-phone-ring-circle-fill, .hotline-phone-ring-img-circle, .hotline-bar {background-color: #f7bc3c;}
.hotline-bar {background: rgb( 247, 188, 60, .7 );}
.hotline-phone-ring-img-circle .pps-btn-img img {width: 20px;height: 20px;}
.hotline-bar > a{color:#fff;text-decoration:none;font-size:15px;font-weight:700;text-indent:50px;display:block;letter-spacing:1px;line-height:40px;font-family:Arial}
.hotline-bar > a:hover,
.hotline-bar > a:active {color: #fff;}
</style>
<div class="hotline-phone-ring-wrap">
<div class="hotline-phone-ring">
<div class="hotline-phone-ring-circle"></div>
<div class="hotline-phone-ring-circle-fill"></div>
<div class="hotline-phone-ring-img-circle">
<a href="tel:+902124440444" class="pps-btn-img"><img src="https://hemencdn.com/interface/platinum/img/phone.png" alt="Hotline" style="height: 20px;"/></a>
</div>
</div>
<div class="hotline-bar">
<a href="tel:+902124440444"><span class="text-hotline">+902124440444</span></a>
</div>
</div>

Bir PHP Script’ini MySQL’e Bağlamak için MySQLi Kullanımı​

Bir PHP script’ini MySQL’e bağlamak için bu adımları takip edin:
  1. File Manager (Dosya Yöneticisi) -> public_html konumunu takip edin.
  2. Yukarıdaki menüden Yeni Dosya ikonuna tıklayın.
  3. Bu dosyayı databaseconnect.php olarak kaydedin. Dosyanın adını istediğiniz gibi değiştirebilir ancak uzantı olarak .php kullanıldığından emin olun.
  4. Dosyayı açmak için çift tıklayın ve açtıktan sonra aşağıdaki kod satırlarına kopyalayıp yapıştırın. <?php aşağısındaki ilk dört değeri daha önce bir kenara yazdığınız bilgilerle değiştirin.
Kod:
<?php
$servername = "localhost";
$database = "veritabaniadi";
$username = "kullaniciadi";
$password = "sifre";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $database);
// Check connection
if (!$conn) {
    die("Connection failed: " .
mysqli_connect_error());
}
echo "Connected successfully";
mysqli_close($conn);
?>

MySQLi Kodu Açıklaması​

Bu script’de kullanılan ana yöntem mysqli_connect() metodudur. Bu, bir MySQL sunucusuna yeni bir bağlantı kurmak için dahili bir PHP fonksiyonudur.
Kodumuzun hemen en başında birkaç değişken deklarasyonu görüyoruz ve değerler bu değişkenlere atanmış. Genellikle düzgün bir bağlantı oluşturabilmek için dört değişkene ihtiyacımız var: $servername, $database, $username, ve $password. Kodumuzda veritabanı detaylarını eksiksiz olarak bu değişkenlere değer olarak belirledik ve daha sonra bu değişkenleri ilgili fonksiyona geçiriyoruz.
Burada bir die() fonksiyonu çalıştırıldı ve bunun anlamı scriptimizi sonlandırma ve girdiğimiz mesajı bize göstermek oluyor. Yani varsayılan olarak Connection Failed: ve hata mesajı bize sorunu belirlememizde yardımcı olacak.
Öte yandan eğer bağlantı başarılıysa, kod bize Connected successfully sonucunu verecektir.
Kodun son bölümü ise mysqli_close‘dur. Bu kod veritabanına kurulan bağlantıyı elle sonlandıracaktır. Eğer belirlenmemişse, bağlantı script tamamlandığında kendi kendini kapatacaktır.

Bir PHP Script’ini MySQL’e Bağlamak için PDO Kullanımı​

Bir PHP script’ini MySQL’e bağlamanın diğer yöntemi ise PDO kullanımıdır. Bu yöntem bir öncekine oldukça benzerdir ancak ufak farklılıklara sahiptir:
  1. public_html‘de pdoconfig.php adında bir dosya oluşturun ve aşağıdaki kodu yerleştirin. Her zamanki gibi bu değerleri veritabanı bilgilerinizle değiştirmeyi unutmayın. İşiniz bittikten sonra Kaydet & Çık‘a tıklayın.
Kod:
<?php
    $host = 'localhost';
    $dbname = 'veritabaniadi';
    $username = 'kullaniciadi';
    $password = 'sifre';

Aynı dizinde databaseconnect.php adında bir dosya oluşturun ancak bu sefer aşağıdaki kodu yapıştırın. Eğer önceki dosyaya farklı bir isim verdiyseniz require_once değerini değiştirmeyi unutmayın.

Kod:
<?php
require_once 'pdoconfig.php';
 
try {
    $conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
    echo "Connected to $dbname at $host successfully.";
} catch (PDOException $pe) {
    die("Could not connect to the database $dbname :" . $pe->getMessage());
}

PDO Kodu Açıklaması​

Bir PDO veritabanı Data Source Name (DSN), kullanıcı adı ve şifre ile yeni bir ‘PDO object’ oluşturmanızı gerektirir.
DSN veritabanı türünü, veritabanının adını ve gerekliyse diğer bilgileri tanımlar. Bunlar, dbconfig.php dosyası içinde belirlediğimiz değişkenler ve değerlerdir. Bu dosyadan ise databaseconnect.php dosyasının require_once satırında bir kez bahsedilmektedir.
İkinci dosyada ‘try… catch…’ kodunu göreceksiniz. Bunun anlamı script’in verilen kodu kullanarak MySQL ile bağlantı kurmaya çalışır ve eğer bir problem oluşursa ‘catch’ bölümündeki kod çalıştırılır. Catch block kullanarak hata mesajlarını gösterebilir veya try block başarısız olursa alternatif bir kod çalıştırabilirsiniz.
Eğer PHP bağlantı kodu başarılı bir şekilde çalışır ve bağlantı sorunsuz oluşturulursa “Connected to $dbname at $host successfully.” mesajını elde edersiniz. Ancak deneme başarısız olursa catch kodu basit bir hata mesajı gösterir ve script’i sonlandırır.

PHP MySQL Veritabanı Bağlantısı Hatalarını Çözümleme​

Bağlantının başarı olup olmadığını görmek için domaininiz/databaseconnect.php kısmına gidin. Eğer PHP dosyasına farklı bir isim verdiyseniz bu noktaya dikkat edin.
Eğer her şey sorunsuz bir biçimde çalışıyorsanız “Connected successfully” benzeri bir mesaj görürsünüz.
Eğer bağlantı başarısızsa farklı bir mesaj görürsünüz. Hata mesajları MySQLi ve PDO için biraz farklıdır.

Yanlış Şifre Hatası​

Bu hata PHP kodundaki şifreyi veya herhangi bir bilgiyi değiştirdiğiniz (veritabanındaki gerçeğini değiştirmeden) takdirde oluşur.
Eğer sonunda “(using password: YES)” olan “Access denied” veya “Could not connect to database” mesajını görürseniz ilk yapmanız gereken veritabanı bilgilerini kontrol etmektir. Eksik veya yanlış olan biri kısım olabilir.

MySQL Sunucusuna Bağlanılamıyor/h3>​

Eğer MySQLi’de “Can’t connect to MySQL server on ‘server’ (110)” hatasını alırsanız bunun anlamı script’in sunucudan yanıt alamadığıdır. Bu, $servername olarak “localhost” yerine “sunucu” belirlediyseniz ve isim tanınmadıysa gerçekleşmektedir.​

PDO’da ise MySQL host’unun bulunamadığını belirten bilgilerle birlikte “Connection failed: SQLSTATE[Hy000] [2002]” gibi bir hata mesajı alırsınız. Bu hatayı da tıpkı MySQLi’deki hatayı çözdüğünüz gibi çözebilirsiniz.
Ve elbette, bir hata çözümlemedeki altın kuralı unutmamak oldukça önemlidir:
Bağlantıları görmek için lütfen Giriş Yap
.
Bu dosyayı script’in çalıştığı aynı klasörde bulabilirsiniz. Örneğin public_html içinde bir script çalıştırıyorsak, error_log dosyası aynı klasörde olacaktır.

Sonuç​

Bu rehberde veritabanları ve PHP Data Objects (PDO) ile MySQLi kullanarak PHP MySQL veritabanı bağlantısı nasıl yapılır öğrenmiş oldunuz.
Öğrendiklerinizi daha gelişmiş scriptlerde ve konfigürasyonlarda kullanabilirsiniz. Bir veritabanına bağlanmak onlarla çalışmaya başlamanın ilk ve en önemli adımıdır.

Uygulamada kullanacağımız veritabanı

Kod:
Veritabanı: kitaplik
Tablo: kitaplar
isbn    adi    yazari
944503382    Adım Adım Access 2000    X
881192131    Sabahın Körü    Y

baglan.php
 

<?php

$user = "root"; //veritabanı kullanıcı adı
$pwd = "1234"; //veritabanı şifresi
$host = "localhost"; //mysql server
$db = "kitaplik"; //veritabanı adı


$conn = mysql_connect($host,$user,$pwd) or die("MySQL sunucusuna baglanilamadi!!!".mysql_error());

mysql_select_db($db) or die("Veritabani secilemedi!!!".mysql_error());

?>
 
 
baglan.php dosyası, veritabanına bağlantının yapılmasını sağlayan blokları içeren dosyamızdır. böylece her sayfada bu kodları yeniden yazmak yerine sadece sayfaya dahil edeceğiz.

mysql_fetch_assoc

        mysql_fetch_assoc, mysql_query ile dönen sonuç kümesini işleyerek her satırı diziye aktarır. Dizi elemanlarının index anahtarları ise, sütun isimlerinden oluşur. Örnekte; ilk olarak bağlantı dosyamızı içeri aktarıyoruz. Hemen ardından kitaplar tablomuzdan isbn ve adi alanlarını seçiyoruz. Eğer sonuç kümesi boş değilse, her bir satır için while döngüsü ile mysql_fetch_assoc, bilgileri $oku isimli bir dizi oluşturup içerisinde depoluyor. Ardından verileri ekrana basarken bilgileri $oku['sutun_adi'] formatında çağırıyoruz. Eğer kayıt yoksa uyarıp en sonunda bağlantımızı kapatıyoruz.
 

<?php

require_once("./baglan.php");

$sonuc = mysql_query("select isbn,adi from kitaplar");

if(mysql_num_rows($sonuc)!=0)
{
    while($oku = mysql_fetch_assoc($sonuc))
    {
        echo "Kitap adi: ".$oku["adi"]."<br>Kitap ISBN: ".$oku["isbn"]."<br><br>";
        //echo $.oku["yazari"]; //bu satir hatalidir cunku sql sorgumuzda yazari alanini secmedik
    }
}else{
    echo "Hic kayit yok!";
}

mysql_close($conn);

?>
 

mysql_fetch_object();

        mysql_fetch_object, mysql_query ile dönen sonuç kümesini işleyerek her satırı oluşturulan nesneye sütun adıyla özellik şeklinde aktarır. Örnekte; ilk olarak bağlantı dosyamızı içeri aktarıyoruz. Hemen ardından kitaplar tablomuzdan isbn ve adi alanlarını seçiyoruz. Eğer sonuç kümesi boş değilse, her bir satır için while döngüsü ile mysql_fetch_object, bilgileri $oku isimli bir nesne oluşturup içerisinde depoluyor. Ardından verileri ekrana basarken bilgileri nesne yönelimli mantıkla $oku->sutun_adi formatında çağırıyoruz. Eğer kayıt yoksa uyarıp en sonunda bağlantımızı kapatıyoruz.

<?php

require_once("./baglan.php");

$sonuc = mysql_query("select isbn,adi from kitaplar");

if(mysql_num_rows($sonuc)!=0)
{
    while($oku = mysql_fetch_object($sonuc))
    {
        echo "Kitap adi: ".$oku->adi."<br>Kitap ISBN: ".$oku->isbn."<br><br>";
        //echo $.oku->yazari; //bu satir hatalidir cunku sql sorgumuzda yazari alanini secmedik
    }
}else{
    echo "Hic kayit yok!";
}

mysql_close($conn);

?>
 

mysql_fetch_row

        mysql_fetch_row, mysql_query ile dönen sonuç kümesini işleyerek her satırı diziye aktarır. Dizi elemanlarının index anahtarları, sorgudaki çekilme sıralarına göre sıfırdan başlayarak devam eder.Örnekte; ilk olarak bağlantı dosyamızı içeri aktarıyoruz. Hemen ardından kitaplar tablomuzdan isbn ve adi alanlarını seçiyoruz. Eğer sonuç kümesi boş değilse, her bir satır için while döngüsü ile mysql_fetch_row, bilgileri $oku isimli bir dizi oluşturup içerisinde depoluyor. Ardından verileri ekrana basarken bilgileri $oku[0] formatında çağırıyoruz. Eğer kayıt yoksa uyarıp en sonunda bağlantımızı kapatıyoruz.
Dikkat edilmesi gereken nokta, index numaralarıdır. Gördüğünüz gibi isbn sütunu ilk çekildiği için 0 index numarasını almıştır.

<?php

require_once("./baglan.php");

$sonuc = mysql_query("select isbn,adi from kitaplar");

if(mysql_num_rows($sonuc)!=0)
{
    while($oku = mysql_fetch_row($sonuc))
    {
        echo "Kitap adi: ".$oku[1]."<br>Kitap ISBN: ".$oku[0]."<br><br>";
        //echo $.oku[2]; //bu satir hatalidir cunku sql sorgumuzda üçüncü bir alan(yazari alanini) secmedik
    }
}else{
    echo "Hic kayit yok!";
}

mysql_close($conn);

?>

mysql_fetch_array()
 
        mysql_fetch_array, mysql_fetch_assoc ve mysql_fetch_row fonksiyonlarının birleştirilmiş hali olarak düşünülebilir. Kullanım sırasında aldığı ikinci parametre (MYSQL_ASSOC, MYSQL_NUM, MYSQL_BOTH) diziye erişim sırasında kullnacağınız index anahtarı tipini belirlemenizi sağlar.

<?php

require_once("./baglan.php");

$sonuc = mysql_query("select isbn,adi from kitaplar");

if(mysql_num_rows($sonuc)!=0)
{
    while($oku = mysql_fetch_array($sonuc,MYSQL_BOTH))
    {
        echo "Kitap adi: ".$oku[1]."<br>Kitap ISBN: ".$oku["isbn"]."<br><br>";
        //echo $.oku[2]; //bu satir hatalidir cunku sql sorgumuzda üçüncü bir alan(yazari alanini) secmedik
    }
}else{
    echo "Hic kayit yok!";
}

mysql_close($conn);

?>
 
 

MYSQL_ASSOC    Fonksiyon kullanımı mysql_fetch_assoc ile aynı olacaktır.Dizi elemanlarına sütun ismi ile ulaşılabilir
MYSQL_NUM    Fonksiyon kullanımı mysql_fetch_row ile aynı olacaktır.Dizi elemanlarına sütun numarası ile ulaşılabilir
MYSQL_BOTH    Dizi elemanlarına hem sütun adı hem sütun numarası ile ulaşılabilir

mysql_result()

        mysql_result, sql sorgusundan tek bir sütun içeriğini çeker. Örneğimizde sadece adi sütunu üzerinde işlem yapacağız. Sorgudan hemen sonra sonuç kümesinin satır sayısını $satir içerisine alıyoruz ve $basla değişkenini sıfıra eşitliyoruz. Ardından sonuç kümesi satır sayısı sıfıra eşit değilse(boş değilse), okunan satır sayısı toplam satır sayısına eşitlenene kadar dönecek bir döngü bloğu içerisinde mysql_result kullanıyoruz. İşlemlerin sonunda mysql bağlantısını kapatıyoruz.

 

<?php

require_once("./baglan.php");

$sonuc = mysql_query("select adi from kitaplar");
$satir = mysql_num_rows($sonuc);
$basla = 0;

if($satir!=0)
{
    while($basla<=$satir)
    {
        echo "Kitap adi: ".mysql_result($sonuc,$basla); //her satırdaki adi kolonu
        $basla++;
    }
}else{
    echo "Hic kayit yok!";
}

mysql_close($conn);

?>
 
Moderatörün son düzenlenenleri:
Onaylı Üye
Katılım
2 Tem 2022
Mesajlar
51
Tepki puanı
3
Ödüller
3
Yaş
26
3 HİZMET YILI
cok yardımcı oldu sağolun
 
Moderatörün son düzenlenenleri:
Onaylı Üye
Katılım
17 Mar 2020
Mesajlar
50
Tepki puanı
23
Ödüller
4
Yaş
40
6 HİZMET YILI

Php İle İletişim Formu Yapımı​

Bu dersimizde, Php ile iletişim formu nasıl yapılır bunu öğreneceğiz. Yapacağımız form ile Ziyaretçinin girdiği bilgiler e-mail adresimize gönderilecek.
İlk olarak ziyaretçinin bilgi gireceği index.php dosyasını oluşturalım.

Kod:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Iletisim Formu</title>
 
<body>
 
<form name="iletisim" method="POST" action="gonder.php">
 
Ad Soyad: <input type="text" name="ad_soyad" size="25"><br />
 
Telefon: <input type="text" name="tel" size="25"><br />
 
E-Mail: <input type="text" name="email"  size="25"><br />
 
Mesajiniz: <textarea rows="5" name="mesaj"  cols="25"></textarea><br />
 
<input type="submit" name="button" value="Gonder">
 
</form>

Girilen bilgileri denetleyeceğimiz gonder.php dosyasını oluşturalım.

Kod:
<?php
 
$ad_soyad     = $_POST["ad_soyad"];
$tel         = $_POST["tel"];
$email         = $_POST["email"];
$mesaj        = $_POST["mesaj"];
$adres        = "[email protected]"; // Buraya e-postanin gonderilecegi mail adresini yaziniz
$konu        = "Iletisim Formu";
$tarih        = date('Y-m-d');
$ip_adresi    = $_SERVER['REMOTE_ADDR'];
 
if(($ad_soyad=="") or ($tel =="") or ($email=="") or ($mesaj=="")){
 
echo "<center>Lutfen Ad Soyad, Telefon, E-Mail ve Mesaj alanlarini bos birakmayiniz.<br><a href=index.php>Geri don</a></center>";
 
}
else
{
 
$mesajveri.="ILETISIM FORMU MESAJI<br/><br/>";
$mesajveri.="E-Mail:  ".$email."<br/>";
$mesajveri.="Telefon:  ".$tel."<br/>";
$mesajveri.="Tarih:  ".$tarih."<br/>";
$mesajveri.="IP Adresi   :".$ip_adresi."<br/>";
$mesajveri.="Mesaj:  ".$mesaj;
 
$mesajyolla = mail($adres, $konu, $mesajveri, "Content-type: text/html; charset=utf-8\r\n");
 
if($mesajyolla)
{
 
echo "<center>Iletisim mailiniz bize ulasti, en kisa surede cevaplanacaktir. Ilginiz icin tesekkur ederiz.<br><a href=index.php>Anasayfa</a></center>";
 
}
else
{
 
echo "<center>E-Mail gonderilirken hata olustu! Lutfen daha sonra tekrar deneyiniz.</center>";
 
}
}
 
?>

gonder.php dosyasındaki [email protected] adresini kendi mail adresiniz olarak değiştirin.

Gönderilen mailin içeriği şu şekilde:

İLETİŞİM FORMU MESAJI

E-Mail: [email protected]
Telefon:
Tarih:
IP Adresi :
Mesajı: Ziyaretçi mesajı
 
Uzman Üye
Katılım
24 Tem 2022
Mesajlar
210
Tepki puanı
11
Ödüller
1
Yaş
26
3 HİZMET YILI
bu tür konularda hazır kod satırlaını doğru bulmuyorum php konu anlatımı tarzı bir anlatım yapsanız daha iyi olabilridi ama elinize emeğinize sağlık teşekkürler dilerim.
 
Onaylı Üye
Katılım
17 Mar 2020
Mesajlar
50
Tepki puanı
23
Ödüller
4
Yaş
40
6 HİZMET YILI
bu tür konularda hazır kod satırlaını doğru bulmuyorum php konu anlatımı tarzı bir anlatım yapsanız daha iyi olabilridi ama elinize emeğinize sağlık teşekkürler dilerim.
evet buradaki amaç bu tarzda kodlara ihtiyac duyanlara hızlı bir şekilde yardımcı olmak
eğer site yönetimi buna gerek yok diye düşünürlerse silebilirler ben sadece bilgi paylaştıkça anlam kazanır diyerek bildiğim anladığım şeyleri paylaşıyorum
 
Uzman Üye
Katılım
24 Tem 2022
Mesajlar
210
Tepki puanı
11
Ödüller
1
Yaş
26
3 HİZMET YILI
evet buradaki amaç bu tarzda kodlara ihtiyac duyanlara hızlı bir şekilde yardımcı olmak
eğer site yönetimi buna gerek yok diye düşünürlerse silebilirler ben sadece bilgi paylaştıkça anlam kazanır diyerek bildiğim anladığım şeyleri paylaşıyorum
fark ettim zaten elinize emeğinize sağlık çok ta yaralı bir içerik olmuş.
Dediğim gibi yapabilrisiniz eğer isterseniz ama çok güzel bir konu olmul
 
Onaylı Üye
Katılım
17 Mar 2020
Mesajlar
50
Tepki puanı
23
Ödüller
4
Yaş
40
6 HİZMET YILI
Bağlantıları görmek için lütfen Giriş Yap

Yukarı Çık Butonu​

Bu yazımda bir çok sitede mevcut ve kullanıcıların da kullanım kolaylığı açısından beğendiği aşağı inince görünen yukarı çık butonunun örnek bir yapımını anlatacağım.
Özet olarak anlatırsak, içinde isteğe bağlı yukarı doğru yönü olan bir ok barındıran bir eleman oluşturuyoruz. Bunu ilkte gizleyip sadece aşağı inince görünür hale getiriyoruz. Tabii ki aşağı inmeyi yine Jquery ile kontrol edip işlem yapabiliyoruz. Jquery ile scroll (kenar çubuğu) hareketini kontrol edebiliyoruz. Aşağıda incelediğinizde görebileceksiniz.
Öncelikle HTML üzerinde elemanımızı oluşturup tasarım ve ikon işlemlerimizi halledelim.
Kod:
<!DOCTYPE html>
<html lang="tr">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet">
    <title>Yukarı Çık Butonu</title>
</head>
<body>

    <div id="yukari">
        <i class="fa fa-arrow-up"></i>
    </div>

</body>
</html>

Özetle;

  • Font Awesome v4.70 ikon dosyamızı çağırdık.
  • Bir div elemanı oluşturduk div elemanını kullanmanız zorunlu değildir istediğiniz başka bir elementi kullanabilirsiniz. İçerisine Font Awesome’dan yukarı ok ikonunu yerleştirdik
Kod:
#yukari{
    display:none;
    position:fixed;
    bottom:25px;
    right:25px;
    background:#00b2f2;
    width:50px;
    height:50px;
    text-align:center;
    line-height: 50px;
    border-radius:35px;
    transition:all .3s ease;
    z-index:999
}
#yukari i{
    color:#fff;
    font-size:20px;
}
#yukari:hover{
    background-color:#fcb100
}

Css aşamasında butonumuzun daha güzel görünmesini sağladık. Arka plan renklerini ve konumunu kendi isteğinize göre ayarlayabilirsiniz.

Elaman oluşturma ve tasarım aşamalarımız bitti. Geriye kalan kısım oluşturduğumuz elemanı, aşağı inme olayını yakaladığımızda göstermek olacak. Bunun için Jquery kodları aşağıdaki gibi olabilir.

Kod:
// Kayma
$(window).scroll(function() {
    if ($(this).scrollTop() >= 350) {
        $('#yukari').fadeIn(200);
    } else {
        $('#yukari').fadeOut(200);
    }
});

// Tıklama
$('#yukari').on('click', function() {
    $("html, body").animate({scrollTop: 0}, 1000);
});

Yukarıda ki Jquery kodu ile birlikte işlemimiz tamamlanmış oluyor. Kısaca onu da özetlersek;
  • Scroll (Kayma) olayı gerçekleşmesi yakalandığında ilk fonksiyon çalışıyor.
  • Scroll’un yukarıya olan mesafesi 350 değerine eşitse veya daha yüksekse Yukarı Çık butonumuz fadeIn sayesinde solma efekti ile birlikte görünüyor. Else kısmı çalıştığında yani değilse tekrar fadeOut ile solarak butonu gizliyoruz.
  • Click (tıklama) olayı gerçekleştiğinde ise yine bir fonksiyon çağrılıyor. İçindeki animate sayesinde scrollTop değerini 0′ a çekip sayfanın en yukarısına güzel bir animasyonla çıkarıyor.
Yazının başında da söylediğim gibi oldukça çok kullanılan popüler bir buton ve yapıdır. İşinize yaraması dileğiyle.
Post automatically merged:

Sorgu İçinde Değişken Kullanımı​


Merhabalar,

Bu yazımda PHP ile sorgu yaparken, sorgunun içinde nasıl değişken kullanılabilir konusundan bahsedeceğim. Bu yöntem PDO ve mysqli_ fonksiyonlarının ikisinde de kullanılabilir.

Hemen bu işlemi nasıl gerçekleştireceğimize bakalım;
Kod:
<?php
$degisken = $_GET['id'];
$sorgu = $db->query("SELECT * FROM urunler WHERE id = '{$degisken}'")->fetch(PDO::FETCH_ASSOC);
Bu örnek PDO kullananlar içindir. Anlayacağınız üzere $db değişkeninde veritabanı bağlantısını yapmış oluyorsunuz.

mysql_ fonksiyonlarında da aynı şekilde kullanılmaktadır. Aşağıda görebilirsiniz.
Kod:
<?php
$degisken = $_GET['id'];
$sorgu = mysqli_query("SELECT * FROM urunler WHERE id = '{$degisken}'");
Post automatically merged:

PHP ile IP Adresi, Şehir vs Bilgileri Alma

Merhabalar,

Bu yazımda PHP ile, sitenizi ziyaret eden kullanıcıların IP Adresi, Şehir ve Ülke bilgilerine nasıl ulaşabileceğinize dair bir örnek paylaşacağım. Tabii ki Php direkt olarak şehir ve ülke gibi bilgileri bizimle paylaşmıyor.

Bunun için IP Adresi aracılığıyla diğer bilgilere ulaşacağız. Bunun için bazı API veya köprü görevi gören sistemler bulunuyor. Bu IP adresini karşı sistemlere gönderip onlardan gelen cevap ile işlem yapacağız.

Çok uzatmadan IP adresini nasıl elde edeceğimize bakalım.

Kod:
<?php
// ip adresini al ve değişkene ata
$ip_adresi = $_SERVER['REMOTE_ADDR'];
// geoplugin.net adresine ip adresini ilet ve diğer bilgilere ulaşım sağla
$uzak_adres = @unserialize(file_get_contents('http://www.geoplugin.net/php.gp?ip='.$ip_adresi));
// Şehir dönen değeri değişkene ata
$sehir = $uzak_adres['geoplugin_city'];
// Ülke dönen değeri değişkene ata
$ulke = $uzak_adres['geoplugin_countryName'];
// Değişkenleri veritabanına kaydetmek için kullanabilirsiniz.
// Ekrana basmak isterseniz echo ile basabilirsiniz.
echo '<p><b>'.'Şehir: '.'</b>'.$sehir.'<br>'. '<b>'.'Ülke: '.'</b>'.$ulke.'</p>';

Yukarıda basit bir şekilde önce Ip adresini elde edip daha sonra onu geoplugin.net adresine gönderiyoruz. Dosya içinden gelen verileri dizi formatına dönüştürüp tek tek değişkenlere atayabiliriz.

Localhost üzerinde Ip adresi alınmadığı bilgisini de vereyim zaten localde kullanmak çok mantıklı olmayacaktır. Sunucu üzerindeki projenize yukarıdaki kısa kodu eklediğinizde istediğiniz verileri elde edebilirsiniz.

Umarım işinize yarar.
Post automatically merged:

HTML KOD

Site Arka Plana Video Ekleme​


Bu yazımda web site arka planınıza nasıl video eklersiniz bundan bahsedeceğim. Bir çok tasarımda karşınıza çıkmış olabilir gelin bizde örnek bir arka plan videosu ekleyelim.

Ben arka plana tam ekran bir video, üstüne de başlık ve açıklama yazısı ekleyeceğim. Scroll ile aşağı inince veya butona tıklayınca açıklama yazısı çıkacak şekilde kodlayacağım.

Hemen başlayalım;

Kod:
<section class="intro">
    <div class="video-container">
        <video src="/video.mp4" autoplay loop playsinline muted></video>
    </div>
    <div class="content">
        <h1>Tam Ekran Video</h1>
        <h4>Arka Plan için Tam Ekran Video Örneği</h4>
        <a href="#page" class="read-more">Devamını Oku</a>
    </div>
</section>

<section id="page">
    <h1>Lorem Ipsum</h1>
    <p>
        Lorem ipsum dolor...
    </p>
</section>

Html tarafında işlemlerimiz bu kadar. video etiketi içinde src niteliğine, ekleyeceğeniz videonun dosya yolunu giriyorsunuz. Video etiketinde yer alan ‘autoplay’, ‘loop’, ‘playsinline’, ‘muted’ gibi değerlerin anlamlarını kısaca açıklayayım.
  • autoplay: Videoyu sayfa açıldığında otomatik olarak oynatmayı sağlar.
  • loop: Video bittikten sonra yeniden başlatarak videoyu döngüye sokar.
  • playsinline: Özellikle mobil cihazlarda videoyu tam ekrana almadan veya sayfadan ayrılmadan site içinde oynatılmasını sağlar.
  • muted: Video içinde bir ses kaynağı varsa onu kapatır ve videoyu tamamen sessiz bir şekilde oynatır.
Diğer metin alanlarını kendinize göre özelleştirebilirsiniz. Sitenizin geri kalan içeriğini main etiketi içine almanızı tavsiye ederim. Şimdi videoyu tam ekran olacak şekilde arka plana ayarlama ve diğer görsel işlemler için Css tarafına geçelim;
Kod:
@import url('https://fonts.googleapis.com/css2?family=Open+Sans:wght@300;400&display=swap');

* {    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {    font-family: 'Open Sans', sans-serif;
    line-height: 1.5;
}

h1 {    font-weight: 300;
    font-size: 50px;
    line-height: 1.2;
    margin-bottom: 15px;
}

/* Giriş Bölümü */
.intro {    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: #fff;
    padding: 0 20px;
}
/* Giriş Bölümü Bitiş */

/* Video Konumlandırma */
.video-container {    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    background: #333;
}
.video-container video {
    min-width: 100%;
    min-height: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    object-fit: cover;
}
/* Video Konumlandırma Bitiş */

/* Karartma Efekti */
.video-container:after {    content: '';
    z-index: 1;
    height: 100%;
    width: 100%;
    top: 0;
    left: 0;
    background: rgba(0, 0, 0, 0.5);
    position: absolute;
}
/* Karartma Efekti Bitiş */

.content {    z-index: 2;
}

.read-more {    display: inline-block;
    padding: 10px 30px;
    background: #333;
    color: #fff;
    border-radius: 5px;
    border: solid #fff 1px;
    margin-top: 25px;
    opacity: 0.8;
    transition: .2s all;
    text-decoration: none;
}

.read-more:hover {    transform: scale(.9);
}

/* İçerik (Opsiyonel) */
#page {    padding: 40px;
    text-align: center;
}

#page p {    font-size: 1.2rem;
    max-width: 600px;
    margin: auto;
}
/* İçerik Bitiş */

Evet Css ile yapılacak temel işlemler de bu kadar. Temel yapıyı ayarlıyoruz. Geri kalan kısımlar ise tasarımsal özelliklerdir. Yorum satırını kapsamayan alanları kendi tasarımınıza göre özelleştirebilirsiniz.
 
Son düzenleme:
Ultra Üye
Katılım
24 Eyl 2017
Mesajlar
1,557
Çözümler
6
Tepki puanı
161
Ödüller
10
Yaş
25
8 HİZMET YILI
Php ile ilgilenenler için yararli konu bro ellerine sağlik
 
Ultra Üye
Katılım
6 Ara 2021
Mesajlar
1,603
Çözümler
6
Tepki puanı
147
Ödüller
6
Yaş
26
Sosyal
4 HİZMET YILI
emeğine sağlık bu tür kodları yazmak çok zor olmalı başka bir yerden alıp buraya yazdıysan bile canın sağolsun
 
HER OYUNUN BİR AÇIĞI VARDIR
Ultra Üye
Katılım
1 Ara 2017
Mesajlar
1,510
Çözümler
1
Tepki puanı
118
Ödüller
9
Yaş
25
8 HİZMET YILI
Eline koluna emeğine sağlık dostum sayende kod aramak için bu kadar uğraşmicaz iyi forumlar.
 
Onaylı Üye
Katılım
1 Nis 2023
Mesajlar
52
Tepki puanı
7
Yaş
23
3 HİZMET YILI
Php ile Resim Üzerine Yazı Yazmak

Öncelikle üzerine yazı yazacağımız "resmim.png"
isminde bir resim dosyası oluşturun. PHP ile grafik işlemleri için GD kütüphanesinin açık olması
gerekli. Bunu yapmak için "PHP.INI" dosyasında ki ";extension=php_gd.dll" satırının başındaki ";"
işaretini kaldırın.

Şimdi gelelim php kodumuza
Kod:
<?php
 
/*
İstanbul Web Dizayn ([email protected]) Php Programcısı (:
*/
 
// Browser'a dosyamızın png dosyası olduğunu belirtiyoruz.
Header("Content-type: image/png");
 
$resim=ImageCreateFromPNG("resim.png");
 
// Burada yazımızın rengini belirtiyoruz. Şu anda kırmızı.
$yazirengi = ImageColorAllocate($grafik, 255, 0, 0);
 
/* Burada resmin üzerindeki yazıyı, rengini ve hizasını belirtiyoruz. $resim sonrasında "2" yazının
boyutu, "5" sağ&sol ayarı ve "1" ise yukarı&aşağı ayarını belirtiyor. Sonrasında ki "Resim Üzerine
Yazı" resmin üzerine yazılacak yazıdır. Ve en son olarak yazının rengini $yazırengi ile
belirtiyoruz. İki tane yazı yazmamın sebebi farklılıklarını göstermektir. Bu değerleri değiştirip
nasıl göründüklerine bakınız.
*/
ImageString($resim, 2, 5, 1, "Resim Üzerine Yazı", $yazirengi);
ImageString($resim, 3, 5, 10, "Istikbal Göklerdedir", $yazirengi);
 
// Resmi PNG olarak browser'a yolluyoruz.
ImagePNG($resim);
 
// Hafızayı temizliyoruz.
ImageDestroy($resim);
?>

Web sitesine WhatsApp butonu eklemek​

WhatsApp uygulamasını web sitenize bir buton aracılığı ile bağlayabilirsiniz. Web sayfanızı ziyaret eden kullanıcılar masaüstü bilgisayarlarda whatsapp web uygulamasını kullanarak eklediğiniz numaraya sohbet başlatabilir.

Mobil cihazlardan whatsapp uygulamasını kullanarak eklediğiniz telefon numarası ile sohbete başlayabilir. Kullanıcıların site ile iletişim kurmasını hızlandırmak için ideal bir yoldur. Canlı çevrimiçi sohbet uygulamaları sayfa için ağırlık oluşturduğu gibi kullanıcının oturumu sonlandığı zaman yapılan görüşmenin kayıtlarına ulaşamamasına sebep olur.

Whatsapp sohbet butonu aracılığı ile whatsapp web yada mobil uygulama üzerinden yaptığı görüşmeler herzaman kayıtlı kalır.

Bunun için sitenize kullanımı çok basit olan

Kod:
<a  href="https://wa.me/905550000000" target="_blank"><i class="fa fa-whatsapp"></i> WhatsApp</a>

Bir web sitesinin Sağ ve Sol alt kısmına Arama Butonları eklemek için gerekli kod
Lütfen Kodları eklemeden önce numaraları kendi numaranızla değiştiriniz
Kod:
<style>
.float{
position:fixed;
width:60px;
height:60px;
bottom:40px;
left:40px;
background-color:#25d366;
color:#FFF;
border-radius:50px;
text-align:center;
  font-size:30px;
box-shadow: 2px 2px 3px #999;
  z-index:100;
 
}
.my-float{
margin-top:16px;
}
</style>
 
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css"> <!-- Font Awesome zaten varsa bunu eklemenize gerek yok -->
<a href="https://api.whatsapp.com/send?phone=90555555555" class="float" target="_blank">
<i class="fa fa-whatsapp my-float"></i>
</a>

kod2
....................................



<style>
.wsLink{position:fixed;bottom:6px;right:2.5%;z-index:100;width:60px;height:60px;-webkit-transition:.2s linear;-moz-transition:.2s linear;transition:.2s linear}.wsLink a{position:absolute;top:0;right:0;width:50px;height:50px;animation-iteration-count:infinite;-webkit-animation-iteration-count:infinite;background:url(https://hemencdn.com/interface/platinum/img/whatsapp.png) no-repeat center;-ms-transform-origin:50% 100%;-webkit-transform-origin:50% 100%;transform-origin:50% 100%;animation-name:tada;animation-duration:1s;animation-fill-mode:both}
</style>
<div class="wsLink">
<a href="https://api.whatsapp.com/send?phone=902124440444" target="_blank" title="Bize Ulaşın!"> </a>
</div>
<style>
.hotline-phone-ring-wrap{position:fixed;bottom:0;left:0;z-index:999999}.hotline-phone-ring{position:relative;visibility:visible;background-color:transparent;width:110px;height:110px;cursor:pointer;z-index:11;-webkit-backface-visibility:hidden;-webkit-transform:translateZ(0);transition:visibility .5s;left:0;bottom:0;display:block}.hotline-phone-ring-circle{width:85px;height:85px;top:10px;left:10px;position:absolute;background-color:transparent;border-radius:100%;border:2px solid #e60808;-webkit-animation:phonering-alo-circle-anim 1.2s infinite ease-in-out;animation:phonering-alo-circle-anim 1.2s infinite ease-in-out;transition:all .5s;-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;opacity:.5}.hotline-phone-ring-circle-fill{width:55px;height:55px;top:25px;left:25px;position:absolute;background-color:rgba(230,8,8,0.7);border-radius:100%;border:2px solid transparent;-webkit-animation:phonering-alo-circle-fill-anim 2.3s infinite ease-in-out;animation:phonering-alo-circle-fill-anim 2.3s infinite ease-in-out;transition:all .5s;-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%}.hotline-phone-ring-img-circle{background-color:#e60808;width:33px;height:33px;top:37px;left:37px;position:absolute;background-size:20px;border-radius:100%;border:2px solid transparent;-webkit-animation:phonering-alo-circle-img-anim 1s infinite ease-in-out;animation:phonering-alo-circle-img-anim 1s infinite ease-in-out;-webkit-transform-origin:50% 50%;-ms-transform-origin:50% 50%;transform-origin:50% 50%;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;align-items:center;justify-content:center}.hotline-phone-ring-img-circle .pps-btn-img{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;height:20px}.hotline-bar{position:absolute;background:rgba(230,8,8,0.75);height:40px;width:200px;line-height:40px;border-radius:3px;padding:0 10px;background-size:100%;cursor:pointer;transition:all .8s;-webkit-transition:all .8s;z-index:9;box-shadow:0 14px 28px rgba(0,0,0,0.25),0 10px 10px rgba(0,0,0,0.1);border-radius:50px!important;left:33px;bottom:37px}
@-webkit-keyframes phonering-alo-circle-anim{0%{-webkit-transform:rotate(0) scale(0.5) skew(1deg);-webkit-opacity:.1}30%{-webkit-transform:rotate(0) scale(0.7) skew(1deg);-webkit-opacity:.5}100%{-webkit-transform:rotate(0) scale(1) skew(1deg);-webkit-opacity:.1}}@-webkit-keyframes phonering-alo-circle-fill-anim{0%{-webkit-transform:rotate(0) scale(0.7) skew(1deg);opacity:.6}50%{-webkit-transform:rotate(0) scale(1) skew(1deg);opacity:.6}100%{-webkit-transform:rotate(0) scale(0.7) skew(1deg);opacity:.6}}@-webkit-keyframes phonering-alo-circle-img-anim{0%{-webkit-transform:rotate(0) scale(1) skew(1deg)}10%{-webkit-transform:rotate(-25deg) scale(1) skew(1deg)}20%{-webkit-transform:rotate(25deg) scale(1) skew(1deg)}30%{-webkit-transform:rotate(-25deg) scale(1) skew(1deg)}40%{-webkit-transform:rotate(25deg) scale(1) skew(1deg)}50%{-webkit-transform:rotate(0) scale(1) skew(1deg)}100%{-webkit-transform:rotate(0) scale(1) skew(1deg)}}
@media (max-width: 768px) {
.hotline-bar { display: none;}
}
.hotline-phone-ring-circle {border-color: #f7bc3c;}
.hotline-phone-ring-circle-fill, .hotline-phone-ring-img-circle, .hotline-bar {background-color: #f7bc3c;}
.hotline-bar {background: rgb( 247, 188, 60, .7 );}
.hotline-phone-ring-img-circle .pps-btn-img img {width: 20px;height: 20px;}
.hotline-bar > a{color:#fff;text-decoration:none;font-size:15px;font-weight:700;text-indent:50px;display:block;letter-spacing:1px;line-height:40px;font-family:Arial}
.hotline-bar > a:hover,
.hotline-bar > a:active {color: #fff;}
</style>
<div class="hotline-phone-ring-wrap">
<div class="hotline-phone-ring">
<div class="hotline-phone-ring-circle"></div>
<div class="hotline-phone-ring-circle-fill"></div>
<div class="hotline-phone-ring-img-circle">
<a href="tel:+902124440444" class="pps-btn-img"><img src="https://hemencdn.com/interface/platinum/img/phone.png" alt="Hotline" style="height: 20px;"/></a>
</div>
</div>
<div class="hotline-bar">
<a href="tel:+902124440444"><span class="text-hotline">+902124440444</span></a>
</div>
</div>

Bir PHP Script’ini MySQL’e Bağlamak için MySQLi Kullanımı​

Bir PHP script’ini MySQL’e bağlamak için bu adımları takip edin:
  1. File Manager (Dosya Yöneticisi) -> public_html konumunu takip edin.
  2. Yukarıdaki menüden Yeni Dosya ikonuna tıklayın.
  3. Bu dosyayı databaseconnect.php olarak kaydedin. Dosyanın adını istediğiniz gibi değiştirebilir ancak uzantı olarak .php kullanıldığından emin olun.
  4. Dosyayı açmak için çift tıklayın ve açtıktan sonra aşağıdaki kod satırlarına kopyalayıp yapıştırın. <?php aşağısındaki ilk dört değeri daha önce bir kenara yazdığınız bilgilerle değiştirin.
Kod:
<?php
$servername = "localhost";
$database = "veritabaniadi";
$username = "kullaniciadi";
$password = "sifre";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $database);
// Check connection
if (!$conn) {
    die("Connection failed: " .
mysqli_connect_error());
}
echo "Connected successfully";
mysqli_close($conn);
?>

MySQLi Kodu Açıklaması​

Bu script’de kullanılan ana yöntem mysqli_connect() metodudur. Bu, bir MySQL sunucusuna yeni bir bağlantı kurmak için dahili bir PHP fonksiyonudur.
Kodumuzun hemen en başında birkaç değişken deklarasyonu görüyoruz ve değerler bu değişkenlere atanmış. Genellikle düzgün bir bağlantı oluşturabilmek için dört değişkene ihtiyacımız var: $servername, $database, $username, ve $password. Kodumuzda veritabanı detaylarını eksiksiz olarak bu değişkenlere değer olarak belirledik ve daha sonra bu değişkenleri ilgili fonksiyona geçiriyoruz.
Burada bir die() fonksiyonu çalıştırıldı ve bunun anlamı scriptimizi sonlandırma ve girdiğimiz mesajı bize göstermek oluyor. Yani varsayılan olarak Connection Failed: ve hata mesajı bize sorunu belirlememizde yardımcı olacak.
Öte yandan eğer bağlantı başarılıysa, kod bize Connected successfully sonucunu verecektir.
Kodun son bölümü ise mysqli_close‘dur. Bu kod veritabanına kurulan bağlantıyı elle sonlandıracaktır. Eğer belirlenmemişse, bağlantı script tamamlandığında kendi kendini kapatacaktır.

Bir PHP Script’ini MySQL’e Bağlamak için PDO Kullanımı​

Bir PHP script’ini MySQL’e bağlamanın diğer yöntemi ise PDO kullanımıdır. Bu yöntem bir öncekine oldukça benzerdir ancak ufak farklılıklara sahiptir:
  1. public_html‘de pdoconfig.php adında bir dosya oluşturun ve aşağıdaki kodu yerleştirin. Her zamanki gibi bu değerleri veritabanı bilgilerinizle değiştirmeyi unutmayın. İşiniz bittikten sonra Kaydet & Çık‘a tıklayın.
Kod:
<?php
    $host = 'localhost';
    $dbname = 'veritabaniadi';
    $username = 'kullaniciadi';
    $password = 'sifre';

Aynı dizinde databaseconnect.php adında bir dosya oluşturun ancak bu sefer aşağıdaki kodu yapıştırın. Eğer önceki dosyaya farklı bir isim verdiyseniz require_once değerini değiştirmeyi unutmayın.

Kod:
<?php
require_once 'pdoconfig.php';
 
try {
    $conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
    echo "Connected to $dbname at $host successfully.";
} catch (PDOException $pe) {
    die("Could not connect to the database $dbname :" . $pe->getMessage());
}

PDO Kodu Açıklaması​

Bir PDO veritabanı Data Source Name (DSN), kullanıcı adı ve şifre ile yeni bir ‘PDO object’ oluşturmanızı gerektirir.
DSN veritabanı türünü, veritabanının adını ve gerekliyse diğer bilgileri tanımlar. Bunlar, dbconfig.php dosyası içinde belirlediğimiz değişkenler ve değerlerdir. Bu dosyadan ise databaseconnect.php dosyasının require_once satırında bir kez bahsedilmektedir.
İkinci dosyada ‘try… catch…’ kodunu göreceksiniz. Bunun anlamı script’in verilen kodu kullanarak MySQL ile bağlantı kurmaya çalışır ve eğer bir problem oluşursa ‘catch’ bölümündeki kod çalıştırılır. Catch block kullanarak hata mesajlarını gösterebilir veya try block başarısız olursa alternatif bir kod çalıştırabilirsiniz.
Eğer PHP bağlantı kodu başarılı bir şekilde çalışır ve bağlantı sorunsuz oluşturulursa “Connected to $dbname at $host successfully.” mesajını elde edersiniz. Ancak deneme başarısız olursa catch kodu basit bir hata mesajı gösterir ve script’i sonlandırır.

PHP MySQL Veritabanı Bağlantısı Hatalarını Çözümleme​

Bağlantının başarı olup olmadığını görmek için domaininiz/databaseconnect.php kısmına gidin. Eğer PHP dosyasına farklı bir isim verdiyseniz bu noktaya dikkat edin.
Eğer her şey sorunsuz bir biçimde çalışıyorsanız “Connected successfully” benzeri bir mesaj görürsünüz.
Eğer bağlantı başarısızsa farklı bir mesaj görürsünüz. Hata mesajları MySQLi ve PDO için biraz farklıdır.

Yanlış Şifre Hatası​

Bu hata PHP kodundaki şifreyi veya herhangi bir bilgiyi değiştirdiğiniz (veritabanındaki gerçeğini değiştirmeden) takdirde oluşur.
Eğer sonunda “(using password: YES)” olan “Access denied” veya “Could not connect to database” mesajını görürseniz ilk yapmanız gereken veritabanı bilgilerini kontrol etmektir. Eksik veya yanlış olan biri kısım olabilir.

MySQL Sunucusuna Bağlanılamıyor/h3>​

Eğer MySQLi’de “Can’t connect to MySQL server on ‘server’ (110)” hatasını alırsanız bunun anlamı script’in sunucudan yanıt alamadığıdır. Bu, $servername olarak “localhost” yerine “sunucu” belirlediyseniz ve isim tanınmadıysa gerçekleşmektedir.​

PDO’da ise MySQL host’unun bulunamadığını belirten bilgilerle birlikte “Connection failed: SQLSTATE[Hy000] [2002]” gibi bir hata mesajı alırsınız. Bu hatayı da tıpkı MySQLi’deki hatayı çözdüğünüz gibi çözebilirsiniz.
Ve elbette, bir hata çözümlemedeki altın kuralı unutmamak oldukça önemlidir:
Bağlantıları görmek için lütfen Giriş Yap
.
Bu dosyayı script’in çalıştığı aynı klasörde bulabilirsiniz. Örneğin public_html içinde bir script çalıştırıyorsak, error_log dosyası aynı klasörde olacaktır.

Sonuç​

Bu rehberde veritabanları ve PHP Data Objects (PDO) ile MySQLi kullanarak PHP MySQL veritabanı bağlantısı nasıl yapılır öğrenmiş oldunuz.
Öğrendiklerinizi daha gelişmiş scriptlerde ve konfigürasyonlarda kullanabilirsiniz. Bir veritabanına bağlanmak onlarla çalışmaya başlamanın ilk ve en önemli adımıdır.

Uygulamada kullanacağımız veritabanı

Kod:
Veritabanı: kitaplik
Tablo: kitaplar
isbn    adi    yazari
944503382    Adım Adım Access 2000    X
881192131    Sabahın Körü    Y

baglan.php
 

<?php

$user = "root"; //veritabanı kullanıcı adı
$pwd = "1234"; //veritabanı şifresi
$host = "localhost"; //mysql server
$db = "kitaplik"; //veritabanı adı


$conn = mysql_connect($host,$user,$pwd) or die("MySQL sunucusuna baglanilamadi!!!".mysql_error());

mysql_select_db($db) or die("Veritabani secilemedi!!!".mysql_error());

?>
 
 
baglan.php dosyası, veritabanına bağlantının yapılmasını sağlayan blokları içeren dosyamızdır. böylece her sayfada bu kodları yeniden yazmak yerine sadece sayfaya dahil edeceğiz.

mysql_fetch_assoc

        mysql_fetch_assoc, mysql_query ile dönen sonuç kümesini işleyerek her satırı diziye aktarır. Dizi elemanlarının index anahtarları ise, sütun isimlerinden oluşur. Örnekte; ilk olarak bağlantı dosyamızı içeri aktarıyoruz. Hemen ardından kitaplar tablomuzdan isbn ve adi alanlarını seçiyoruz. Eğer sonuç kümesi boş değilse, her bir satır için while döngüsü ile mysql_fetch_assoc, bilgileri $oku isimli bir dizi oluşturup içerisinde depoluyor. Ardından verileri ekrana basarken bilgileri $oku['sutun_adi'] formatında çağırıyoruz. Eğer kayıt yoksa uyarıp en sonunda bağlantımızı kapatıyoruz.
 

<?php

require_once("./baglan.php");

$sonuc = mysql_query("select isbn,adi from kitaplar");

if(mysql_num_rows($sonuc)!=0)
{
    while($oku = mysql_fetch_assoc($sonuc))
    {
        echo "Kitap adi: ".$oku["adi"]."<br>Kitap ISBN: ".$oku["isbn"]."<br><br>";
        //echo $.oku["yazari"]; //bu satir hatalidir cunku sql sorgumuzda yazari alanini secmedik
    }
}else{
    echo "Hic kayit yok!";
}

mysql_close($conn);

?>
 

mysql_fetch_object();

        mysql_fetch_object, mysql_query ile dönen sonuç kümesini işleyerek her satırı oluşturulan nesneye sütun adıyla özellik şeklinde aktarır. Örnekte; ilk olarak bağlantı dosyamızı içeri aktarıyoruz. Hemen ardından kitaplar tablomuzdan isbn ve adi alanlarını seçiyoruz. Eğer sonuç kümesi boş değilse, her bir satır için while döngüsü ile mysql_fetch_object, bilgileri $oku isimli bir nesne oluşturup içerisinde depoluyor. Ardından verileri ekrana basarken bilgileri nesne yönelimli mantıkla $oku->sutun_adi formatında çağırıyoruz. Eğer kayıt yoksa uyarıp en sonunda bağlantımızı kapatıyoruz.

<?php

require_once("./baglan.php");

$sonuc = mysql_query("select isbn,adi from kitaplar");

if(mysql_num_rows($sonuc)!=0)
{
    while($oku = mysql_fetch_object($sonuc))
    {
        echo "Kitap adi: ".$oku->adi."<br>Kitap ISBN: ".$oku->isbn."<br><br>";
        //echo $.oku->yazari; //bu satir hatalidir cunku sql sorgumuzda yazari alanini secmedik
    }
}else{
    echo "Hic kayit yok!";
}

mysql_close($conn);

?>
 

mysql_fetch_row

        mysql_fetch_row, mysql_query ile dönen sonuç kümesini işleyerek her satırı diziye aktarır. Dizi elemanlarının index anahtarları, sorgudaki çekilme sıralarına göre sıfırdan başlayarak devam eder.Örnekte; ilk olarak bağlantı dosyamızı içeri aktarıyoruz. Hemen ardından kitaplar tablomuzdan isbn ve adi alanlarını seçiyoruz. Eğer sonuç kümesi boş değilse, her bir satır için while döngüsü ile mysql_fetch_row, bilgileri $oku isimli bir dizi oluşturup içerisinde depoluyor. Ardından verileri ekrana basarken bilgileri $oku[0] formatında çağırıyoruz. Eğer kayıt yoksa uyarıp en sonunda bağlantımızı kapatıyoruz.
Dikkat edilmesi gereken nokta, index numaralarıdır. Gördüğünüz gibi isbn sütunu ilk çekildiği için 0 index numarasını almıştır.

<?php

require_once("./baglan.php");

$sonuc = mysql_query("select isbn,adi from kitaplar");

if(mysql_num_rows($sonuc)!=0)
{
    while($oku = mysql_fetch_row($sonuc))
    {
        echo "Kitap adi: ".$oku[1]."<br>Kitap ISBN: ".$oku[0]."<br><br>";
        //echo $.oku[2]; //bu satir hatalidir cunku sql sorgumuzda üçüncü bir alan(yazari alanini) secmedik
    }
}else{
    echo "Hic kayit yok!";
}

mysql_close($conn);

?>

mysql_fetch_array()
 
        mysql_fetch_array, mysql_fetch_assoc ve mysql_fetch_row fonksiyonlarının birleştirilmiş hali olarak düşünülebilir. Kullanım sırasında aldığı ikinci parametre (MYSQL_ASSOC, MYSQL_NUM, MYSQL_BOTH) diziye erişim sırasında kullnacağınız index anahtarı tipini belirlemenizi sağlar.

<?php

require_once("./baglan.php");

$sonuc = mysql_query("select isbn,adi from kitaplar");

if(mysql_num_rows($sonuc)!=0)
{
    while($oku = mysql_fetch_array($sonuc,MYSQL_BOTH))
    {
        echo "Kitap adi: ".$oku[1]."<br>Kitap ISBN: ".$oku["isbn"]."<br><br>";
        //echo $.oku[2]; //bu satir hatalidir cunku sql sorgumuzda üçüncü bir alan(yazari alanini) secmedik
    }
}else{
    echo "Hic kayit yok!";
}

mysql_close($conn);

?>
 
 

MYSQL_ASSOC    Fonksiyon kullanımı mysql_fetch_assoc ile aynı olacaktır.Dizi elemanlarına sütun ismi ile ulaşılabilir
MYSQL_NUM    Fonksiyon kullanımı mysql_fetch_row ile aynı olacaktır.Dizi elemanlarına sütun numarası ile ulaşılabilir
MYSQL_BOTH    Dizi elemanlarına hem sütun adı hem sütun numarası ile ulaşılabilir

mysql_result()

        mysql_result, sql sorgusundan tek bir sütun içeriğini çeker. Örneğimizde sadece adi sütunu üzerinde işlem yapacağız. Sorgudan hemen sonra sonuç kümesinin satır sayısını $satir içerisine alıyoruz ve $basla değişkenini sıfıra eşitliyoruz. Ardından sonuç kümesi satır sayısı sıfıra eşit değilse(boş değilse), okunan satır sayısı toplam satır sayısına eşitlenene kadar dönecek bir döngü bloğu içerisinde mysql_result kullanıyoruz. İşlemlerin sonunda mysql bağlantısını kapatıyoruz.

 

<?php

require_once("./baglan.php");

$sonuc = mysql_query("select adi from kitaplar");
$satir = mysql_num_rows($sonuc);
$basla = 0;

if($satir!=0)
{
    while($basla<=$satir)
    {
        echo "Kitap adi: ".mysql_result($sonuc,$basla); //her satırdaki adi kolonu
        $basla++;
    }
}else{
    echo "Hic kayit yok!";
}

mysql_close($conn);

?>
Çok teşekkürler bilgi için zor gibi görünüyor fakat biraz uğraşınca yapılıyor
 
Üye
Katılım
25 Haz 2017
Mesajlar
18
Tepki puanı
0
Ödüller
7
Yaş
26
8 HİZMET YILI
Bilgiler için teşekkürler, biraz uğraştırdı ama olmayacak şey değil.
 
Onaylı Üye
Katılım
27 Nis 2023
Mesajlar
127
Çözümler
1
Tepki puanı
3
Ödüller
1
3 HİZMET YILI
Dostum çok sağol. Çok yardımcı oldun kod bilgim olmadan bir şeyleri başarabilmek beni mutlu ediyor.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst