删除文件甚至致命错误

时间:2015-10-09 09:18:17

标签: php

我正在尝试创建一个在线php编辑器。替代eval,我正在做

  
      
  1. 通过表单发布(以iframe作为目标)请求获取代码并将其保存在临时文件中
  2.   
  3. 包含该临时文件,因此代码被执行
  4.   
  5. 删除该临时文件
  6.   

CODE

<?php
session_start();
if(isset($_POST['winCode']))
{
  $data=$_POST['winCode'];
  $_SESSION['data']=$data; 
  // creating a $_SESSION['data'] ,so that
  // user can maximize the resultant iframe
}
file_put_contents(session_id()."_runphp.php",$_SESSION['data']);
include(session_id()."_runphp.php");//generate output
unlink(session_id()."_runphp.php");//delete temp file
?>

这很好用,但是当用户通过他的代码生成错误时..unlink不起作用.. 如果发生致命错误,我怎样才能设置unlink运行。

1 个答案:

答案 0 :(得分:1)

使用register_shutdown_function

点击链接http://php.net/manual/en/function.register-shutdown-function.php

register_shutdown_function( "shutdown_handler" );

function shutdown_handler() {
  // delete file here
}

注意:执行用户输入的代码不是一个好习惯。此系统将打开跨站点脚本攻击。