[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. temp_late

    temp_late Banned

    Joined:
    22 Aug 2006
    Messages:
    47
    Likes Received:
    7
    Reputations:
    2
    Через сокерты, хм.. Думаю не получится, по адресу 192.168.1.1 унего вложенный вебсервер, там управляющий сайт с настройками адсл модема, думаю он как раз через соекты нам страничку и покажет. Конешно сокеты мысль, можно попробовать произвести авторизацию, и обратно отправеть post submit на ребут, но тоже там не все просто..
     
  2. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190

    а ты просто попробуй и все станет понятно, когда ты выполняешь telnet 192.168.1.1, ты просто коннектишся на 23 порт 192.168.1.1 также как у меня в примере, а вебсервер обычно на 80 или 8080 порту находится

    ты просто пойми, что мой скрипт делает, он открывает соединение с 192.168.1.1 на 23 порт и записывает туда комманды, тоже самое, что делаешь ты через программу telnet

    открой у себя на компе любой порт (с помощью nc -l -n -v -p <port>) на прослушку и запусти мой скрипт с твоим ip и номером открытого у себя порта, и посмотри что произойдет, ты увидишь что скрипт соединится с твоим компом на установленный порт и пошлет комманды туда
     
  3. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    [x26]VOLAND, предположим, что имеем дело с простейшей таблицей:

    Code:
    CREATE TABLE `some_table` (
      `id` int(11) unsigned NOT NULL auto_increment COMMENT 'Идентификатор автора',
      `author` varchar(20) NOT NULL default '' COMMENT 'Имя автора',
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COMMENT='Тестовая таблица';
    Забьём в неё записи:

    Code:
    INSERT INTO `some_table` (`id`, `author`) VALUES 
      (1, 'John'),
      (2, 'Mary'),
      (3, 'Jane'),
      (4, 'Marty'),
      (5, 'John'),
      (6, 'Annie'),
      (7, 'John'),
      (8, 'Marty'),
      (9, 'Jane'),
      (10, 'Marty');
    Тогда, для поставленной тобой задачи код будет выглядеть следующим образом:

    PHP:
    <?php

    define
    ("DB_HOST""127.0.0.1:3306");
    define("DB_NAME",           "test");
    define("DB_USER",           "test");
    define("DB_PASSWD",         "test");

    // Соединяемся с базой данных
    $db_id mysql_connect(DB_HOSTDB_USERDB_PASSWD) or
        die(
    "Error: " mysql_error());

    // Выбираем рабочую базу данных
    $ret mysql_select_db(DB_NAME$db_id) or
        die(
    "Error: " mysql_error());

    // Запрос к БД
    $sql "SELECT author, COUNT(id) amount FROM some_table GROUP BY author ORDER BY amount DESC";

    // Выполняем запрос к базе данных
    $result mysql_query($sql) or
        die(
    "Error: " mysql_error());

    // Делаем визуальное оформление результата
    print("<style>\n");
    print(
    ".tbl {font: normal 10pt Tahoma; border: #000000 1px solid}\n");
    print(
    "th {height: 25px;     background-color: #cacaca}\n");
    print(
    "td {height: 20px; text-align: center; border-top: #000000 1px solid}\n");
    print(
    "td.vert {border-right: #000000 1px solid}\n");
    print(
    "</style>\n");
    print(
    "<table cellspacing=\"0\" cellpadding=\"0\" width=\"150\" class=\"tbl\">\n");
    print(
    "<tr><th>Автор</th><th>Кол-во</th></tr>\n");

    // Если запрос вернул не пустую выборку
    if (mysql_numrows($result) > 0)
        
    // В цикле по всем строкам выводим результат (ассоциативный массив)
        
    while ($row mysql_fetch_array($resultMYSQL_ASSOC))
            
    printf("<tr><td class=\"vert\">%s</td><td>%s</td></tr>\n"$row["author"], $row["amount"]);
    else print(
    "<tr><td class=\"vert\">--</td><td>--</td></tr>\n");   // Выводим прочерки

    print("</table>\n");

    mysql_free_result($result);   // Освобождаем результат
    mysql_close($db_id);   // Закрываем соединение

    ?>
    Ничего сложного...
     
    1 person likes this.
  4. XopoIII

    XopoIII Elder - Старейшина

    Joined:
    29 Oct 2007
    Messages:
    386
    Likes Received:
    30
    Reputations:
    0
    трабл немного не по пхп, пытаюсь вставить в таблицу пхп файл а он выдает пустой экран почему?
    <table width=100% height=100% border=1>

    <tr><td height=150>
    <center>Заголовок</center>
    </td></tr>

    <tr><td width=150>
    <?php
    пробовал require "left.php"; пробовал include "left.php";
    ?>
    </td></tr>
    </table>

    если вставляю через фрэйм то все находит

    <FRAMESET cols="15%,*, 15%">
    <FRAME src="left.php" name="left" scrolling=no marginheight=0 marginwidth=0 noresize>
    <FRAME src="" name="center" scrolling=no marginheight=0 marginwidth=0 noresize>
    <FRAME src="" name="right" scrolling=no marginheight=0 marginwidth=0 noresize>
    </FRAMESET>

    кто нибуть знает почему?
     
  5. groundhog

    groundhog Elder - Старейшина

    Joined:
    12 May 2007
    Messages:
    1,159
    Likes Received:
    425
    Reputations:
    180
    Посмотри error_log. Что в последних записях?
     
  6. XopoIII

    XopoIII Elder - Старейшина

    Joined:
    29 Oct 2007
    Messages:
    386
    Likes Received:
    30
    Reputations:
    0
    нет там ошибок по этой части =) вообще за сегодня ниодной)))
     
  7. temp_late

    temp_late Banned

    Joined:
    22 Aug 2006
    Messages:
    47
    Likes Received:
    7
    Reputations:
    2
    include('left.php');
     
  8. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    По-моему, не имеет значения.
    XopoIII, приведи сгенерированный код получившейся страницы, а не только то, что ты пишешь. Наверняка у тебя там так и осталось:
    PHP:
    <?php 
    require "left.php";
    ?>
    .
     
  9. temp_late

    temp_late Banned

    Joined:
    22 Aug 2006
    Messages:
    47
    Likes Received:
    7
    Reputations:
    2
    Не работает так, не достигает того результата, проверить через nc не сообразил, пробовал скачать программу, там мне впаривают какуюту cms систему, запутался, короче не смог просмотреть запрос, и вычеслить где ошибка, но сдается что ошибка в строчке где отправляем пароль \r \n - это же два символа юнекс и виндовс перехода строки, ентер он же один символ, могу предположить что здесь может не срабатывать. Умучился я, мне только надо перезагрузить модем. Спортами спаисибо, теперь я понял суть, действиетльно модем разные вещи передает в зависимости от порта.
     
  10. temp_late

    temp_late Banned

    Joined:
    22 Aug 2006
    Messages:
    47
    Likes Received:
    7
    Reputations:
    2
    Всеее)))))))) СПАСИБО ОГРОМНОЕ!!!

    PHP:
    <?php
    $fp 
    fsockopen("192.168.1.1",23);
    if (!
    $fp) {
        echo 
    "ERROR<br>\n";
    } else {
        
    fwrite($fp,"entrymaypassword123*\r\n");
        
    fwrite($fp,"24\r\n");
        
    fwrite($fp,"4\r\n");
        
    fwrite($fp,"1\r\n");
        
    fwrite($fp,"1\r\n");
        
    fclose($fp);
    }
    ?> 
    последнию команда при повторном отправление сработала, не знаю что и как, подход ламерский, но главное то что работает! На первое время хватит, как воздуха)
     
    #930 temp_late, 21 Nov 2007
    Last edited: 21 Nov 2007
  11. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190
    Ну это уж твои косяки, ты спросил как, я тебе ответил, а уж насчет комманд это ты сам должен знать, попробуй еще так:
    PHP:
    <?php
    $fp 
    fsockopen("192.168.1.1",23);
    if (!
    $fp) {
        echo 
    "ERROR<br>\n";
    } else {
        
    fwrite($fp,"entrymaypassword123*\n");
        
    fwrite($fp,"24\n");
        
    fwrite($fp,"4\n");
        
    fwrite($fp,"1\n\n");
        
    fclose($fp);
    }
    ?> 
     
  12. temp_late

    temp_late Banned

    Joined:
    22 Aug 2006
    Messages:
    47
    Likes Received:
    7
    Reputations:
    2
    Все работает, проблемма была в том что скрипт слишком быстро закрывал сокет, функцию приостановки выполнения скрипта не знаю, поэтому я его затормозил условием, получилось так:

    PHP:
        fwrite($fp,"1\n\n");
        while (
    $a<3000){echo '<br>'.$a.') Перезагрузка';$a++;}
        
    fclose($fp); 
     
    1 person likes this.
  13. XopoIII

    XopoIII Elder - Старейшина

    Joined:
    29 Oct 2007
    Messages:
    386
    Likes Received:
    30
    Reputations:
    0
    так и осталось=(
    PHP:
    <HTML> 
    <HEAD> 
    <TITLE>Главная страница</TITLE> 
    </HEAD> 
    <table width=100% height=100% border=1>
    <tr><td height=150 colspan=3>
    <center>Заголовок</center>
    </td></tr>
    <tr><td width=150>
    <?php 
    require "left.php";
    ?>
    </td>
    <td>
    TEXT
    </td>
    <td width=150>
    </td></tr>
    <tr><td height=15 colspan=3>
    TEXT
    </td></tr>
    </table>
    </HTML>
     
  14. XopoIII

    XopoIII Elder - Старейшина

    Joined:
    29 Oct 2007
    Messages:
    386
    Likes Received:
    30
    Reputations:
    0
    есть у кого скриптик, для генерации изображений с числами, как в регистрациях делают
     
  15. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190
    2temp_late тогда используй вместо fsockopen функцию pfsockopen а цикл убери нафик ну и fclose

    2XopoIII

    качай _http://www.captcha.ru/kcaptcha.zip
     
    #935 Scipio, 21 Nov 2007
    Last edited: 21 Nov 2007
    1 person likes this.
  16. 195531

    195531 New Member

    Joined:
    19 Nov 2007
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    вот такая вот проверка пароля в самом конце авторизации. Можно ли ее обойти?

    PHP:
    $sql="select * from f_user where (nick='$innick')";
    $resultn=mysql_query($sql);
    $ar=mysql_fetch_array($resultn);

    //вышестоящая проверка вырезана, поскольку там ничего не поделать

    if ($ar['pass'] == $inpass) {      $_SESSION['userenter']=$ar['id'];
     
    #936 195531, 21 Nov 2007
    Last edited: 21 Nov 2007
  17. XopoIII

    XopoIII Elder - Старейшина

    Joined:
    29 Oct 2007
    Messages:
    386
    Likes Received:
    30
    Reputations:
    0
    чет не качает=(
     
  18. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190
    http://www.captcha.ru/kcaptcha.zip

    все отлично качает

    или зайди сюда, внизу будет ссылка для скачивания

    http://www.captcha.ru/kcaptcha/
     
  19. XopoIII

    XopoIII Elder - Старейшина

    Joined:
    29 Oct 2007
    Messages:
    386
    Likes Received:
    30
    Reputations:
    0
    скачал посмотрел работает, а вот как капчу или не капчу настроить чтобы пользователь вводил эти цифры и они сравнивались?
     
  20. Scipio

    Scipio Well-Known Member

    Joined:
    2 Nov 2006
    Messages:
    733
    Likes Received:
    544
    Reputations:
    190
    вобще-то там все написано, читай
     
Thread Status:
Not open for further replies.