Olá, estou com uma dúvida de como fazer um sistema de autenticação de licença.
Sei que faz com o curl, mas não sei como funciona o mesmo.
Tentei fazer que rodasse um script no servidor de autenticação, mas não consigui obter retorno.
Versão Imprimível
Olá, estou com uma dúvida de como fazer um sistema de autenticação de licença.
Sei que faz com o curl, mas não sei como funciona o mesmo.
Tentei fazer que rodasse um script no servidor de autenticação, mas não consigui obter retorno.
[Only registered and activated users can see links. Click Here To Register...]
Bons estudos!
:D
Minha dica é única, e é a mesma que o Little, ESTUDE.
Vou ti dar um exemplo bem "noob" :)
O que existia no arquivo?Código PHP:
<?php
$url = file_get_contents('http://seusite/ativa/' . $_SERVER['SERVER_NAME'] . '.key'); //a variável $url terá o valor do que estiver no arquivo
$urll = file_get_contents($_SERVER['SERVER_NAME'] . '.key'); //a variável $url2 terá o valor do que estiver no arquivo
if ($url == $urll) // se o que estiver no arquivo for igual ao que estiver no arquivo local, a licença é validada
exit("SITE VÁLIDO EM TODO TERRITÓRIO NACIONAL. Licença aceita."); //passou
?>
R: 1234-1234-1234-1234, uma licença de teste que fiz '-'
Apenas um teste que fiz para dar ao menos uma luz ao querido amigo acima x)~
Espero que ao menos uma vela tenha acendido e compreendido.
AGORA VAMOS AOS ESTUDOS E DEIXEMOS DE PREGUIÇA :@
Bom estou tentando fazer da seguinte maneira:
authlicense.class.php
validacao.phpCódigo PHP:
<?php
class authLicense
{
public function __construct()
{
if(empty($_POST['license']))
return 0;
elseif(isset($_POST['license']))
$this->verifyLicense($_POST['license']);
}
private function verifyLicense($license)
{
global $dbmysql;
$getLicenseQ = $dbmysql->queryAuthLicense("SELECT license, active FROM `dblicense` WHERE license = '{$license}'");
if(mysql_num_rows($getLicenseQ) == 0)
return 1;
else
{
$getLicense = mysql_fetch_object($getLicenseQ);
if($getLicense->active == 0)
return 2;
else
return 3;
}
}
}
$dbauthLicense = new authLicense();
?>
Mas eu não consigo fazer com que o servidor onde está o authlicense.class.php me retorne algum valor.Código PHP:
<?php
$key = file_get_contents("license/key.txt");
$ch = curl_init('http://meusite.com/authLicense.class.php');
$data = array("license" => $key);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$result = curl_exec($ch);
curl_close($ch);
if($result == 0)
exit('Erro: O arquivo de licença está vazio.');
elseif($result == 1)
exit('Erro: Licença não registrada.');
elseif($result == 2)
exit('Erro: sua licença está desativada.');
?>
Ta faltando a function: queryAuthLicense() ;
Organiza os return, e da um print_r em $result antes de fechar a cUrl x)
E posta o que aparece, e se não aparece nada, o problema é function ai, que está faltando!
echo
20P*rraDeCaracteres
@Ayrton Ricardo, a function "queryAuthLicense()" existe, é porque ela está em outro arquivo.
E não apareceu nada.
@Litlle
WTF?
"echo" o que? Poderia ser mais específico?Citação:
Postado originalmente por Litlle [Only registered and activated users can see links. Click Here To Register...]
Acho que entendi o que o @Litlle quis dizer.
Seria mais ou menos assim, ai eu trabalharia com o que foi imprimido.Código PHP:
class authLicense
{
public function __construct()
{
if(empty($_POST['license']))
echo 'LICENSE_EMPTY';
elseif(isset($_POST['license']))
$this->verifyLicense($_POST['license']);
}
private function verifyLicense($license)
{
global $dbmysql;
$getLicenseQ = $dbmysql->queryAuthLicense("SELECT license, active FROM `dblicense` WHERE license = '{$license}'");
if(mysql_num_rows($getLicenseQ) == 0)
echo 'LICENSE_NOT_FOUND';
else
{
$getLicense = mysql_fetch_object($getLicenseQ);
if($getLicense->active == 0)
echo 'LICENSE_DESACTIVED';
else
echo 'SUCCESS';
}
}
}
$dbauthLicense = new authLicense();
Código PHP:
$key = file_get_contents("license/key.txt");
echo $key.'<br />';
$ch = curl_init('http://meusite.com/authLicense.class.php');
$data = array("license" => $key);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$result = curl_exec($ch);
curl_close($ch);
if($result == 'LICENSE_EMPTY')
echo 'Coloque usa licença dentro da pasta licença.';
elseif($result == 'SUCCESS')
echo 'Sua licença foi autenticada com sucesso.';
elseif($result == 'LICENSE_NOT_FOUND')
echo 'Sua licença não foi encontrada.';
elseif($result == 'LICENSE_DESACTIVED')
echo 'Sua licença está desativada';
o CURL pega a saída/resposta, logo, você tem que printar algo na tela como retorno. Simples !