Tırnak işaretli içeriklerin MySQL e kaydedilememesi? PHP tırnak problemi?

Merhaba,

Her zaman karşılaşacağınız bir problem olmamakla birlikte yeni sql sürümlerinde bu problem oluşmamaktadır. Aslında yeni sürümlerde bu problemi yaşamamamızın sebebi de sql enjeksiyon yöntemlerinin önüne geçilmiş olması. 😉

Problem şu ki bir siteye yönetim panelinden haber ekleyeceksiniz.
Haberinizin başlığı : PHP’nin yeni versiyonu!

burda ki tek tırnak veri tabanına kayıt esnasında hata verecektir. İçeriğiniz kaydedilemeyecektir.

mysql_query("insert into haberler (id, baslik, icerik) values ('', 'PHP'nin yeni versiyonu', 'bla bla bla') ");

örnekte de gördüğünüz gibi içerik eklerden fazladan tek tırnak sql cümlemizin formatını bozdu.

Bunu aşmanın çok kolay bir yolu var.


$veri = "PHP'nin yeni versiyonu!";
echo addslashes($veri);


Ekran Çıktısı: “PHP\’nin yeni versiyonu! “

php’nin addslashes() fonksiyonu, yazımızda ki tek tırnakların önüne bölü işareti koyacak. Böylelikle veritabanı kaydında problem yaşamayacağız.

Bunun yanı sıra eğer içerikte ki bölü işaretlerini temizlemek isterseniz de, stripslashes() fonksiyonu yardımımıza koşuyor;


$veri = "PHP\'nin yeni versiyonu!";
echo stripslashes($veri);

Ekran Çıktısı : PHP’nin yeni versiyonu!

Güle güle kullanın, bol bol kod yazın…

Cihan.

6 Yorum

Filed under Fonksiyonlar

Php ile Beni Hatırla Yapımı? Cookie ( Çerezler )

Beni hatırla işlemini Cookie yani çerezlerle yapabiliriz. Çerezler gerektiğinde kullanmamız için istemci tarafında oluşturabildiğimiz dosyadır. Oluşturulan bu dosya içinde kullanıcı bilgileri, özel tercihler gibi ziyaretçiyi tanımamızı sağlayacak birçok bilgi saklanabilir.

Cookie atama işlemi setcookie() fonksiyonu ile yapılır.

Örnek Cookie tanımlaması :

setcookie("kullanici","1234",time()+3600);
echo $_COOKIE["kullanici"];

Ekran çıktısı :
1234

Bu şekilde kullanıcı özel verilerini tutarak daha sonra tanıyabiliriz.
Üstteki örnekte setcookie komutu ile kullanici isimli bir cookie oluşturduk. Cookie’nin değerini 1234 olarak tanımladık. Zaman aşımı olarak time() fonksiyonunu kullandık ve 3600 sn. yani 1 saat geçerli olacak şekilde belirttik.

Cookie’nin tanımlı olup olmadığını kontrol etmek için isset() fonksiyonunu kullanabilirsiniz.


if(isset($_COOKIE["kullanici"])){
echo "cookie tanımlanmış";
}else{
echo "cookie tanımlanmamış!";
}

Cookie silme işlemi için :

setcookie ("kullanici", "", time() - 3600);

kullanici isimli cookie’nin değerini boş olarak ayarladık ve -3600 ile geçerliliğini yitirmesini sağladık.

Yorum bırakın

Filed under Hazır Kod

Yazmak isteyen?

Merhaba,

Bu blog çok kapsamlı olmayan, basit kodları, hazır işlemleri anlatan, php dilini anlatan bir blog. Aslında biraz da basit bir referans bloğu. Herhangi bir çıkar beklemeden, daha sonra geriye dönüp ya bu kod nasıl yazılıyordu? ne işe yarıyordu? sorularına cevap olabilmesi için kuruldu, yazıldı, yazılıyor.

Yazmak isteyen arkadaşların bana ulaşmasını dilerim. chndkmn@hotmail.com

Saygılar.

Cihan

Yorum bırakın

Filed under Genel

Php ile bulunduğunuz sayfanın URL adresini almak

Php ile çalıştığınız sayfanın URL adresini almak için $_SERVER ön tanımlı değişkenlerden faydanalanacağız.

Site adresini almak için : örn : http://www.deneme.com

echo $_SERVER['SERVER_NAME'];

Adresten sonraki yolu ve dosya uzantılarını almak için : örn : /haberler/haber.php

echo $_SERVER['SCRIPT_NAME'];

Şimdi ise site adresinden sonraki dosya yolunu ve GET değerleri ile beraber alalım : örn : /haberler/haber.php?id=12

echo $_SERVER['REQUEST_URI'];

Tüm adresi bi defa da almak için : http://www.deneme.com/haberler/haber.php?id=12

echo $_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];

4 Yorum

Filed under Hazır Kod

PHP de bir tarihe gün ekleme veya çıkartma

Bugünün tarihine 2 gün eklersek yeni tarih kaç olur?

$bugun = date("Y-m-d");
$yenitarih = strtotime('1 day',strtotime($bugun));
$yenitarih = date('d/m/Y' ,$yenitarih );
echo $yenitarih;

Bugünün tarihinden 7 gün geriye gidersek?

$bugun = date("Y-m-d");
$yenitarih = strtotime('-7 day',strtotime($bugun));
$yenitarih = date('d/m/Y' ,$yenitarih );
echo $yenitarih;

9 Yorum

Filed under Fonksiyonlar, Hazır Kod

PHP ile iki tarih arasında ki farkı bulmak

 

Aşağıdaki fark_bul fonksiyonu ile kolayca iki tarih arasında ki günü hesaplayabilirsiniz.

 

<?php
function fark_bul ($tarih1,$tarih2)
{
/*
* İki Tarih Arasındaki Gün Sayısını Bulur
* Author: Raiden
*/

if (!preg_match("@\.@",$tarih1) || !preg_match("@\.@",$tarih2)) exit('Standart Format: 01.01.1970');

list($gun1,$ay1,$yil1) = explode('.',$tarih1);
list($gun2,$ay2,$yil2) = explode('.',$tarih2);

$tarih1_timestamp = mktime('0','0','0',$ay1,$gun1,$yil1);
$tarih2_timestamp = mktime('0','0','0',$ay2,$gun2,$yil2);

if ($tarih1_timestamp > $tarih2_timestamp)
{
$fark = ($tarih1_timestamp - $tarih2_timestamp) / 86400;

}

if ($tarih2_timestamp > $tarih1_timestamp)
{
$fark = ($tarih2_timestamp - $tarih1_timestamp) / 86400;
}

return $fark;
}

$f = fark_bul("01.04.2008","23.04.2008");
echo $f;

?>

1 Yorum

Filed under Fonksiyonlar, Hazır Kod

Veri Tipleri

PHP veri tipleri içerir. PHP’deki kod yapısına göre her türlü veriyi sadece bir kez deklare etmek ile kodun her yerinde kullanabilirsiniz. Veri tipleri ana olarak 8 tanedir:

1 – Boolean: En basit türdür. Bir mantıksal ifadenin sonucu TRUE veya FALSE olan bir doğruluk değeridir. Örneğin 0, “FALSE”, 0.0, “Elemansız Dize”, “Boş”, “NULL” FALSE(yanlış) verir.
2 – Integer (int): Tam sayılardır. – sonsuzluktan, + sonsuzluğa kadar olan her tam sayı yani ondalıksız sayı bir integerdir. Sayı oldukları için ” “,’ ‘,´ ´ içerisine konulmaları gerekmez. Örneğin -312, -1, 0, 4511, 2, 636626213 gibi…
3 – Float: Tüm Reel sayılar yani Gerçek Sayılar Float türüne mensuptur. – sonsuzluktan + sonsuzluğa kadar olan ondalık sayılar, rasyonel sayılar, irrasyonel sayıları içerir. Sayı oldukları için ” “,’ ‘, ´ ´ içine yazılmaları gerekmez. Örneğin -54233.3, -523.13125415, 0.0, 31.1, 4242.442, 2.222 gibidir.
4 – String (str): Tüm yazı cinslerini içerir. PHP’de string belirlerken mutlaka ama mutlaka ” “, ‘ ‘, ´ ´ işaretlerinden herhangi birinin içine koymak gerekir. Örnek olarak “Merhaba”, “Nasılsın?”, ‘PHP yazısıdır’, ´Bu bir string´ gibidir.
5 – Array: Dizidir. Yani birden çok değer barındır. PHP’de değerleri belirtirken $ad ifadesini kullanırız. Buna göre $ad[1], $ad[2] gibi ifadeler olabilir.
6 – Object (obj): Nesnelerdir. Class yani sınıf yazarken nesne tabanlı kullanılır.
7 – Resource: Kaynak tipidir. Veri tabanından gelen bilgilerin değişken olmasından kaynaklı bu tip ile kaydedilir.
8 – NULL: Tanımsız, deklare edilmemiş, Yok, Belirsiz, Geçersiz ifadelerdir. Eğer bir değişken ” “, ‘ ‘, ´ ´ ya da empty ise NULL değildir çünkü boş bir string olur. NULL ise hiç tanımlanmamış şeylerdir.

Yorum bırakın

Filed under Genel

Genel Kurulum Değerlendirmesi

Kuruluma başlamadan önce PHP’yi ne amaçla kullanacağınızı bilmeniz faydalı olur. Kullanım amaçları 3 bölümde incelenebilir:

  • Genel Ağ siteleri ve uygulamaları (Sunucu taraflı)
  • Komut satırı uygulamaları
  • Masaüstü uygulamaları

İlk ve en önemli amaç için üç şeye ihtiyacınız bulunmaktadır: PHP’nin kendisi, bir HTTP Sunucusu ve bir tarayıcı. Muhtemelen bir tarayıcınız zaten vardır. Kullanmakta olduğunuz işletim sistemine bağlı olarak bir HTTP Sunucunuz da olabilir (Linux ve MacOS üzerinde Apache, Windows üzerinde IIS gibi). Yoksa, bir firmadan site barındırma hizmeti alabilirsiniz. Böylece herşeyi kendiniz ayarlamak zorunda kalmazsınız. Sadece PHP betiklerinizi yazmakla ilgilenir ve onları kiraladığınız alana yükleyip tarayıcınızla sonuçları görürsünüz.

Sunucuyu ve PHP’yi kendiniz yapılandıracaksanız, PHP’yi sunucuya bağlamak için iki seçeneğiniz olacak. Bir çok sunucunun PHP için (SAPI de denilen) bir modülü vardır. Apache, Microsoft Internet Information Server, Netscape and iPlanet sunucuları bu tür sunuculardandır. Bir çok sunucunun da Microsoft modül arayüzü, ISAPI için desteği vardır (OmniHTTPd gibi). Eğer sunucunuzda PHP için modül desteği yoksa sunucunuz ne türde olursa olsun onu bir CGI veya FastCGI işlemcisi olarak kullanabilirsiniz. Yani, sunucuya gelen tüm PHP dosyası isteklerini işleme sokmak için PHP’nin CGI çalıştırılabilirini kullanmak üzere sunucunuzu yapılandırabilirsiniz.

PHP’yi komut satırı betikleri yazmak için kullanmayı düşünüyorsanız (özdevinimli olarak resim üreten veya komut satırından aktardığınız değiştirgelerle metin dosyalarını işleyen betikler gibi), bir komut satırı betik yorumlayıcısına ihtiyacınız var demektir. Bu durumda ne sunucuya ne de tarayıcıya ihtiyacınız olur.

PHP ile PHP-GTK eklentisini kullanarak masaüstü uygulamaları da yazabilirsiniz. Herhangi bir HTML çıktı üretilmediği için Genel Ağ sayfaları yazmaktan tamamen farklı bir yaklaşıma sahiptir. Bu araçlarla sadece pencereleri ve nesneleri yönetirsiniz. PHP-GTK, resmi PHP dağıtımlarıyla gelmez.

Bu noktadan itibaren belgede, daha çok Unix ve Windows üzerinde çalışan modüllü HTTP sunucuları ve CGI çalıştırılabilirlerinin yapılandırılması üzerinde durulacaktır. Ayrıca, komut satırı çalıştırılabiliri hakkında da bilgi bulabileceksiniz.

PHP’nin kaynak kodu ve Windows için çalıştırılabilir sürümleri » http://www.php.net/downloads.php adresinden temin edilebilir. Dağıtımları indirmek için yakınınızdaki » yansıları kullanmanızı öneririz.

Yorum bırakın

Filed under Ayarlar & Kurulum