За последние 24 часа нас посетили 22789 программистов и 1269 роботов. Сейчас ищут 793 программиста ...

Значение функции PHP в текстовом поле HTML

Тема в разделе "PHP для новичков", создана пользователем RainManWF, 25 ноя 2017.

  1. RainManWF

    RainManWF Новичок

    С нами с:
    25 ноя 2017
    Сообщения:
    10
    Симпатии:
    0
    Всем привет! У меня есть некоторая форма в HTML, в текстовом поле которой я хочу получать значение функции, определяющееся по трем переменным.

    Для эксперимента пробовал вначале простейший пример, дабы проверить работает у меня вообще php или нет. В итоге все работает:

    Пример был такой:
    PHP:
    1. <?php
    2.     $hello = 'Привет, мир!';
    3.     require_once('index.html');
    4. ?>
    HTML:
    1.  
    2. </head>
    3. <div>Переменная из php:
    4. <span><?php echo $hello; ?></span>
    5. </div>
    6. </body>
    7. </html>
    8.  
    Далее я уже использовал свою форму хтмл:

    HTML:
    1.  
    2.  
    3.   <meta content="text/html; charset=Windows-1251" http-equiv="content-type">
    4.   <title>SmartTrade</title>
    5.  
    6.  
    7. <table style="text-align: left; width: 503px; height: 127px;" border="0" cellpadding="2" cellspacing="2">
    8.   <tbody>
    9.     <tr>
    10.       <td style="vertical-align: top; width: 182px;">API Key</td>
    11.       <td style="vertical-align: top; width: 301px;"><label><input size="50" name="_Key"></label><br>
    12.       </td>
    13.     </tr>
    14.     <tr>
    15.       <td style="vertical-align: top; width: 182px;">Api Secret</td>
    16.       <td style="vertical-align: top; width: 301px;"><input size="50" name="_Secret"></td>
    17.     </tr>
    18.     <tr>
    19.       <td style="vertical-align: top; width: 182px;">Select Coin</td>
    20.       <td style="vertical-align: top; width: 301px;">
    21.       <select size="1" name="Coins">
    22.       <option value="BTC">Bitcoin</option>
    23.       <option value="ETH">Ethereun</option>
    24.       <option value="XRP">Ripple</option>
    25.       <option value="USDT">Tether</option>
    26.       </select>
    27.       <br>
    28.       </td>
    29.     </tr>
    30.     <tr>
    31.       <td style="vertical-align: top; width: 182px;">Balance<br>
    32.       </td>
    33.       <td style="vertical-align: top; width: 301px;"><input value='<?php echo $hello; ?>' readonly="readonly" size="50" name="_Balance"></td>
    34.     </tr>
    35.   </tbody>
    36. <br>
    37. <br>
    38. <br>
    39.  
    40. </body></html>
    и тот же самый php файл. Все отлично! Текст переменной $hello (35 строка) на своем месте.

    А вот теперь я уже использую свой php файл. И тут я уже что только не пробовал, но ни черта у меня не вышло. Где ошибка??

    PHP:
    1. <?php
    2. $apikey='8a759b82a25d4c979baada1cbd81142b';
    3. $apisecret='8c927398ecf44131ab0c583ee74b2c0d';
    4. function bittrexbalance($apikey, $apisecret, $coin){
    5.     $nonce=time();
    6.     $uri='https://bittrex.com/api/v1.1/account/getbalance?apikey='.$apikey.'&currency='.$coin.'&nonce='.$nonce;
    7.     $sign=hash_hmac('sha512',$uri,$apisecret);
    8.     $ch = curl_init($uri);
    9.     curl_setopt($ch, CURLOPT_HTTPHEADER, array('apisign:'.$sign));
    10.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    11.     $execResult = curl_exec($ch);
    12.     $obj = json_decode($execResult, true);
    13.     $balance = $obj["result"]["Available"];
    14.     return $balance;
    15. }
    16. $hello = bittrexbalance($apikey, $apisecret, "ETH");
    17. require_once('index.html');
    18. ?>
    Еще хочу добавить, что в интерпретаторе php, добавив в конце файла print ($hello); результат появляется на экране, и я вижу эти цифру. То есть переменная $hello имеет некоторое значение, но не передается в поле на html.

    PHP:
    1. <?php
    2. $apikey='8a759b82a25d4c979baada1cbd81142b';
    3. $apisecret='8c927398ecf44131ab0c583ee74b2c0d';
    4. function bittrexbalance($apikey, $apisecret, $coin){
    5.     $nonce=time();
    6.     $uri='https://bittrex.com/api/v1.1/account/getbalance?apikey='.$apikey.'&currency='.$coin.'&nonce='.$nonce;
    7.     $sign=hash_hmac('sha512',$uri,$apisecret);
    8.     $ch = curl_init($uri);
    9.     curl_setopt($ch, CURLOPT_HTTPHEADER, array('apisign:'.$sign));
    10.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    11.     $execResult = curl_exec($ch);
    12.     $obj = json_decode($execResult, true);
    13.     $balance = $obj["result"]["Available"];
    14.     return $balance;
    15. }
    16. $hello = bittrexbalance($apikey, $apisecret, "ETH");
    17. print ($hello);
    18. ?>
    Этот код работает безотказно. Я даже пробовал писать $hello = (string)bittrexbalance($apikey, $apisecret, "ETH"); но это тоже результата не дало.
     
    #1 RainManWF, 25 ноя 2017
    Последнее редактирование: 25 ноя 2017
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    PHP:
    1. <?php
    2.  
    3. error_reporting ( E_ALL );
    4.  
    5. $apikey='8a759b82a25d4c979baada1cbd81142b';
    6.  
    7. /* ... */
    --- Добавлено ---
    что не вышло?
    --- Добавлено ---
    работает код или не вышло ?
    --- Добавлено ---
    Давайте не будем мелочиться и пхп сценарий запишем в файл с расширением .exe, а потом придем на форум с вопросами, почему не работает у меня пхп код в файле со содержимым windows пакета
    --- Добавлено ---
    первая попавшаяся ссылка вроде гуд:
    http://www.seostop.ru/sozdanie-saita/html-css/php-include.html
     
  3. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    Надо ещё htmlspecialchars сделать. Может в вашем битриксе какие-нибудь кавычки вёрстку ломают
     
  4. RainManWF

    RainManWF Новичок

    С нами с:
    25 ноя 2017
    Сообщения:
    10
    Симпатии:
    0
    Не вышло переменную $hello вывести в поле _Balance файла html.
    Работает в интерпретаторе php, то есть в коде php команда print($hello); возвращает состояние баланса при запуске.

    Если нет желания мелочиться, то могли бы не отвечать на этот мелочный вопрос.
     
  5. RainManWF

    RainManWF Новичок

    С нами с:
    25 ноя 2017
    Сообщения:
    10
    Симпатии:
    0
    Да ничего особо вроде кроме вопросительного знака и слеша там ничего нет.
     
  6. mkramer

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

    С нами с:
    20 июн 2012
    Сообщения:
    8.555
    Симпатии:
    1.754
    В любом случае, изучите исходный код сгенерированной страницы
     
  7. RainManWF

    RainManWF Новичок

    С нами с:
    25 ноя 2017
    Сообщения:
    10
    Симпатии:
    0
    Вот еще момент... результат должен быть в формате "0.00000000". И переменная $hello его получила. И этот результат мне нужно вывести в текст. Ведь если в пхп файле у меня к перменной $hello присвоено строчное значение "hello world!", оно отображается в этом поле без проблем. А стоит только присвоить функцию, то текстовое поле пусто.
     
  8. RainManWF

    RainManWF Новичок

    С нами с:
    25 ноя 2017
    Сообщения:
    10
    Симпатии:
    0
    переименование index хтмл в пхп ничего не дало. Поле также пусто.
    Полно примеров, где по такой схеме передают обычную строчку в кавычках, и это работает. А числовое значение с 8 нулями после точки не передает. Переменная, которая мне нужна, получает требуемое значение, ведь когда в интерпретаторе php я запускаю файл с командой prin($hello); все вполне себе четко работает.

    Немного еще добавлю о себе.
    У меня большой опыт работы в basic и всю эту кухню программирование я неплохо знаю. Есть опыт написания клиента для сервера базы данных, обменивающегося с контроллером по протоколу Modbass rtu. Однако мне нужно написать всего лишь одну страничку с простейшими математическими функциями. Все необходимые функции и инструкции API сайт дает на своей странице. Мне лишь все это нужно увязать на своей страничке. Но все это нужно сделать в виде веб странички, т.к. некоторые функции требуют постоянного обмена данными сайтом bittrex и следить за ценой валюты. Можно и на VB это написать, однако нет возможности постоянно держать комп включенным, дабы программа работала в режиме 24/7. И я абсолютно не знаю синтаксиса php и html, и на простейшей фигне я споткнулся и не могу идти дальше. Я подозреваю, что этот этап задачи решается элементарно, просто не знаю куда копать.
     
  9. RainManWF

    RainManWF Новичок

    С нами с:
    25 ноя 2017
    Сообщения:
    10
    Симпатии:
    0
    Люди, я немного поковырялся в интернете, и у меня есть подозрения, что при запуске файла php локально на интерпретаторе функция выполняется. А в моем коде я вношу переменную $hello в текстовую строку, однако сама функция при обращении из файла хтмл, не выполняется, и, таким образом переменная возвращается пустой. Так ли это? Если так, то как можно реализовать?
     
  10. RainManWF

    RainManWF Новичок

    С нами с:
    25 ноя 2017
    Сообщения:
    10
    Симпатии:
    0
    Короче... все получилось. Но не совсем. В онлайн редакторе php http://phpfiddle.org/ я ввел код, предварительно объединив пхп и хтмл в один файл, запустил его там, и все работает. Можете проверить. Я все делал правильно.
    Код (Text):
    1. <html><head>
    2.   <meta content="text/html; charset=Windows-1251" http-equiv="content-type">
    3.   <title>SmartTrade</title>
    4. </head><body>
    5. <table style="text-align: left; width: 503px; height: 127px;" border="0" cellpadding="2" cellspacing="2">
    6.  
    7.   <tbody>
    8.     <tr>
    9.       <td style="vertical-align: top; width: 182px;">API Key</td>
    10.       <td style="vertical-align: top; width: 301px;"><label><input size="50" name="_Key" value='8a759b82a25d4c979baada1cbd81142b'></label><br>
    11.       </td>
    12.     </tr>
    13.     <tr>
    14.       <td style="vertical-align: top; width: 182px;">Api Secret</td>
    15.       <td style="vertical-align: top; width: 301px;"><input size="50" name="_Secret" value='8c927398ecf44131ab0c583ee74b2c0d'></td>
    16.     </tr>
    17.     <tr>
    18.       <td style="vertical-align: top; width: 182px;">Select Coin</td>
    19.       <td style="vertical-align: top; width: 301px;">
    20.       <select size="1" name="Coins">
    21.       <option value="BTC">Bitcoin</option>
    22.       <option value="ETH">Ethereun</option>
    23.       <option value="XRP">Ripple</option>
    24.       <option value="USDT">Tether</option>
    25.       </select>
    26.       <br>
    27.       </td>
    28.     </tr>
    29.     <tr>
    30.       <td style="vertical-align: top; width: 182px;">Balance<br>
    31.       </td>
    32.       <td style="vertical-align: top; width: 301px;">
    33. <?php
    34. $apikey='8a759b82a25d4c979baada1cbd81142b';
    35. $apisecret='8c927398ecf44131ab0c583ee74b2c0d';
    36. function bittrexbalance($apikey, $apisecret,$coin){
    37.     $nonce=time();
    38.     $uri='https://bittrex.com/api/v1.1/account/getbalance?apikey='.$apikey.'&currency='.$coin.'&nonce='.$nonce;
    39.     $sign=hash_hmac('sha512',$uri,$apisecret);
    40.     $ch = curl_init($uri);
    41.     curl_setopt($ch, CURLOPT_HTTPHEADER, array('apisign:'.$sign));
    42.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    43.     $execResult = curl_exec($ch);
    44.     $obj = json_decode($execResult, true);
    45.     $balance = $obj["result"]["Available"];
    46.     return $balance;
    47. }
    48. $bal=bittrexbalance($apikey, $apisecret,'USDT');
    49. ?>
    50.           <input value="<?php echo $bal; ?>" readonly="readonly" size="50" name="_Balance"></td>
    51.     </tr>
    52.   </tbody>
    53. </table>
    54. <br>
    55. </body></html>
    Но теперь вопрос другой. Я пользуюсь локальным сервером Denwer. При запуске файла через денвер поле "баланс" пустое. Какие настройки нужно поправить?
     
  11. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    хватит врать самому себе, расширение поменяй. Тема офф
     
  12. RainManWF

    RainManWF Новичок

    С нами с:
    25 ноя 2017
    Сообщения:
    10
    Симпатии:
    0
    Я поменял. Хватит тут хайп разводить! Не хватает знаний и опыта мне помочь - не флуди тут. Тема не закрыта, вопрос не решен.
     
  13. Maputo

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

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Вот решение
    Дело в том, что php-файлы изначально были придуманы так, что php был смешан с html. Так что в он-лайн сервисе у Вас код мог интерпретироваться, а вот на локалке слишком много могло быть вариантов, чтобы код не исполнился.
    И попробуйте OpenServer - это решение для винды гораздо удобнее, чем Denwer
     
  14. RainManWF

    RainManWF Новичок

    С нами с:
    25 ноя 2017
    Сообщения:
    10
    Симпатии:
    0
    Спасибо за дельный совет.
     
  15. RainManWF

    RainManWF Новичок

    С нами с:
    25 ноя 2017
    Сообщения:
    10
    Симпатии:
    0
    Проверил. Отлично работает! Спасибо.