Kaan Kozan tarafından 14 Mart 2021 tarihinde yazılmıştır.
Merhabalar, bugün sizlerle URL Fonksiyonları'nın kullanımını ve PHP'de nasıl oluşturulduğunu göreceğiz.
Uniform Resource Loader Ne Anlama Gelir?
URL Terimi tarayıcıda site adresinin belirtilmesi için kullanılan Resource Loader olarak tanımlanabilir. URL, farklı yöntemler ile oluşturulur. Kaynak sitede link (adres) belirtir.Kısaca URL oluşturmak için kullanılan temel kurallar;
1) Değişken içerisindeki değerler kısaca '-_.' hariç sayısal olmayan bütün karakterler yüzde (%) olarak,
2) Boşluklar ise artı (+) olarak değişime uğrar,
3) On altılık rakamlar sistem üzerinde etkilidir.
HTML Form Encoded Kullanımı
application/x-www-form-urlencoded >> enctype URL Kod Form
Kod:
<form action="/urlencoded?firstname=pwn&lastname=sloth" method="POST" enctype="application/x-www-form-urlencoded">
<input type="text" name="username" value="pwnlab.me"/>
<input type="text" name="password" value="pwnlab.me"/>
<input type="submit" value="Submit" />
</form>
Ayrıca verilerimiz için method'u POST olarak ayarladım. (Local Host için çok önemli değildir.)
Aynı zamanda enctype olarak application/x-www-form-urlencoded kullanarak file içerisinde entype türünü ayarladık.
urlencoded?firstname=sid&lastname=sloth
Sorgu için parametrelerimizi URL'de üste bulunan şekilde ayarlandı. Bu bizim kodumuzda form action kısmında belirttiğimiz kısımdır.
Sonuç olarak kod betiğimiz aşağıdaki şekilde.
File kısmında kodlarımızı anlatılan şekilde ayarladıktan sonra, Dev Tools aracılığıyla Network-Request-Headers kısmından Content Type incelenebilir.
HTML Form bu sayede application/x-www-form-urlencoded olarak URL Encoded şekilde incelenebilir. URL Encode bize + - %20 (-) gibi operatörler ve url encode bilgileri sağlıyor.
HTML Multipart Form Encoded Kullanımı
multipart/form-data >> Enctype Multipart Forms
Kod:
<!DOCTYPE html>
<html>
<head>
<title>pwnlab.me - URL</title>
</head>
<body>
<form action="/urlencoded?firstname=pwn&lastname=sloth" method="POST" enctype="multipart/form-data">
<input type="text" name="username" value="pwnlab.me"/>
<input type="text" name="password" value="pwnlab.me"/> <input type="submit" value="Submit" /> </form>
</body>
</html>
Biz application/x-www-form-urlencoded formlar'da kullandığımız kod betiği ile üzerinden gideceğiz. Sadece entype türünü multipart/form-data olarak değiştirerek inceleyebiliriz.
Herhangi bir editör ve server aracılığı ile aynı işlemi yapabiliriz. Tüm bu işlemlerden sonra ben yine locolhost kullanacağım.
Aşağıdaki şekilde Dev Tools aracılığı ile Network-Request-Headers kısmından Content Type inceleyebiliriz.
Görebileceğiniz üzere Content-Type'da istediğimize ulaşabildik.
Content-Disposition
Yukarıdaki betik ile Multipart Form Boundary üzerinde edit yapabiliriz.
PHP Üzerinde URL Encoding - URL Fonksiyonları Kullanımı
Konumuzun üst kısmında HTML içerisinde Form'larda nasıl URL Encoding yapılacağını gördük.
Şimdi ise PHP'de URL Encoding nasıl yapılıyor bunu görelim. Bunun için bir PHP Dosyası oluşturarak, fonksiyonlar üzerinden tanımamız gereklidir.
urlencode() Fonksiyonu ve Kullanımı
GET methodu yardımıyla gönderdiğimiz veriler bize otomize olarak urlencode() ile dönmektedir. URL Encoding işleminden bahsetmiştik bu yüzden direkt kullanımına ve anlatımına geçebiliriz.Aşağıda basit bir kullanımı ile anlamak kolay. En basit yöntemi ile urlencode() aşağıdaki şekilde kullanılabilir.
Kod:
<?php
$pwnlab = "Pwnlab ME URL Encode";
echo urlencode($pwnlab);
?>
Aynı şekilde kodun localhost üzerinde çıktısı;
Şeklinde olacaktır. Bahsettiğimiz operatörler aracılığıyla urlencode() fonksiyonumuz değeri işleme aldı.
base64_encode() Fonksiyonu ve Kullanımı
Belirtilen veriye URL üzerinde Base64 kodlaması, şifrelemesi uygulanmasını sağlar ve normal veriden daha fazla yer kaplar. Belirli sebeplerle URL üzerinde veride gizleme yapılmak istenebilir. Bu durumda base64_encode() fonksiyonu kullanılır. (Example: input ve footer)
Kod:
<?php
$pwnlab = 'Pwnlab';
$base64_encode = base64_encode($pwnlab);
echo $base64_encode;
?>
Ayrıca localhost ile bahsedilen çıktıyı görüntülersek;
UHdubGFi şeklinde bir çıktı alacağız. Bu değer bizim $pwnlab değişkenimizin base64_encode() fonksiyonu ile harmanlanmış halidir.
get_headers() Fonksiyonu ve Kullanımı
Gönderilen istekle tüm Headers değerlerini, başlıkları çıktı olarak görüntülememizi sağlar.Kullanmak için aşağıdaki kod betiğini basit şekilde deneyebiliriz.
Kod:
<?php
$pwnlab = 'https://pwnlab.me/';
echo "<pre>";
print_r(get_headers($pwnlab));
?>
Kodumuz üsteki şekilde editöre aktarılmalıdır.
Aynı zamanda çıktımız ise aşağıdaki şekilde olacaktır.
get_meta_tags() Fonksiyonu ve Kullanımı
URL'de HTML için <head></head> tag'ının arasında bulunmakta olan meta verilerini get_meta_tags() fonksiyonu sayesinde elde edebiliriz.
Kod:
<?php
$pwnlab = get_meta_tags('https://pwnlab.me/');
echo "<pre>";
print_r($pwnlab);
?>
Aynı şekilde localhost üzerinden görüntülenmesi de aşağıdaki şekilde sağlanabilir.
http_build_query() Fonksiyonu ve Kullanımı
Bir dizi oluşturarak basit şekilde http_build_query() sayesinde belirtilen niteliklerde arama, sorgu yapabiliriz.Aşağıdaki kullanım ile gösterilebilir.
PHP Üzerinde URL Fonksiyonlarımızı gördük. PHP ve HTML'de URL İşlemleri temel olarak anlatılan şekilde işliyor. Basit mantıklarla anlatımı kolaylaştırmaya çalıştık. Siz kullanım yaparken kendi projelerinize uygulayabilirsiniz.
JavaScript URL Encoding İşlemleri ve Kullanımı
PHP ve HTML üzerinde olduğu gibi JavaScript'de de URL Encode mekanizmaları vardır. Bu kullanımı ben;Sitesinden örnek alarak yapacağım. Bu konuda daha detaylı bilgi için sizlerde göz atabilirsiniz.JavaScript encodeURI() Method
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.www.w3schools.com
Kod:
<!DOCTYPE html>
<html>
<body>
<p>Click the button to encode a URI.</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
<script>
function myFunction() {
var uri = "my test.asp?name=ståle&car=saab";
var res = encodeURI(uri);
document.getElementById("demo").innerHTML = res;
}
</script>
</body>
</html>
Ayrıca aşağıdaki şekilde localhost üzerinden sonuç olarak çıktıya da bakabiliriz.
URL Encode ve URL Fonksiyonları hakkında anlatacaklarım buraya kadardı, okuduğunuz için teşekkürler. Esenlikler diliyorum.