php nin özelliklerinden birisi php.ini de
magic_quotes_gpc = On
şeklinde ifade açık ise get post request ve cookie değişkenlerine addslashes işlemini otomatik uygulamasıdır.
Bu yerine göre istenmeyen bir özellik durumundadir.
Sırası ile php sayfalarında şu işlemler yapılarak bu sorun kökten çözülebilir.
bu addslashes işlemini php bu değişkenlerin tüm elemanlarına uyguladığı için. matris ve türevi dizi oluşabileceginden bu işlemi tersine alan stripslashes işlemini array_map ile kullanmak en pratik çözümdür.
Adım adım çözüme geçecek olursak;
tüm sayfalarda kullandığınız ayarlar.php config.php yada lib.php gibi bir dosyaya ilk önce aşağıdaki fonksiyonu dahil ettikten sonra
//Strip slashes islemleri
if (get_magic_quotes_gpc()) {
function stripslashes_deep($value)
{
$value = is_array($value) ?
array_map('stripslashes_deep', $value) :
stripslashes($value);
return $value;
}
$_POST = array_map('stripslashes_deep', $_POST);
$_GET = array_map('stripslashes_deep', $_GET);
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);
$_REQUEST = array_map('stripslashes_deep', $_REQUEST);
}veritabanı na giriş yada güncelleme yaptiginiz alanların değerlerini yazdirirken
mysql_real_escape_string
ifadesini kullanın
örnek olarak
$result = mysql_query("insert into tablo (alan) values('".mysql_real_escape_string($deger)."')");Böylelikle ömrünüz boyunca artik tek tırnak ve çift tırnak ile ilgili problem yaşamazsınız