Example: Register Drupal

Smart contract is deployed at Kovan network.

It is a simple registry, where user submit a Hash provided by the CMS to a registry. Imagine the registry a a simple array.

The validateUserByHash(hash) function returns the submitting user address.

We have a problem:
cURL error 6: Could not resolve host: ao (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)

#0 /home5/sarbao/public_html/ethereumPHP/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php(149): GuzzleHttp\Handler\CurlFactory::createRejection(Object(GuzzleHttp\Handler\EasyHandle), Array)
#1 /home5/sarbao/public_html/ethereumPHP/vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php(102): GuzzleHttp\Handler\CurlFactory::finishError(Object(GuzzleHttp\Handler\CurlMultiHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory))
#2 /home5/sarbao/public_html/ethereumPHP/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php(178): GuzzleHttp\Handler\CurlFactory::finish(Object(GuzzleHttp\Handler\CurlMultiHandler), Object(GuzzleHttp\Handler\EasyHandle), Object(GuzzleHttp\Handler\CurlFactory))
#3 /home5/sarbao/public_html/ethereumPHP/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php(110): GuzzleHttp\Handler\CurlMultiHandler->processMessages()
#4 /home5/sarbao/public_html/ethereumPHP/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php(125): GuzzleHttp\Handler\CurlMultiHandler->tick()
#5 /home5/sarbao/public_html/ethereumPHP/vendor/guzzlehttp/promises/src/Promise.php(246): GuzzleHttp\Handler\CurlMultiHandler->execute(true)
#6 /home5/sarbao/public_html/ethereumPHP/vendor/guzzlehttp/promises/src/Promise.php(223): GuzzleHttp\Promise\Promise->invokeWaitFn()
#7 /home5/sarbao/public_html/ethereumPHP/vendor/guzzlehttp/promises/src/Promise.php(267): GuzzleHttp\Promise\Promise->waitIfPending()
#8 /home5/sarbao/public_html/ethereumPHP/vendor/guzzlehttp/promises/src/Promise.php(225): GuzzleHttp\Promise\Promise->invokeWaitList()
#9 /home5/sarbao/public_html/ethereumPHP/vendor/guzzlehttp/promises/src/Promise.php(62): GuzzleHttp\Promise\Promise->waitIfPending()
#10 /home5/sarbao/public_html/ethereumPHP/vendor/graze/guzzle-jsonrpc/src/Client.php(109): GuzzleHttp\Promise\Promise->wait()
#11 /home5/sarbao/public_html/ethereumPHP/vendor/digitaldonkey/ethereum-php/src/Ethereum.php(342): Graze\GuzzleHttp\JsonRpc\Client->send(Object(Graze\GuzzleHttp\JsonRpc\Message\Request))
#12 /home5/sarbao/public_html/ethereumPHP/vendor/digitaldonkey/ethereum-php/src/Ethereum.php(359): Ethereum\Ethereum->request('eth_call', Array)
#13 /home5/sarbao/public_html/ethereumPHP/vendor/digitaldonkey/ethereum-php/src/Ethereum.php(207): Ethereum\Ethereum->etherRequest('eth_call', Array)
#14 [internal function]: Ethereum\Ethereum->Ethereum\{closure}(Object(Ethereum\DataType\CallTransaction), Object(Ethereum\DataType\EthBlockParam))
#15 /home5/sarbao/public_html/ethereumPHP/vendor/digitaldonkey/ethereum-php/src/Ethereum.php(237): call_user_func_array(Object(Closure), Array)
#16 /home5/sarbao/public_html/ethereumPHP/vendor/digitaldonkey/ethereum-php/src/Web3Methods.php(357): Ethereum\Ethereum->__call('eth_call', Array)
#17 /home5/sarbao/public_html/ethereumPHP/vendor/digitaldonkey/ethereum-php/src/SmartContract.php(92): Ethereum\Ethereum->eth_call(Object(Ethereum\DataType\CallTransaction), Object(Ethereum\DataType\EthBlockParam))
#18 /home5/sarbao/public_html/ethereumPHP/contract.example.php(197): Ethereum\SmartContract->__call('validateUserByH...', Array)
#19 {main}