Menggunakan Fungsi Url Encode PHP untuk membuat String lebih aman untuk Browser Server dan Google

Penulis : Ade Suryadi | 19 September 2021
Menggunakan Fungsi Url Encode PHP untuk membuat String lebih aman untuk Browser Server dan Google

URL ENCODE PHP

Pernahkah kalian melihat deretan URL yang terdapat symbol %20 atau misalnya seperti ini lokerbumiayu.id/artikel/fungsi%20url%20encode%20php. Yah! Inilah salah satu Function yang disediakan oleh PHP untuk menjadikan sebuah Url User Friendly bagi Browser atau Server. Adanya Fungsi url encode ini menjadikan string string seperti symbol akan di ubah ke dalam string yang lebih aman ditampilkan di Url Browser atau server. Contohnya Ketika ada symbol = di bagian url kalau anda memakai Codeigniter 3.11 mungkin karakter ini tidak diizinkan kecuali anda merubah settingan terlebih dahulu. Nah, dengan menggunakan Url Encode maka string akan lebih ramah terhadap browser, server dan juga SEO Friendy bagi Google, Bing atau Search Engine lainnya.

Penggunaan Fungsi Url Encode ini sangat mudah dan support mulai dari PHP 4, PHP 5, PHP 7, PHP 8 jadi Ketika anda memakai PHP maka Fungsi Url Encode sudah Include di dalamnya dan anda tidak bisa membuat fungsi yang sama dengan nama urlencode karena ini akan mengakibatkan error atau duplicate function. Secara umum dilansir dari situs resmi php.net penggunaan Fungsi Url Encode memiliki struktur sebagai berikut:

Deskripsi Penggunaan

urlencode(string $string): string

This function is convenient when encoding a string to be used in a query part of a URL, as a convenient way to pass variables to the next page.

Parameters

string

The string to be encoded.

Jika melihat Struktur penulisan Url Encode diatas, penggunaannya sangat simple dan mudah, anda hanya perlu menggunakan fungsi urlencode() dan isi bagian di dalam kurung dengan string yang akan di encode.

Misalnya anda ingin membuat url encode pada format url

$string = “Cara Membuat Url Encode dengan php”;

$encodestring = urlencode($string);

$url = https://www.lokerbumiayu.id/artikel/ . $encodestring

Maka hasilnya:

https://www.lokerbumiayu.id/artikel/cara%20membuat%20url%20encode%20dengan%20php

dan hadil dari penggunaan url encode ini dapat mempermudah Search engine memahami karakter di dalam sebuat url.

Function urlencode() digunakan untuk mengkonvert karakter atau string ke dalam bentuk format karakter URL yang valid contoh lain seperti ini

Halaman1

<?php
   echo "<a href='hal2.php?param=hello world!@#$%^&*()_+'>Klik di sini</a>";
?>

Ketika script diatas diterapkan dan anda mengklik link klik di sini maka akan pindah ke hal2.php

Halaman2

<?php
   $value = $_GET['param'];
   echo "Nilai parameter: ".$value;
?>

Di dalam script hal1.php di atas terdapat hyperlink yang diarahkan ke URL ‘hal2.php?param=hello world!@#$%^&*()_+‘. yang mana URL tersebut terdapat sebuah parameter. Selanjutnya di script hal2.php, nantinya nilai parameter tersebut akan dibaca kemudian ditampilkan.

apa yang terjadi ketika link yang ada di hal1.php tersebut diklik? Perhatikan tampilan di bawah ini

Ternyata tidak semua karakter dalam parameternya terbaca di script hal2.php. Dalam hal ini, karakter yang tidak terbaca adalah ‘#$%^&*()_+‘. Mengapa bisa demikian? Ya.. karena karakter tersebut dianggap bukan karakter yang valid untuk sebuah URL. Lantas, bagaimana solusinya jika kita ingin mempassing nilai parameter yang terdiri dari karakter-karakter tersebut melalui GET request atau melalui URL? Ya… caranya dengan mengkonvert karakter parameter URL dengan urlencode(). Sekarang kita modifikasi script hal1.php nya dengan menambahkan urlencode() di parameter URL nya.

Halaman1

<?php
   echo "<a href='hal2.php?param=".urlencode('hello world!@#$%^&*()_+')."'>Klik di sini</a>";
?>

dan setelah link yang ada tersebut diklik hasilnya adalah seperti pada gambar berikut

Dengan function urlencode() tersebut, nilai parameter ‘hello world!@#$%^&*()_+‘ dikonvert menjadi ‘hello+world!%40%23%24%25^%26*()_%2B‘. Perhatikan, bahwa beberapa karakter diubah menjadi karakter lain yang berupa tanda % diikuti dengan kode hexadecimal, salah satu contohnya: karakter @ diubah menjadi %40.

Selanjutnya saya berikan contoh lain penerapan penggunaan urlencode() ini, yaitu pada proses passing parameter berupa nomor HP melalui URL. Nomor HP bisa memiliki format +628XXXXXXXX (disertai kode negara). Sekarang misalkan kita punya script berikut ini:

Halaman1

<?php
   echo "<a href='hal2.php?nohp=+628123456789'>Klik di sini</a>";
?>

Halaman2

<?php
   $value = $_GET['nohp'];
   echo "Nomor HP: ".$value;
?>

Apabila link yang ada di hal1.php diklik, maka tanda + yang terletak di depan nomor HP tersebut tidak akan terbaca di hal2.php nya

Sehingga untuk solusi kasus di atas, kita kembali bisa menggunakan urlencode()

Sehingga karakter + tetap dapat dibaca dihalaman 2.

Setelah penjelasan urlencode diatas, Kita pahami lebih dalam lagi tentang url encode, namun sebelumnya kita liat dulu ap aitu URL

URL - Uniform Resource Locator

Browser web seperti google chrome, mozilla, Opera, dll meminta halaman dari server web dengan menggunakan URL.

URL adalah alamat halaman web, seperti: https://www.lokerbumiayu.id.

Pengodean URL (Url Encode) atau bisa disebut Percent Encoding (Pengodean Persen)

Pengkodean URL mengubah karakter menjadi format yang dapat ditransmisikan melalui Internet. URL hanya dapat dikirim melalui Internet menggunakan set karakter ASCII. Karena URL sering kali berisi karakter di luar kumpulan ASCII, URL harus diubah menjadi format ASCII yang valid. Pengkodean URL menggantikan karakter ASCII yang tidak aman dengan "%" diikuti oleh dua digit heksadesimal. URL tidak boleh berisi spasi. Pengkodean URL biasanya menggantikan spasi dengan tanda plus (+) atau dengan %20 seperti yang sudah saya bahas diatas.

Misalnya ada String Hello Günter

Perhatikan bahwa karakter u bukan menggunakan karakter u biasa. String diatas jika diterapkan urlencode() maka hasilnya seperti ini

text=Hello+G%C3%BCnter

Melihat penjelasan dari W3school karakter ACII ini memiliki format encode berbeda beda dapat dilihat pada table dibawah ini

ASCII Encoding Reference

Your browser will encode input, according to the character-set used in your page.

The default character-set in HTML5 is UTF-8.

Character

From Windows-1252

From UTF-8

space

20%

20%

!

21%

21%

"

22%

22%

#

23%

23%

$

24%

24%

%

25%

25%

&

26%

26%

'

27%

27%

(

28%

28%

)

29%

29%

*

%2A

%2A

+

%2B

%2B

,

%2C

%2C

-

%2D

%2D

.

%2E

%2E

/

%2F

%2F

0

30%

30%

1

31%

31%

2

32%

32%

3

33%

33%

4

34%

34%

5

35%

35%

6

36%

36%

7

37%

37%

8

38%

38%

9

39%

39%

:

%3A

%3A

;

%3B

%3B

<

%3C

%3C

=

%3D

%3D

>

%3E

%3E

?

%3F

%3F

@

40%

40%

A

41%

41%

B

42%

42%

C

43%

43%

D

44%

44%

E

45%

45%

F

46%

46%

G

47%

47%

H

48%

48%

I

49%

49%

J

%4A

%4A

K

%4B

%4B

L

%4C

%4C

M

%4D

%4D

N

%4E

%4E

O

%4F

%4F

P

50%

50%

Q

51%

51%

R

52%

52%

S

53%

53%

T

54%

54%

U

55%

55%

V

56%

56%

W

57%

57%

X

58%

58%

Y

59%

59%

Z

%5A

%5A

[

%5B

%5B

\

%5C

%5C

]

%5D

%5D

^

%5E

%5E

_

%5F

%5F

`

60%

60%

a

61%

61%

b

62%

62%

c

63%

63%

d

64%

64%

e

65%

65%

f

66%

66%

g

67%

67%

h

68%

68%

i

69%

69%

j

%6A

%6A

k

%6B

%6B

l

%6C

%6C

m

%6D

%6D

n

%6E

%6E

o

%6F

%6F

p

70%

70%

q

71%

71%

r

72%

72%

s

73%

73%

t

74%

74%

u

75%

75%

v

76%

76%

w

77%

77%

x

78%

78%

y

79%

79%

z

%7A

%7A

{

%7B

%7B

|

%7C

%7C

}

%7D

%7D

~

%7E

%7E

 

%7F

%7F

`

80%

%E2%82%AC



81%

81%

‚

82%

%E2%80%9A

ƒ

83%

%C6%92

„

84%

%E2%80%9E

…

85%

%E2%80%A6

†

86%

%E2%80%A0

‡

87%

%E2%80%A1

ˆ

88%

%CB%86

‰

89%

%E2%80%B0

Š

%8A

%C5%A0

‹

%8B

%E2%80%B9

Œ

%8C

%C5%92



%8D

%C5%8D

Ž

%8E

%C5%BD



%8F

%8F



90%

%C2%90

‘

91%

%E2%80%98

’

92%

%E2%80%99

“

93%

%E2%80%9C

”

94%

%E2%80%9D

•

95%

%E2%80%A2

–

96%

%E2%80%93

—

97%

%E2%80%94

˜

98%

%CB%9C

™

99%

%E2%84

š

%9A

%C5%A1

›

%9B

%E2%80

œ

%9C

%C5%93



%9D

%9D

ž

%9E

%C5%BE

Ÿ

%9F

%C5%B8

 

%A0

%C2%A0

¡

%A1

%C2%A1

¢

%A2

%C2%A2

£

%A3

%C2%A3

¤

%A4

%C2%A4

¥

%A5

%C2%A5

¦

%A6

%C2%A6

§

%A7

%C2%A7

¨

%A8

%C2%A8

©

%A9

%C2%A9

ª

%AA

%C2%AA

«

%AB

%C2%AB

¬

%AC

%C2%AC

­

%AD

%C2%AD

®

%AE

%C2%AE

¯

%AF

%C2%AF

°

%B0

%C2%B0

±

%B1

%C2%B1

²

%B2

%C2%B2

³

%B3

%C2%B3

´

%B4

%C2%B4

µ

%B5

%C2%B5

%B6

%C2%B6

·

%B7

%C2%B7

¸

%B8

%C2%B8

¹

%B9

%C2%B9

º

%BA

%C2%BA

»

%BB

%C2%BB

¼

%BC

%C2%BC

½

%BD

%C2%BD

¾

%BE

%C2%BE

¿

%BF

%C2%BF

À

%C0

%C3%80

Á

%C1

%C3%81

Â

%C2

%C3%82

Ã

%C3

%C3%83

Ä

%C4

%C3%84

Å

%C5

%C3%85

Æ

%C6

%C3%86

Ç

%C7

%C3%87

È

%C8

%C3%88

É

%C9

%C3%89

Ê

%CA

%C3%8A

Ë

%CB

%C3%8B

Ì

%CC

%C3%8C

Í

%CD

%C3%8D

Î

%CE

%C3%8E

Ï

%CF

%C3%8F

Ð

%D0

%C3%90

Ñ

%D1

%C3%91

Ò

%D2

%C3%92

Ó

%D3

%C3%93

Ô

%D4

%C3%94

Õ

%D5

%C3%95

Ö

%D6

%C3%96

×

%D7

%C3%97

Ø

%D8

%C3%98

Ù

%D9

%C3%99

Ú

%DA

%C3%9A

Û

%DB

%C3%9B

Ü

%DC

%C3%9C

Ý

%DD

%C3%9D

Þ

%DE

%C3%9E

ß

%DF

%C3%9F

à

%E0

%C3%A0

á

%E1

%C3%A1

â

%E2

%C3%A2

ã

%E3

%C3%A3

ä

%E4

%C3%A4

å

%E5

%C3%A5

æ

%E6

%C3%A6

ç

%E7

%C3%A7

è

%E8

%C3%A8

é

%E9

%C3%A9

ê

%EA

%C3%AA

ë

%EB

%C3%AB

ì

%EC

%C3%AC

í

%ED

%C3%AD

î

%EE

%C3%AE

ï

%EF

%C3%AF

ð

%F0

%C3%B0

ñ

%F1

%C3%B1

ò

%F2

%C3%B2

ó

%F3

%C3%B3

ô

%F4

%C3%B4

õ

%F5

%C3%B5

ö

%F6

%C3%B6

÷

%F7

%C3%B7

ø

%F8

%C3%B8

ù

%F9

%C3%B9

ú

%FA

%C3%BA

û

%FB

%C3%BB

ü

%FC

%C3%BC

ý

%FD

%C3%BD

þ

%FE

%C3%BE

ÿ

%FF

%C3%BF

URL Encoding Reference

The ASCII control characters %00-%1F were originally designed to control hardware devices.

Control characters have nothing to do inside a URL.

ASCII Character

Description

URL-encoding

NUL

null character

0%

SOH

start of header

1%

STX

start of text

2%

ETX

end of text

3%

EOT

end of transmission

4%

ENQ

enquiry

5%

ACK

acknowledge

6%

BEL

bell (ring)

7%

BS

backspace

8%

HT

horizontal tab

9%

LF

line feed

%0A

VT

vertical tab

%0B

FF

form feed

%0C

CR

carriage return

%0D

SO

shift out

%0E

SI

shift in

%0F

DLE

data link escape

10%

DC1

device control 1

11%

DC2

device control 2

12%

DC3

device control 3

13%

DC4

device control 4

14%

NAK

negative acknowledge

15%

SYN

synchronize

16%

ETB

end transmission block

17%

CAN

cancel

18%

EM

end of medium

19%

SUB

substitute

%1A

ESC

escape

%1B

FS

file separator

%1C

GS

group separator

%1D

RS

record separator

%1E

US

unit separator

%1F

Sumber :

https://www.php.net/manual/en/function.urlencode.php

https://www.w3schools.com/tags/ref_urlencode.ASP

https://blog.rosihanari.net/manfaat-function-urlencode-di-php/

Lowongan Kerja hari ini