PHP-HTML-CSS-JS(JQUERY) Orta Düzey Dersler

OxMaNiA

Katılımcı Üye
11 Şub 2013
704
0
#TR>.Corum

Merhaba Arkadaşlar bildiğiniz gibi eskiden başlangıç düzeyinde dersler vermiştim. Bu sefer orta derece dersler vereceğim, bu seferki anlatımlar biraz ihtiyaca göre olacak, yani resmi bir anlatım olmayacak.

Lafı çok uzatmadan başlayalım.

############# PHP ###############
1- PHP PDO Kullanımı {12.05.2016 23:25}
PDO nedir diye sorarsanız, PHP'nin geliştirdiği veritabanı bağlanma classıdır ve artık PHP veritaban bağlantıları için PDO'yu öneriyor.

PDO bağlanma kodlarını vereyim.
Kod:
<?
const SET_VERITABAN_ADI = "veritabaniadi";
const SET_VERITABAN_KULLANICIADI = "kullaniciadi"; 
const SET_VERITABAN_SIFRE = "sifre";
try {
    $dns = 'mysql:host=localhost;dbname='.SET_VERITABAN_ADI;
    $pdo = new PDO($dns, SET_VERITABAN_KULLANICIADI, SET_VERITABAN_SIFRE);
    $pdo->exec("SET NAMES 'utf8'");
    $pdo->exec("SET CHARACTER SET utf8");
    $pdo->exec("SET COLLATION_CONNECTION = 'utf8_turkish_ci'");
    $pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
} catch(PDOException $e){
    die('Bağlantı kurulamadı: ' . $e->getMessage());
}
?>

Ben kodların içinde türkçe karakter sorunu çıkmaması içinde bazı işlemler yaptım.

Ben o classı $pdo değişkeni üzerine aktardım. Yani tüm işlemlerimizi $pdo üzerinden yapacağız.

Şimdi veritabanı işlemleri için birçok yöntem var, query,exec, prepare vs. diye tabi ki bunlarında ayrıcalıkları var.

query ile işlem yaparsak, normal mysql bağlantısı gibi yapar.
exec silme,düzenleme komutları vs. şeyler içindir.

ha siz yinede kullanırım diyorsanız query'in kullanma yöntemini vereyim.

Kod:
// veri çek
$vt = $pdo->query("SELECT * FROM ayarlar WHERE id='1'");
$dt = $vt->fetch(PDO::FETCH_LAZY);
echo $dt->ayar;

Daha kısa işlem yapayım derseniz

Kod:
// veri çek
$vt = $pdo->query("SELECT * FROM ayarlar WHERE id='1'")->fetch(PDO::FETCH_LAZY)->ayar;
echo $vt;


şimdi orda gördüğünüz gibi PDO::FETCH_LAZY kısmındaki FETCH_LAZY alanında birsürü yöntemler var ama ben gereksiz detaylara girmeyeceğim, bunu tekli verilerde kullanmanız yeterli.

query komutunu önermiyorum.

PDO'yu gerçekten etkili kullanmak istiyorsak,

prepare,execute komutlarıyla kullanmalıyız.

Mesala ayarlar tablomuzdan veri çekiyoruz ama şart felan yok.

Kod:
$ayarlar = $pdo->prepare("SELECT * FROM ayarlar");
$ayarlar->execute();

bir değişkene prepare ile sql komutumuzu yazıp execute ile çağırmamız yeterlidir. Fakat biz buna WHERE ile şart koyduk diyelim.

Bunun içinde execute içinde array ile sql sorgusu içindeki veriye değer atamamız yeterlidir.

Örnek:
Kod:
$ayarlar = $pdo->prepare("SELECT * FROM ayarlar WHERE ayar = :ayar");
$ayarlar->execute(array(":ayar" => "1"));

Eğer verilerimizi listelemek istiyorsak, fetch ve fetchAll diye 2'ye ayırırız.

fetch -> tekli veriler içindir
fetchAll -> çoklu veri çekmek içindir.

ikisi içinde bir değişken atayıp çekme kodlarımızı yazmalıyız.

tekli çekim için - fetch
Kod:
$ayarlar_data = $ayarlar->fetch(PDO::FETCH_OBJ);

çoklu çekim için - fetchAll

Kod:
$ayarlar_data = $ayarlar->fetchAll(PDO::FETCH_OBJ);

Eğerki veri kontrolü sağlatmak istiyorsak

Kod:
if($ayarlar_data){
// veriler var
// listeleme kodları buraya
} else {
print "Hiç veri yok";
}

şeklinde kontrolüde sağlayabiliriz.

Değişkene atadıkda sonra bunlar içinden istediğimiz değerleri listeletelim.

tekli çekim için

$ayarlar_data->cekileceksutunadi;

şeklinde yapılabilir.

çoklu çekim için ise

foreach($ayarlar_data as $item) {
print $item->adsoyad;
}


gibi döngüye alabiliriz.


// silme düzenleme gibi işlemler için aynı şekildedir. Örneklerini vereyim zaten anlarsınız.


Silme örneği
Kod:
$kullanicisil = $pdo->prepare("DELETE FROM kullanicilar WHERE id = ?");
$kullanicisil->execute(array($id));
if($kullanicisil){
    print "kullanıcı silme başarılı";
} else {print "kullanici silme başarısız";}

Düzenleme örneği
Kod:
$kullaniciduzenle = $pdo->prepare("UPDATE kullanicilar SET adsoyad = ?, telefon = ? WHERE id = '$id'");
$kullaniciduzenle->execute(array("Mehmet ali", "****424"));

Burada gördüğünüz gibi ? (soru işareti) koydumuğuz zaman, orada belirtitiğimiz gibi değerlerin karşığını array içinde belirtebiliyoruz.


Veri Ekleme örneği
Kod:
$kullaniciekle = $pdo->prepare("INSERT INTO kullanicilar (adsoyad,telefon) VALUES (?,?)");
$kullaniciekle->execute(array("abbas", "05564"));


ve ayrıca listelettiğimiz verileri OBJ ile belirttiğimizde Class içinde kullanabiliyoruz.


PDO pek çok yerde karşınıza çıkmıştır. Artık dediğim gibi PHP'de artık PDO kullanmamızı öneriyor. PDO güvenlik açısından güçlü ve dinamiktir. SQL Injection vs. gibi önlemleri kendisi zaten alıyor ve mantıklı hatalar üretebiliyor.

Takıldığınız yerleri sorabilirsiniz.

#################################################

2- Toplu Dosya Silme Fonksiyonu {12.05.2016 23:30}

Bir projemde lazım olmuştu, bende toplu dosya silme fonksiyonu yazdım. Gerçekten lazım oluyor.

Kod:
function DosyalariSil($remove_adress, $file_names = array()){
    $dosyalar = array();
    foreach($file_names as $file){
        $dosyalar[] = $file;
    }
    foreach($dosyalar as $dos){
        $sil = $remove_adress.$dos;
        @chmod($sil, 0777);
        @unlink($sil);
    }
}

::KULLANIMI

Dosya adlarını array'a alalım.

$dosyalar = array("sil.jpg", "silme.jpg", "tht.png");


Şimdide fonksiyonumuzu kullanalım.

DosyalariSil("/gorseller/", $dosyalar);

Bazı sunucularda dosya yolunu bulamaz bunun için ********_ROOT getirirsek, yolun başına bu sorunu aşabiliriz.

DosyalariSil($_SERVER["********_ROOT"]."/gorseller/", $dosyalar);


******** olan yerler D O C U M E N T dir. (Boşlukları birleştirin.)


#################################################

3- Fonksiyon içinde dışardan bir değişken alma {12.05.2016 23:24}

Eminimki fonksiyon yazarken, pekçok defa karşılaşmışızdır. Fonksiyon içinde dışardan bir değişken kullanmak isteriz, fakat değişken onu algılamaz ve hata verir.

Bunun için global kullanmalıyız.

Örnek
Kod:
$siteadi = "TurkhackTeam";

function kullaniciadi($kk){
   global $siteadi;
    return $siteadi."-".$kk;
    
}

#################################################

4- İstediğimiz karakterden fazla olunca sonuna üç nokta ekleyen fonksiyon {12.05.2016 23:40}

Yine bir script yaparken lazım olmuştu. :) yine lazım olur diye sizle paylaşayım dedim.

KOD:
Kod:
function Kisalt($kacolunca, $veri){
    if(mb_strlen($veri, "UTF-8") <= $kacolunca){
        $sonuc = $veri;
    } else {
        $yeniDeger = mb_substr($veri, 0, $kacolunca - 3, 'UTF-8');
        $sonuc =  $yeniDeger."...";
    }
    return $sonuc;
}

::KULLANIMI

Kod:
$metin = "Çiçek abbas, abbas yolcunun oğlu, abbascı abbas";
print Kisalt(10, $metin);

Örnekde ilk bölüme 10 yazdım. Bu kaç karakter olunca üç nokta eklenecek, onu belirleyen bölüm. Diğer bölüm ise metini belirttiğimiz bölüm.

10 karaktere ulaşmazsa metini normal yazar.
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.