summaryrefslogtreecommitdiff
path: root/includes/solvemedialib.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/solvemedialib.php')
-rwxr-xr-xincludes/solvemedialib.php195
1 files changed, 93 insertions, 102 deletions
diff --git a/includes/solvemedialib.php b/includes/solvemedialib.php
index 51b4617..a33d62c 100755
--- a/includes/solvemedialib.php
+++ b/includes/solvemedialib.php
@@ -55,17 +55,15 @@ define("ADCOPY_SIGNUP", "http://api.solvemedia.com/public/signup");
* @return string - encoded request
*/
function _adcopy_qsencode ($data) {
- $req = "";
- foreach ( $data as $key => $value )
- $req .= $key . '=' . urlencode( stripslashes($value) ) . '&';
+ $req = "";
+ foreach ( $data as $key => $value )
+ $req .= $key . '=' . urlencode( stripslashes($value) ) . '&';
- // Cut the last '&'
- $req=substr($req,0,strlen($req)-1);
- return $req;
+ // Cut the last '&'
+ $req=substr($req,0,strlen($req)-1);
+ return $req;
}
-
-
/**
* Submits an HTTP POST to a solvemedia server
* @param string $host
@@ -76,33 +74,31 @@ function _adcopy_qsencode ($data) {
*/
function _adcopy_http_post($host, $path, $data, $port = 80) {
- $req = _adcopy_qsencode ($data);
+ $req = _adcopy_qsencode ($data);
- $http_request = "POST $path HTTP/1.0\r\n";
- $http_request .= "Host: $host\r\n";
- $http_request .= "Content-Type: application/x-www-form-urlencoded;\r\n";
- $http_request .= "Content-Length: " . strlen($req) . "\r\n";
- $http_request .= "User-Agent: solvemedia/PHP\r\n";
- $http_request .= "\r\n";
- $http_request .= $req;
+ $http_request = "POST $path HTTP/1.0\r\n";
+ $http_request .= "Host: $host\r\n";
+ $http_request .= "Content-Type: application/x-www-form-urlencoded;\r\n";
+ $http_request .= "Content-Length: " . strlen($req) . "\r\n";
+ $http_request .= "User-Agent: solvemedia/PHP\r\n";
+ $http_request .= "\r\n";
+ $http_request .= $req;
- $response = '';
- if( false == ( $fs = @fsockopen($host, $port, $errno, $errstr, 10) ) ) {
- die ('Could not open socket');
- }
+ $response = '';
+ if( false == ( $fs = @fsockopen($host, $port, $errno, $errstr, 10) ) ) {
+ die ('Could not open socket');
+ }
- fwrite($fs, $http_request);
+ fwrite($fs, $http_request);
- while ( !feof($fs) )
- $response .= fgets($fs, 1024); // One TCP-IP packet [sic]
- fclose($fs);
- $response = explode("\r\n\r\n", $response, 2);
+ while ( !feof($fs) )
+ $response .= fgets($fs, 1024); // One TCP-IP packet [sic]
+ fclose($fs);
+ $response = explode("\r\n\r\n", $response, 2);
- return $response;
+ return $response;
}
-
-
/**
* Gets the challenge HTML (javascript and non-javascript version).
* This is called from the browser, and the resulting solvemedia HTML widget
@@ -120,16 +116,16 @@ function solvemedia_get_html ($pubkey, $error = null, $use_ssl = false)
}
if ($use_ssl) {
- $server = ADCOPY_API_SECURE_SERVER;
- } else {
- $server = ADCOPY_API_SERVER;
- }
+ $server = ADCOPY_API_SECURE_SERVER;
+ } else {
+ $server = ADCOPY_API_SERVER;
+ }
- $errorpart = "";
- if ($error) {
- $errorpart = ";error=1";
- }
- return '<script type="text/javascript" src="'. $server . '/papi/challenge.script?k=' . $pubkey . $errorpart . '"></script>
+ $errorpart = "";
+ if ($error) {
+ $errorpart = ";error=1";
+ }
+ return '<script type="text/javascript" src="'. $server . '/papi/challenge.script?k=' . $pubkey . $errorpart . '"></script>
<noscript>
<iframe src="'. $server . '/papi/challenge.noscript?k=' . $pubkey . $errorpart . '" height="300" width="500" frameborder="0"></iframe><br/>
@@ -138,18 +134,14 @@ function solvemedia_get_html ($pubkey, $error = null, $use_ssl = false)
</noscript>';
}
-
-
-
/**
* A SolveMediaResponse is returned from solvemedia_check_answer()
*/
class SolveMediaResponse {
- var $is_valid;
- var $error;
+ var $is_valid;
+ var $error;
}
-
/**
* Calls an HTTP POST function to verify if the user's guess was correct
* @param string $privkey
@@ -169,45 +161,45 @@ function solvemedia_check_answer ($privkey, $remoteip, $challenge, $response, $h
die ("For security reasons, you must pass the remote ip to solvemedia");
}
- //discard spam submissions
- if ($challenge == null || strlen($challenge) == 0 || $response == null || strlen($response) == 0) {
- $adcopy_response = new SolveMediaResponse();
- $adcopy_response->is_valid = false;
- $adcopy_response->error = 'incorrect-solution';
- return $adcopy_response;
- }
+ //discard spam submissions
+ if ($challenge == null || strlen($challenge) == 0 || $response == null || strlen($response) == 0) {
+ $adcopy_response = new SolveMediaResponse();
+ $adcopy_response->is_valid = false;
+ $adcopy_response->error = 'incorrect-solution';
+ return $adcopy_response;
+ }
- $response = _adcopy_http_post (ADCOPY_VERIFY_SERVER, "/papi/verify",
- array (
- 'privatekey' => $privkey,
- 'remoteip' => $remoteip,
- 'challenge' => $challenge,
- 'response' => $response
- )
- );
+ $response = _adcopy_http_post (ADCOPY_VERIFY_SERVER, "/papi/verify",
+ [
+ 'privatekey' => $privkey,
+ 'remoteip' => $remoteip,
+ 'challenge' => $challenge,
+ 'response' => $response,
+ ],
+ );
- $answers = explode ("\n", $response [1]);
- $adcopy_response = new SolveMediaResponse();
+ $answers = explode ("\n", $response [1]);
+ $adcopy_response = new SolveMediaResponse();
- if( strlen($hashkey) ){
- # validate message authenticator
- $hash = sha1( $answers[0] . $challenge . $hashkey );
+ if( strlen($hashkey) ){
+ # validate message authenticator
+ $hash = sha1( $answers[0] . $challenge . $hashkey );
- if( $hash != $answers[2] ){
- $adcopy_response->is_valid = false;
- $adcopy_response->error = 'hash-fail';
- return $adcopy_response;
- }
- }
+ if( $hash != $answers[2] ){
+ $adcopy_response->is_valid = false;
+ $adcopy_response->error = 'hash-fail';
+ return $adcopy_response;
+ }
+ }
- if (trim ($answers [0]) == 'true') {
- $adcopy_response->is_valid = true;
- }
- else {
- $adcopy_response->is_valid = false;
- $adcopy_response->error = $answers [1];
- }
- return $adcopy_response;
+ if (trim ($answers [0]) == 'true') {
+ $adcopy_response->is_valid = true;
+ }
+ else {
+ $adcopy_response->is_valid = false;
+ $adcopy_response->error = $answers [1];
+ }
+ return $adcopy_response;
}
@@ -219,10 +211,9 @@ function solvemedia_check_answer ($privkey, $remoteip, $challenge, $response, $h
* @param string $appname The name of your application
*/
function solvemedia_get_signup_url ($domain = null, $appname = null) {
- return ADCOPY_SIGNUP . "?" . _adcopy_qsencode (array ('domain' => $domain, 'app' => $appname));
+ return ADCOPY_SIGNUP . "?" . _adcopy_qsencode ( ['domain' => $domain, 'app' => $appname]);
}
-
/**
* Calls an HTTP POST function to verify if the user's response was correct
* @param string $privkey
@@ -232,32 +223,32 @@ function solvemedia_get_signup_url ($domain = null, $appname = null) {
function solvemedia_precheck_response ($privkey, $verifycode)
{
- //discard spam submissions
- if ($verifycode == null || strlen($verifycode) == 0 ) {
- $adcopy_response = new SolveMediaResponse();
- $adcopy_response->is_valid = false;
- $adcopy_response->error = 'incorrect-solution';
- return $adcopy_response;
- }
+ //discard spam submissions
+ if ($verifycode == null || strlen($verifycode) == 0 ) {
+ $adcopy_response = new SolveMediaResponse();
+ $adcopy_response->is_valid = false;
+ $adcopy_response->error = 'incorrect-solution';
+ return $adcopy_response;
+ }
- $response = _adcopy_http_post (ADCOPY_VERIFY_SERVER, "/papi/verify.precheck.server",
- array (
- 'privatekey' => $privkey,
- 'verify_code' => $verifycode
- )
- );
+ $response = _adcopy_http_post (ADCOPY_VERIFY_SERVER, "/papi/verify.precheck.server",
+ [
+ 'privatekey' => $privkey,
+ 'verify_code' => $verifycode,
+ ],
+ );
- $answers = explode ("\n", $response [1]);
- $adcopy_response = new SolveMediaResponse();
+ $answers = explode ("\n", $response [1]);
+ $adcopy_response = new SolveMediaResponse();
- if (trim ($answers [0]) == 'true') {
- $adcopy_response->is_valid = true;
- }
- else {
- $adcopy_response->is_valid = false;
- $adcopy_response->error = $answers [1];
- }
+ if (trim ($answers [0]) == 'true') {
+ $adcopy_response->is_valid = true;
+ }
+ else {
+ $adcopy_response->is_valid = false;
+ $adcopy_response->error = $answers [1];
+ }
- return $adcopy_response;
+ return $adcopy_response;
}