1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

Sendmail.jsp

Тема в разделе 'FW Вопросник', создана пользователем superPoPkorN, 15 сен 2015.

  1. TopicStarter Overlay

    superPoPkorN Пользователи

    Сообщения:
    65
    Лайки:
    0
    Пол:
    Мужской
    Репутация:
    0
    Страна:
    Russian Federation Russian Federation
    Всем доброго времени суток. Подскажите. Кто пользовался почтовым скриптом. serverIP:8080/iweb/role/sendmail.jsp Отправляю предмет на почту. Он приходит. Хочу его забрать в рюкзак, выскакивает ошибка "исчезает из-за истечения срока действия" Что делать с этим? Кто знает или сталкивался, отзовитесь плиз...
  2. NetSpirit B L A C K    L I S T Пользователи

    Сообщения:
    1.390
    Лайки:
    374
    Пол:
    Мужской
    Репутация:
    5
    Пользуйся php скриптом:
    PHP:

    <?
    # PHP код - Kapaмel, html - pworld

    function CUINT($Data)
    {
        if($Data < 64)
                return StrRev(PACK("C", $Data));
        else if($Data < 16384)
                return StrRev(PACK("S", ($Data | 0x8000)));
        else if($Data < 536870912)
                return StrRev(PACK("I", ($Data | 0xC0000000)));
        return StrRev(PACK("c", -32) . PACK("I", $Data));
    }

    function SysSendMail($Receiver, $Title, $Message, $ItemID, $Count, $Count_Max, $Octets, $Proctype, $Expire_date, $Guid1, $Guid2, $Mask, $Money)
    {
        $tID = "\x00\x00\x01\x58";
        $SysID = "\x00\x00\x00\x20";
        $SysType = "\x03";
      
        $Receiver = PACK("N*", $Receiver);
        $Title = iCONV("UTF-8", "UTF-16LE", $Title);
            $TitleLengh = StrLen($Title);
            if($TitleLengh < 128)
            {
                $TitleLengh = PACK("C*", $TitleLengh);
            }
            else
            {
                $TitleLengh = PACK("n*", $TitleLengh + 32768);
            }
        $Message = iconv("UTF-8", "UTF-16LE", $Message);
            $MessageLengh = strlen($Message);
            if($MessageLengh < 128)
            {
                $MessageLengh = PACK("C*", $MessageLengh);
            }
            else
            {
                $MessageLengh = PACK("n*", $MessageLengh + 32768);
            }
        $ItemID = PACK("N*", $ItemID);
        $Pos = "\x00\x00\x00\x00";
        $Count = PACK("N*", $Count);
        $Count_Max = PACK("N*", $Count_Max);  
        $Octets = PACK("H*", $Octets);
        $OctetsLenght = PACK("n*", strlen($Octets) + 32768);  
        $Proctype = PACK("N*", $Proctype);
        $Expire_date = PACK("N*", $Expire_date);
        $Guid1 = PACK("N*", $Guid1);
        $Guid2 = PACK("N*", $Guid2);
        $Mask = PACK("N*", $Mask);
        $Money = PACK("N*", $Money);
      
        $Packet = $tID.$SysID.$SysType.$Receiver.$TitleLengh.$Title.$MessageLengh.$Message.$ItemID.$Pos.$Count.$Count_Max.$OctetsLenght.$Octets.$Proctype.$Expire_date.$Guid1.$Guid2.$Mask.$Money;
            $PacketLenght = strlen($Packet);
            if($PacketLenght < 128)
            {
                $PacketLenght = PACK("C*", $PacketLenght);
            }
            else
            {
                $PacketLenght = PACK("n*",$PacketLenght + 32768);
            }

        $Packet = "\x90\x76".$PacketLenght.$Packet;

        $Socket = SOCKET_CREATE(AF_INET, SOCK_STREAM, SOL_TCP);
        if(!$Socket)
        {
                die(SOCKET_STRERROR(SOCKET_LAST_ERROR()));
        }
        if(SOCKET_CONNECT($Socket,'127.0.0.1',29100))
        {
            SOCKET_SET_BLOCK($Socket);
            if (false !== ($sBytes = SOCKET_SEND($Socket,$Packet,8192,0)))
            {
            }
            else
            {
                $ERR = 1;
            }
            if (false !== ($rBytes = SOCKET_RECV($Socket,$BUF,8192,0)))
            {
            }
            else
            {
                $ERR = 2;
            }
            SOCKET_SET_NONBLOCK($Socket);
            SOCKET_CLOSE($Socket);
        }
        else
        {
            $ERR = 3;
        }
      
        return $ERR;
    }

          if(isset($_POST['send']))
          {
            if(empty($_POST['receiver']))
            {
                echo "<script>alert('Укажите получателя.')</script>";
            }
           elseif(SysSendMail($_POST['receiver'], "Почта", "Предмет получен.", $_POST['itemid'], $_POST['count'], $_POST['maxcount'], $_POST['octets'], $_POST['proctype'], $_POST['date'], 0, 0, $_POST['mask'], $_POST['money']) == 0)
            {
                echo "<script>alert('Предмет отправлен.')</script>";
            }

          }
          
      
    echo <<<HTML

    <style type="text/css">
       #layer1 {
          background: #A1A1A1;
        padding: 160px;
        padding-bottom: 280px;
        border: 4px solid #5D5D5D;
        color: red;

       }
        p {
        color: rgb(12, 12, 12);
       }

      </style>
      
    <form method='post'>

          <div align="center" id="layer1">

    <table>

    <tr><td><p>Получатель</p> </td> <td><input type='text' size='12' name='receiver'></td></tr> 
    <tr><td><p>Id предмета</p></td> <td><input type='text' size='12' name='itemid'>Выбрать ID предмета на <a href='http://pwdatabase.com/ru' target='blank'>PW Database<p></a></td></tr>
    <tr><td><p>Количество</p></td> <td><input type='text' size='12' name='count'></td></tr>
    <tr><td><p>Max. количество</p></td> <td><input type='text' size='12' name='maxcount'></td></tr>
    <tr><td><p>Привязка</p></td> <td><input type='text' size='12' name='proctype' value='0'></td></tr>
    <tr><td><p>Время</p></td> <td><input type='text' size='12' name='date' value='0'></td></tr>
    <tr><td><p>Деньги</p></td> <td><input type='text' size='12' name='money' value='0'></td></tr>
    <tr><td><p>Маска</p></td> <td><select name="mask" style='width:120px;'>
    <option value="0" selected="selected">Разное</option>
    <option value="1">Оружие</option>
    <option value="2">Голова</option>
    <option value="8">Накидка</option>
    <option value="16">Корпус</option>
    <option value="64">Штаны</option>
    <option value="128">Обувь</option>
    <option value="256">Наручи</option>
    <option value="4096">Полет</option>
    <option value="1536">Кольца</option>
    <option value="8192">Стиль: Верх</option>
    <option value="16384">Стиль: Низ</option>
    <option value="32768">Стиль: Сапоги</option>
    <option value="65536">Стиль: Наручи</option>
    <option value="8388608">Джин</option>
    <option value="1048576">Хирка хп</option>
    <option value="2097152">Хирка мп</option>
    <option value="262144">Книга(Трактат)</option>
    <option value="524288">Смайлы</option>
    <option value="33554432">Прически</option>
    </select></td></tr>
    <tr><td valign='top'><p>Октет</p></td> <td><textarea rows='5' cols='25' name='octets'></textarea></td></tr>
    <tr><td rowspan='2'><input style='height:30px;' type='submit' name='send' value='Отправить'></td></tr>
    </table>
      </div>
    </form>
    </div>
    HTML;

    ?>
  3. JoLan Команда форума Администратор AngeliCore Программист

    Сообщения:
    1.061
    Лайки:
    948
    Пол:
    Мужской
    Репутация:
    6
    Команда:
    AngeliCore
    Страна:
    Russian Federation Russian Federation
    Всё, я больше не могу. Спирит, не к тебе претензия, не волнуйся :)

    Код:
    function CUINT($Data)
    {
      if($Data < 64)
        return StrRev(PACK("C", $Data));
      else if($Data < 16384)
        return StrRev(PACK("S", ($Data | 0x8000)));
      else if($Data < 536870912)
        return StrRev(PACK("I", ($Data | 0xC0000000)));
      return StrRev(PACK("c", -32) . PACK("I", $Data));
    }
    Я где-то с 2011 года наблюдаю в ходу данный код распаковки Compact UInt. В свободном доступе очень много информации по пакетам и за всё время ниразу не видел, чтобы этот код правили.
    Ну неужели не видно, что заголовок 64 != заголовку 0x80, расположенному ниже по условию? 0x80 == 128, и, соответственно, при формировании пакета с заголовком больше 64, но меньше 128, на выходе будет word, а не byte. То есть на распаковке получим сдвиг чтения на 1 байт.
    NetSpirit нравится это.
  4. TopicStarter Overlay

    superPoPkorN Пользователи

    Сообщения:
    65
    Лайки:
    0
    Пол:
    Мужской
    Репутация:
    0
    Страна:
    Russian Federation Russian Federation
    НЕ работает скрипт...
  5. NetSpirit B L A C K    L I S T Пользователи

    Сообщения:
    1.390
    Лайки:
    374
    Пол:
    Мужской
    Репутация:
    5
    Как эта не работает? У меня вроде работал.
  6. JoLan Команда форума Администратор AngeliCore Программист

    Сообщения:
    1.061
    Лайки:
    948
    Пол:
    Мужской
    Репутация:
    6
    Команда:
    AngeliCore
    Страна:
    Russian Federation Russian Federation
    Скорей всего потому, что раздел FW.
    NetSpirit и Stroitel' нравится это.
  7. vieraw Пользователи

    Сообщения:
    54
    Лайки:
    27
    Репутация:
    0
    Не проверял этот вариант, а в таком работает.
  8. NetSpirit B L A C K    L I S T Пользователи

    Сообщения:
    1.390
    Лайки:
    374
    Пол:
    Мужской
    Репутация:
    5
    Айй, опять 25, тут же ж другие игры еще есть :D
Черновик сохранён Черновик удалён

Поделиться этой страницей