0

2台のサーバー間で何らかの通信を行おうとしています(ライセンス検証と呼ぶことができます)。

すでにこれを手に入れました:

index.php

if ($verification == 1) {
    echo "license validated";
}
else {
    echo "this license key does not exist.";
}

validate.php

$license_key = mysql_real_escape_string($_GET['license_key']);

$query = "SELECT license_key FROM users WHERE license_key = '$license_key'";
$mysqli = new mysqli();
$mysqli->connect($db_hostname, $db_username, $db_password, $db_name);
if ($mysqli->connect_errno) {
    echo "Failed to connect to MySQL: " . $mysqli->connect_error;
}
$result = $mysqli->query($query);
$row_cnt = $result->num_rows;
if ($row_cnt == 1) {
    return true;
}
else {
    return false;
}

私が理解できないのは、index.phpからvalidate.phpにそのリクエストを送信する方法(この2つのファイルは同じサーバーにありません)と、それが返すもの(trueまたはfalse)をindex.php情報に戻す方法です。

4

2 に答える 2

0

おそらく最も簡単な方法は、サービスをセットアップすることです。これは、そこにある数多くのチュートリアルの1つです。

たとえば、検証サーバーのホスト名がval.comであるとします。そこで、次のようなサービスを設定できます。

val.com/validation/validate?dataToValidae=<validationString>

傍受されたくない場合は、必ずSSL経由でリクエストを送信してください。

次に、検証が成功したかどうかをサービスに返し、コードでそれを確認することができます。

于 2012-12-21T22:52:42.883 に答える
0

file_get_contentsを使用します。

$verify_result = file_get_contents("http://validation.domain.com/validate.php?license_key=$key");
if ($verify_result == 'license validated') {
  ...
}
于 2012-12-21T22:53:49.690 に答える