pastebin

Paste Search Dynamic
Recent pastes
controller
  1. <?php
  2. // by 1uffakind
  3. // ajax/controller.php
  4. //////////////////////////////////////////////////////////////////////////////////////////////////////////
  5.  
  6.  
  7.  
  8. define('BIM_AJAX_VERSION',"00.30");
  9.  
  10. //////////////////////////////////////////////////////////////////////////////////////////////////////////
  11.  
  12. require_once(dirname(__file__).'/../../cfg.php');
  13.  
  14.  
  15. util::do_log(__file__.'request',print_r($_POST,true));
  16.  
  17.  
  18. //////////////////////////////////////////////////////////////////////////////////////////////////////////
  19.  
  20. $user = new user();
  21.  
  22. //////////////////////////////////////////////////////////////////////////////////////////////////////////
  23.  
  24. // flush the buffer
  25. $buff = '';
  26.  
  27. $msg = '';
  28.  
  29.  
  30.  
  31. //////////////////////////////////////////////////////////////////////////////////////////////////////////
  32.  
  33. if ( array_key_exists('re',$_REQUEST) )
  34.         $ret_elem_id = preg_replace("/[^0-9a-zA-Z_-.[] ]/",'',(string)$_REQUEST['re']);
  35. else
  36.         $ret_elem_id = '';
  37.        
  38. if ( array_key_exists('ro',$_REQUEST) )
  39.         $ret_obj_name = preg_replace("/[^0-9a-zA-Z_-.[] ]/",'',(string)$_REQUEST['ro']);
  40. else
  41.         $ret_obj_name = '';
  42.        
  43. if ( array_key_exists('mode',$_REQUEST) )
  44.         $mode = preg_replace("/[^0-9a-zA-Z_-.[] ]/",'',(string)$_REQUEST['mode']);
  45. else
  46.         $mode = '';
  47.  
  48.  
  49. $db = new dbcomm();
  50.  
  51. /* ---- ---- */
  52.  
  53.  
  54.  
  55.  
  56. // cls = the class to actually instantiate in response to the request
  57. if ( array_key_exists('cls',$_REQUEST) )
  58.         $cls = preg_replace("/[^0-9a-z]/i","",(string)$_REQUEST['cls']);
  59. else
  60.         $cls = null;
  61.  
  62. // id/tbl/tbl_id of the request (adds would have id < 1)
  63. $args = array();
  64. if ( array_key_exists('id',$_REQUEST) )
  65.         $args['id'] = preg_replace("/[^0-9]/","",(string)$_REQUEST['id']);
  66. else
  67.         $args['id'] = '';
  68.  
  69. if ( array_key_exists('tbl',$_REQUEST) )
  70.         $args['tbl'] = preg_replace("/[^0-9a-z_-~]/i","",(string)$_REQUEST['tbl']);
  71. else
  72.         $args['tbl'] = '';
  73.        
  74. if ( array_key_exists('tbl_id',$_REQUEST) )
  75.         $args['tbl_id'] = preg_replace("/[^0-9]/i","",(string)$_REQUEST['tbl_id']);
  76. else
  77.         $args['tbl'] = '';
  78.        
  79. // is response a form or content-ish?
  80. if ( !array_key_exists('if',$_REQUEST) )
  81.         $isform = true;
  82. else
  83.         $isform = intval((string)$_REQUEST['if']);
  84. // $args['tif'] = $isform;
  85.  
  86. // if exists, only 'field' will be output instead of everything from requested record
  87. if ( array_key_exists('fld',$_REQUEST) )
  88. {       
  89.         $field = preg_replace("/[^0-9a-z_]/i","",(string)$_REQUEST['fld']);
  90.         $args['fld'] = $field;
  91. }
  92. else
  93. {
  94.         $field = '';
  95.         $args['fld'] = '';
  96. }
  97.  
  98. // uniqid if passed (used for targeting xml response nodes)
  99. if ( array_key_exists('uniqid',$_REQUEST) )
  100.         $args['uniqid'] = preg_replace("/[^0-9a-z_]/i","",(string)$_REQUEST['uniqid']);
  101. elseif ( $ret_elem_id != '' )
  102.         $args['uniqid'] = $ret_elem_id;
  103. else
  104.         $args['uniqid'] = null;
  105.  
  106.        
  107. // if you've got a class, and it exists, do it
  108. if ( $cls != "" && $cls != null && file_exists(dirname(__file__)."/../classes/class.$cls.php") && $cls::ajax_capable() == true ) {
  109.        
  110.         //BIMutilities::BIM_log(__FILE__.time().'true',print_r($GLOBALS,true).PHP_EOL.print_r($args,true).PHP_EOL.print_r($user,true),true);
  111.        
  112.        
  113.        
  114.         // if it's a user action, you already have the object...
  115.         if ( $cls == 'user' || $cls == 'useredit' )
  116.         {       
  117.                 if ( $user->logged_in() )
  118.                 {
  119.                         // probably should pass a nonce or something...
  120.                         // ?cls=user|useredit&uview=foobar&uviewis=1
  121.                         if ( array_key_exists('uview',$_REQUEST) )
  122.                         {       
  123.                                 // is it a view change request?
  124.                                 $args['key'] = preg_replace("/[^0-9a-z_.-~]/i","",(string)$_REQUEST['uview']);
  125.                                 $args['val'] = preg_replace("/[^0-9a-z_.-~{}:.][]/i","",(string)$_REQUEST['uviewis']);
  126.                                 if ( $args['uview_key'] !== '' )
  127.                                 {
  128.                                         $user->set_view($args['key'],$args['val']);
  129.                                         // technically, views should be saved on shutdown
  130.                                         $user->save_views();
  131.                                         ; // $stat = "true";
  132.                                 }
  133.                                 else
  134.                                         ; // $stat = "false";
  135.                         }
  136.                        
  137.                         // was it something else?
  138.                         if ( 0 )
  139.                         {
  140.                                
  141.                         }
  142.                
  143.                 } // if logged in
  144.                
  145.                 $stat = "true";
  146.                
  147.         }
  148.         else {
  149.                
  150.                 $obj = new $cls($args,$user);
  151.                        
  152.                 if ( $mode == 'edit' )
  153.                 {
  154.                
  155.                         // maybe pass field in the args?
  156.                        
  157.                         if ( $isform > 0 )
  158.                         { // && $user->get_ulevel() >= user::ULEVEDITOR
  159.                                 if ( $field !== "" )
  160.                                         $buff = $obj->get_form_field_html(array('isdiv'=>false,'uniqid'=>$args['uniqid'],'fld'=>$field),$user);
  161.                                 else
  162.                                         $buff = $obj->get_form_html(array('isdiv'=>false,'uniqid'=>$args['uniqid']),$user);
  163.                         } else {
  164.                                 if ( $field !== "" )
  165.                                         $buff = $obj->get_field_html(array('isdiv'=>false,'uniqid'=>$args['uniqid'],'fld'=>$field),$user);
  166.                                 else
  167.                                         $buff = $obj->get_html(array('isdiv'=>false,'uniqid'=>$args['uniqid']),$user);
  168.                         }
  169.                        
  170.                 }
  171.                 elseif ( $mode == '' || $mode == 'content' )
  172.                 {
  173.                
  174.                         // maybe pass field in the args?
  175.                         if ( $field !== "" )
  176.                                 $buff = $obj->get_field_html(array('isdiv'=>false,'uniqid'=>$args['uniqid'],'fld'=>$field),$user);
  177.                         else
  178.                                 $buff = $obj->get_html(array('isdiv'=>false,'uniqid'=>$args['uniqid']),$user);
  179.                        
  180.                 }
  181.                
  182.                 $stat = "true";
  183.                
  184.         }
  185.        
  186. } else {
  187.        
  188.         // lib::msg_add(lang::get('ajax_class_notfound'));
  189.         $stat = "false";
  190.         util::do_log(__file__.time().'ajax_class_notfound','class: '.$cls.PHP_EOL.PHP_EOL.print_r($GLOBALS),true);
  191. }
  192.  
  193.  
  194.  
  195.  
  196. /*****/
  197.  
  198.  
  199. $json = array(
  200.         'time'=>date('r',time())
  201.         ,'mode'=>$mode
  202.         ,'re'=>$ret_elem_id
  203.         ,'ro'=>$ret_obj_name
  204.         ,'data'=>$buff
  205.         ,'msg'=>$msg
  206.         ,'enddata'=>true
  207. );
  208.  
  209. util::do_log( __file__.' json',print_r($json,true) );
  210.  
  211. /* ---- ---- */
  212.  
  213. echo json_encode($json);
  214.  
  215. util::do_log( __file__.' json enc',json_encode($json) );
  216.  
  217. //util::do_log(__FILE__,print_r($json,true));
  218.  
  219.  
  220. //////////////////////////////////////////////////////////////////////////////////////////////////////////
  221. lib::shutdown($user);
  222.  
  223.  
  224.  
  225. ?>
Parsed in 0.136 seconds