Menjalankan PHP dalam PHP (eval)

Dalam pemrograman PHP, terdapat fungsi khusus untuk meng-eksekusi perintah PHP di dalam file PHP. Fungsi ini bernama eval. Jika anda masih bingung, biasanya tehnik ini diterapkan pada Web Shell. Untuk memudahkan user dalam menjalankan kode PHP, tanpa membuat ulang file PHP tersebut.

Input untuk eval itu sendiri dapat kita masukan langsung dalam file PHP, ataupun dari form HTML. Kegunaan fungsi ini adalah merubah input yang awalnya berupa String (huruf), menjadi script PHP yang akan diproses. Hal ini sangat diperlukan jika ingin meng-eksekusi PHP melalui form.

Berikut contoh sederhana dari form HTML untuk input PHP tersebut. Simpan dengan extensi HTML.

<html>
<head>
	<title>PHP Tag Script</title>
</head>
<body>
	<center><font face="calibri">
	<h1>Enter Your PHP Script</h1>
	<hr color="blue" width="50%">
	<form action="aksi.php" method="post">
		<!--<input type="text" name="input"><br>-->
		<p style="text-align:center;">
		<textarea style="padding: 3px; width: 500px; height: 200px;" name="input"></textarea>
		</p>
		<input type="submit" value="Execute!">
	</form>
	<br>
	Copyright @ www.almansyurin.web.id
</body>
</html>

Dari form tersebut, kita akan membutuhkan file PHP lagi yang akan memprosesnya.

<html>
<head>
	<title>PHP Tag Script</title>
</head>
<body>
	<center><font face=calibri>
	<h1>PHP Result Here</h1>
	<hr color=blue width=50%>
	<br>	
	<?php
		$script = (string)$_POST['input'];
		$code = $script . ';';
			
		eval($code);
	?>
	<br><br><br><br><font size=2>
	<b><u>Real Code Here :</u></b></font>
	<hr color=red width=50%>
	<p>
	<?php	
		echo $script;
	?>
	</p>
	Copyright @ www.almansyurin.web.id<br>
	<a href=input.php>[back]</a>
</body>
</html>

Simpan file PHP di atas dengan nama aksi.php, dan letakan pada directory web server yang sama.

Lewat form tersebut, anda dapat mengeksekusi syntax PHP apapun. Misalnya fungsi phpinfo() yang akan menampilkan informasi dari PHP.

2 thoughts on “Menjalankan PHP dalam PHP (eval)

Tinggalkan Balasan

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Ubah )

Twitter picture

You are commenting using your Twitter account. Log Out / Ubah )

Facebook photo

You are commenting using your Facebook account. Log Out / Ubah )

Connecting to %s