За последние 24 часа нас посетили 19309 программистов и 1605 роботов. Сейчас ищет 851 программист ...

PHP консоль для сайта

Тема в разделе "JavaScript и AJAX", создана пользователем elagin91, 13 дек 2011.

  1. elagin91

    elagin91 Активный пользователь

    С нами с:
    14 ноя 2011
    Сообщения:
    40
    Симпатии:
    0
    Я тут решил сделать PHP консоль для админов сайта,
    Я сделал как то так...
    HTML:
    1. <script src='http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js'></script>
    2. body{ margin: 0; cursor:text; font-weight: bold; color: #cccccc; }
    3. #2{ color: #cccccc; font-weight: bold }
    4.  
    5. <table border="0" cellpadding="0" cellspacing="0" bgcolor="#000" width="100%" height="100%"><tr><td valign="top" width="100%">
    6. <b><div id='text'> </div></b>
    7.  
    8. </td></tr><tr height="20px"><td>
    9. <form onSubmit="form(); return false;">
    10. <hr /><input id='1' style="width: 100%; background: #000; color: #ccc; border: 0px; font-weight: bold">
    11. </form>
    12. </td></tr></table>
    13. </body>
    [js]<script>
    document.getElementById('text').innerHTML = "the user in the console";
    function form(){
    var text = document.getElementById('1').value;
    document.getElementById('1').value='';
    document.body.style.cursor = "wait";
    $.post('console.php', { text: text }, function(data){
    if(!data){ data="There is no answer, error in the command: "+text.replace(/</g, "&lt;"); }
    document.getElementById('text').innerHTML+="\n[USER]: " + text.replace(/</g, "&lt;") + "\n"+data.replace(/</g, "&lt;");
    alert(document.getElementById('text').innerHTML);
    document.body.style.cursor = "text";
    window.scrollTo(0, 99999999);
    });
    }
    </script>[/js]

    И файл console.php который редактирует файл console.txt и подключает его...

    PHP:
    1. <?php
    2. $_POST[text] = stripslashes($_POST[text]);
    3.  
    4. $fd=@fopen('com.txt',"w");
    5. if(!$fd) exit ("Такой файл отсутствует");
    6. fwrite($fd, "<?php ".$_POST[text]." ?>");
    7. fclose($fd);
    8.  
    9. @include "com.txt";
    10. ?>
    Вопрос в следующем...

    Как сделать что бы ответ сервера отображать как в textarea (\n = <br />).
    <pre> не подходит, потому что везде будут переносы строк ненужные
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    первая строка противоречит второй. нужны переносы или нет?
     
  3. elagin91

    elagin91 Активный пользователь

    С нами с:
    14 ноя 2011
    Сообщения:
    40
    Симпатии:
    0
    Нужны переносы которые сервер предоставит, но не нужны переносы между запросами
    Пример:
    Правильно:
    [USER]: print_r($_SERVER);
    Array
    (
    [HTTP_HOST] => panel2.16mb.com
    [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0
    [HTTP_ACCEPT] => */*
    [HTTP_ACCEPT_LANGUAGE] => ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
    [HTTP_ACCEPT_ENCODING] => gzip, deflate
    [HTTP_ACCEPT_CHARSET] => windows-1251,utf-8;q=0.7,*;q=0.7
    [HTTP_CONNECTION] => keep-alive
    [CONTENT_TYPE] => application/x-www-form-urlencoded; charset=UTF-8
    [HTTP_X_REQUESTED_WITH] => XMLHttpRequest
    [HTTP_REFERER] => http://site.com/my_site/?load=console
    [CONTENT_LENGTH] => 49
    [HTTP_COOKIE] => PHPSESSID=737a8202c75465a0bf6ae14a2bbdfcf1
    [HTTP_PRAGMA] => no-cache
    [HTTP_CACHE_CONTROL] => no-cache
    [PATH] => /sbin:/bin:/usr/sbin:/usr/bin
    [SERVER_SIGNATURE] =>
    [SERVER_SOFTWARE] => Apache
    [SERVER_NAME] => panel2.16mb.com
    [SERVER_ADDR] => 31.170.164.47
    [SERVER_PORT] => 80
    [REMOTE_ADDR] => 178.178.1.186
    [DOCUMENT_ROOT] => /usr/local/apache/htdocs
    [SERVER_ADMIN] => admin@admin
    [SCRIPT_FILENAME] => /www/site.com/my_site/index.php
    [REMOTE_PORT] => 65347
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => POST
    [QUERY_STRING] =>
    [REQUEST_URI] => /my_site/index.php
    [SCRIPT_NAME] => /my_site/index.php
    [PHP_SELF] => /my_site/index.php
    [REQUEST_TIME] => 1323761489
    )

    Не правильно:


    [USER]: print_r($_SERVER);

    Array
    (
    [HTTP_HOST] => panel2.16mb.com
    [HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; rv:8.0) Gecko/20100101 Firefox/8.0
    [HTTP_ACCEPT] => */*
    [HTTP_ACCEPT_LANGUAGE] => ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
    [HTTP_ACCEPT_ENCODING] => gzip, deflate
    [HTTP_ACCEPT_CHARSET] => windows-1251,utf-8;q=0.7,*;q=0.7
    [HTTP_CONNECTION] => keep-alive
    [CONTENT_TYPE] => application/x-www-form-urlencoded; charset=UTF-8
    [HTTP_X_REQUESTED_WITH] => XMLHttpRequest
    [HTTP_REFERER] => http://site.com/my_site/?load=console
    [CONTENT_LENGTH] => 49
    [HTTP_COOKIE] => PHPSESSID=737a8202c75465a0bf6ae14a2bbdfcf1
    [HTTP_PRAGMA] => no-cache
    [HTTP_CACHE_CONTROL] => no-cache
    [PATH] => /sbin:/bin:/usr/sbin:/usr/bin
    [SERVER_SIGNATURE] =>
    [SERVER_SOFTWARE] => Apache
    [SERVER_NAME] => panel2.16mb.com
    [SERVER_ADDR] => 31.170.164.47
    [SERVER_PORT] => 80
    [REMOTE_ADDR] => 178.178.1.186
    [DOCUMENT_ROOT] => /usr/local/apache/htdocs
    [SERVER_ADMIN] => admin@admin
    [SCRIPT_FILENAME] => /www/site.com/my_site/index.php
    [REMOTE_PORT] => 65347
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => POST
    [QUERY_STRING] =>
    [REQUEST_URI] => /my_site/index.php
    [SCRIPT_NAME] => /my_site/index.php
    [PHP_SELF] => /my_site/index.php
    [REQUEST_TIME] => 1323761489
    )
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    Ну так Вам нужно поколдовать с CSS для <pre>. Это совсем не про PHP.
    Попробуйте задать
    [css]pre {margin: 0; padding:0;}[/css]
    уйдут "ненужные переносы"?

    а может дело в этом:
    PHP:
    1. <pre>
    2. шняга 1
    3. шняга 2
    4. шняга 3
    5. </pre>
    6.  
    сравни с
    PHP:
    1. <pre>шняга 1
    2. шняга 2
    3. шняга 3</pre>
    4.  
     
  5. elagin91

    elagin91 Активный пользователь

    С нами с:
    14 ноя 2011
    Сообщения:
    40
    Симпатии:
    0
    В том то и дело что не в этом дело.

    Дело в <pre>шняга 1</pre><pre>шняга 2</pre><pre>шняга 3</pre>
    http://html-proverka.16mb.com/#&lt;pre& ... t;/pre&gt;

    А это помогло, спасибо.