Всем привет! У меня есть некоторая форма в HTML, в текстовом поле которой я хочу получать значение функции, определяющееся по трем переменным. Для эксперимента пробовал вначале простейший пример, дабы проверить работает у меня вообще php или нет. В итоге все работает: Пример был такой: PHP: <?php $hello = 'Привет, мир!'; require_once('index.html'); ?> HTML: <html> <head> </head> <body> <div>Переменная из php: <span><?php echo $hello; ?></span> </div> </body> </html> Далее я уже использовал свою форму хтмл: HTML: <html><head> <meta content="text/html; charset=Windows-1251" http-equiv="content-type"> <title>SmartTrade</title> </head><body> <table style="text-align: left; width: 503px; height: 127px;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top; width: 182px;">API Key</td> <td style="vertical-align: top; width: 301px;"><label><input size="50" name="_Key"></label><br> </td> </tr> <tr> <td style="vertical-align: top; width: 182px;">Api Secret</td> <td style="vertical-align: top; width: 301px;"><input size="50" name="_Secret"></td> </tr> <tr> <td style="vertical-align: top; width: 182px;">Select Coin</td> <td style="vertical-align: top; width: 301px;"> <select size="1" name="Coins"> <option value="BTC">Bitcoin</option> <option value="ETH">Ethereun</option> <option value="XRP">Ripple</option> <option value="USDT">Tether</option> </select> <br> </td> </tr> <tr> <td style="vertical-align: top; width: 182px;">Balance<br> </td> <td style="vertical-align: top; width: 301px;"><input value='<?php echo $hello; ?>' readonly="readonly" size="50" name="_Balance"></td> </tr> </tbody> </table> <br> <br> <br> </body></html> и тот же самый php файл. Все отлично! Текст переменной $hello (35 строка) на своем месте. А вот теперь я уже использую свой php файл. И тут я уже что только не пробовал, но ни черта у меня не вышло. Где ошибка?? PHP: <?php $apikey='8a759b82a25d4c979baada1cbd81142b'; $apisecret='8c927398ecf44131ab0c583ee74b2c0d'; function bittrexbalance($apikey, $apisecret, $coin){ $nonce=time(); $uri='https://bittrex.com/api/v1.1/account/getbalance?apikey='.$apikey.'¤cy='.$coin.'&nonce='.$nonce; $sign=hash_hmac('sha512',$uri,$apisecret); $ch = curl_init($uri); curl_setopt($ch, CURLOPT_HTTPHEADER, array('apisign:'.$sign)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $execResult = curl_exec($ch); $obj = json_decode($execResult, true); $balance = $obj["result"]["Available"]; return $balance; } $hello = bittrexbalance($apikey, $apisecret, "ETH"); require_once('index.html'); ?> Еще хочу добавить, что в интерпретаторе php, добавив в конце файла print ($hello); результат появляется на экране, и я вижу эти цифру. То есть переменная $hello имеет некоторое значение, но не передается в поле на html. PHP: <?php $apikey='8a759b82a25d4c979baada1cbd81142b'; $apisecret='8c927398ecf44131ab0c583ee74b2c0d'; function bittrexbalance($apikey, $apisecret, $coin){ $nonce=time(); $uri='https://bittrex.com/api/v1.1/account/getbalance?apikey='.$apikey.'¤cy='.$coin.'&nonce='.$nonce; $sign=hash_hmac('sha512',$uri,$apisecret); $ch = curl_init($uri); curl_setopt($ch, CURLOPT_HTTPHEADER, array('apisign:'.$sign)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $execResult = curl_exec($ch); $obj = json_decode($execResult, true); $balance = $obj["result"]["Available"]; return $balance; } $hello = bittrexbalance($apikey, $apisecret, "ETH"); print ($hello); ?> Этот код работает безотказно. Я даже пробовал писать $hello = (string)bittrexbalance($apikey, $apisecret, "ETH"); но это тоже результата не дало.
PHP: <?php error_reporting ( E_ALL ); $apikey='8a759b82a25d4c979baada1cbd81142b'; /* ... */ --- Добавлено --- что не вышло? --- Добавлено --- работает код или не вышло ? --- Добавлено --- Давайте не будем мелочиться и пхп сценарий запишем в файл с расширением .exe, а потом придем на форум с вопросами, почему не работает у меня пхп код в файле со содержимым windows пакета --- Добавлено --- первая попавшаяся ссылка вроде гуд: http://www.seostop.ru/sozdanie-saita/html-css/php-include.html
Не вышло переменную $hello вывести в поле _Balance файла html. Работает в интерпретаторе php, то есть в коде php команда print($hello); возвращает состояние баланса при запуске. Если нет желания мелочиться, то могли бы не отвечать на этот мелочный вопрос.
Вот еще момент... результат должен быть в формате "0.00000000". И переменная $hello его получила. И этот результат мне нужно вывести в текст. Ведь если в пхп файле у меня к перменной $hello присвоено строчное значение "hello world!", оно отображается в этом поле без проблем. А стоит только присвоить функцию, то текстовое поле пусто.
переименование index хтмл в пхп ничего не дало. Поле также пусто. Полно примеров, где по такой схеме передают обычную строчку в кавычках, и это работает. А числовое значение с 8 нулями после точки не передает. Переменная, которая мне нужна, получает требуемое значение, ведь когда в интерпретаторе php я запускаю файл с командой prin($hello); все вполне себе четко работает. Немного еще добавлю о себе. У меня большой опыт работы в basic и всю эту кухню программирование я неплохо знаю. Есть опыт написания клиента для сервера базы данных, обменивающегося с контроллером по протоколу Modbass rtu. Однако мне нужно написать всего лишь одну страничку с простейшими математическими функциями. Все необходимые функции и инструкции API сайт дает на своей странице. Мне лишь все это нужно увязать на своей страничке. Но все это нужно сделать в виде веб странички, т.к. некоторые функции требуют постоянного обмена данными сайтом bittrex и следить за ценой валюты. Можно и на VB это написать, однако нет возможности постоянно держать комп включенным, дабы программа работала в режиме 24/7. И я абсолютно не знаю синтаксиса php и html, и на простейшей фигне я споткнулся и не могу идти дальше. Я подозреваю, что этот этап задачи решается элементарно, просто не знаю куда копать.
Люди, я немного поковырялся в интернете, и у меня есть подозрения, что при запуске файла php локально на интерпретаторе функция выполняется. А в моем коде я вношу переменную $hello в текстовую строку, однако сама функция при обращении из файла хтмл, не выполняется, и, таким образом переменная возвращается пустой. Так ли это? Если так, то как можно реализовать?
Короче... все получилось. Но не совсем. В онлайн редакторе php http://phpfiddle.org/ я ввел код, предварительно объединив пхп и хтмл в один файл, запустил его там, и все работает. Можете проверить. Я все делал правильно. Код (Text): <html><head> <meta content="text/html; charset=Windows-1251" http-equiv="content-type"> <title>SmartTrade</title> </head><body> <table style="text-align: left; width: 503px; height: 127px;" border="0" cellpadding="2" cellspacing="2"> <tbody> <tr> <td style="vertical-align: top; width: 182px;">API Key</td> <td style="vertical-align: top; width: 301px;"><label><input size="50" name="_Key" value='8a759b82a25d4c979baada1cbd81142b'></label><br> </td> </tr> <tr> <td style="vertical-align: top; width: 182px;">Api Secret</td> <td style="vertical-align: top; width: 301px;"><input size="50" name="_Secret" value='8c927398ecf44131ab0c583ee74b2c0d'></td> </tr> <tr> <td style="vertical-align: top; width: 182px;">Select Coin</td> <td style="vertical-align: top; width: 301px;"> <select size="1" name="Coins"> <option value="BTC">Bitcoin</option> <option value="ETH">Ethereun</option> <option value="XRP">Ripple</option> <option value="USDT">Tether</option> </select> <br> </td> </tr> <tr> <td style="vertical-align: top; width: 182px;">Balance<br> </td> <td style="vertical-align: top; width: 301px;"> <?php $apikey='8a759b82a25d4c979baada1cbd81142b'; $apisecret='8c927398ecf44131ab0c583ee74b2c0d'; function bittrexbalance($apikey, $apisecret,$coin){ $nonce=time(); $uri='https://bittrex.com/api/v1.1/account/getbalance?apikey='.$apikey.'¤cy='.$coin.'&nonce='.$nonce; $sign=hash_hmac('sha512',$uri,$apisecret); $ch = curl_init($uri); curl_setopt($ch, CURLOPT_HTTPHEADER, array('apisign:'.$sign)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $execResult = curl_exec($ch); $obj = json_decode($execResult, true); $balance = $obj["result"]["Available"]; return $balance; } $bal=bittrexbalance($apikey, $apisecret,'USDT'); ?> <input value="<?php echo $bal; ?>" readonly="readonly" size="50" name="_Balance"></td> </tr> </tbody> </table> <br> </body></html> Но теперь вопрос другой. Я пользуюсь локальным сервером Denwer. При запуске файла через денвер поле "баланс" пустое. Какие настройки нужно поправить?
Я поменял. Хватит тут хайп разводить! Не хватает знаний и опыта мне помочь - не флуди тут. Тема не закрыта, вопрос не решен.
Вот решение Дело в том, что php-файлы изначально были придуманы так, что php был смешан с html. Так что в он-лайн сервисе у Вас код мог интерпретироваться, а вот на локалке слишком много могло быть вариантов, чтобы код не исполнился. И попробуйте OpenServer - это решение для винды гораздо удобнее, чем Denwer