Написал скорее всего еще один велосипед, но тщательно разобрав и поняв как правильно, можно чему-то научиться.
С этой целью и пишу сюда.
Мне нужен был функционал комманд c поддержкой ajax.
Т.е. отправляешь скрипту запрос с параметром command, скрипт ее выполяет и возвращяет результат.
Оформил я это так:
PHP:
скопировать код в буфер обмена
class AppCommands{ private $prefix; function __construct($prefix = 'command'){ $this->prefix = $prefix; } public function run_command ($command, $data = array()){ $command = $this->set_command_name($command); $command_result = false; $command_result = $command($data); return $command_result; } public function response($data, $ajax = true, $url = null){ $_SESSION['command_response'] = $data; $url = $_SERVER['HTTP_REFERER']; if($url != $_SERVER['SCRIPT_URI']) } private function set_command_name($command){ if(!preg_match('/^'.$this->prefix.'_./',$command)) $command = $this->prefix.'_'.$command; return $command; } } $ac = new AppCommands(); if(isset($_POST['command'])){ echo 'command'; $command_result = $ac->run_command($_POST['command'], $_POST); $is_ajax = filter_input(INPUT_POST , 'ajax', FILTER_VALIDATE_BOOLEAN ); $ac->response($command_result, $is_ajax); } /* Пример комманды */ function command_login($data){ $login = $data['login']; $password = $data['password']; if($login == 'Vasya' && md5($password) == md5('12345')){ $_SESSION['user'] = 'Vasya'; return 'logged'; } return 'login error'; }
Прошу поведать мне обо всем, что касается этого скрипта.
Спасибо
|