Arkadaşlar eğitim videosu izlerken bu kodlarla karşılaştım, anladım ama anlamadım da; hani birisi açıklasa da daha iyi anlasam mesela? kodları yazıyorum;

function p($par, $st = false) {

if ($st) {

return htmlspecialchars (addslashes(trim($_POST[$par])));
}else {
return addslashes (trim($_POST[$par]));
}
}

function g($par) {
return strip_tags(trim(addslashes ($_GET[$par])));
}

şimdi post ve get methodlarını p ve p fonksiyonlarına atamış. (doğru anlamışım di mi?) anlamadığım şeyler ise $par ve $st değişkeni, $st değişkenine neden false atandığı.

Bizler mesela kod yazarken post ve get komutlarını bu fonksiyonlara mı atamalıyız? Bu yapılması gereken bir şey midir? Genel bir yaklaşım mıdır?

 

html tag temizleyici yapmaya çalışmış sanırım. böylece get ve posttan gelen html verileri süzgeçlemiş.

o "false" muhtemelen fonksiyonu çağırırken gönderilen "true" değeriyle değişiyordur yoksa orada "false" kullanmanın mantığı yok.

post ve geti istediğin yerde kullabilirsin. bu fonksiyonlar sadece güvenlik amacıyla yapılmış. yani gelen veri <div>Ali</div> olsa fonksiyona gönderildiğinde Ali değeri dönecektir.

varsa kodların tamamını görebilir miyiz?

gozyakansakiz

post edilen veriyi filtrelemiş.

hem arkadaşın dediği gibi html filtresinden geçirmiş, hem de mysql'e kayıt yaparken adına ne deniyordu hatırlamıyorum da, bir hack yöntemine karşı önlem almış.

filtre fonksiyonu yani.

edit: $st false atanmış. sebebi de şu: eğer sen, textarea'nda html karakterlerini kullanabilmek istersen, $st=true diyeceksin ve <p> <b> tagları arasına ya da <img tagları arasına alınmış verileri de, kaydedeceksin. kötü anlattım, ama örneğin tinymce gibi metin düzenleyicileri ile post edilen veriler için diyorum.

kamera motor

function p($par, $st = false)

la buradaki false atanmis falan degil.
p'yi cagiran kisi ikinci parametreyi vermezse st default olarak false varsayiliyor. Niye false verilir, eger get/posttan gelen parametreye guveniliyorsa veya html karakterlerinde bir problem yoksa bosuna ugrasmamak icindir heralde.

GET ve POST'larda gelen parametreleri temizlemek web programlamanin guvenlik temellerinden biridir. Sonucta bu parametreler kodun bir yerlerinde kullanilacagindan sikinti olabilir.
(bkz: xss)
(bkz: sql injection)

natnan

Aşağıdaki fonksiyon mantığını anlarsan aynıdır. Genellikle fonksiyonlarda parametreler bazen yollanmak istenilmez o zaman kendiliğinden bir değer vermek istersin. mesela php fonksiyonu trim($str)=>stringin başındaki sonundaki boşukları temizlerken,trim($str,'-')=>stringimizin başındaki sonundaki - değerini siler.

Aşağıda bt fonksiyonu adında kendimiz trim fonksiyonu oluşturalım;

function bt($str,$z = NULL)
{
if(!isset($z))
{
$str = trim($str);
}
else
{
$str = trim($str,$z);
}
return $str;
}

echo bt(' k ')."<br/>"; //boşlukları sil
echo bt('-k-','-'); // - sil

Görüldüğü gibi fonksiyonumuza 2. parametre verilmesi şart değil. 2. parametrede farklı bir işlem yaptırdık.

metalnotdead
1

mobil görünümden çık