使用php从其他服务器获取答案并进行操作
我试图在两台服务器之间进行某种通信(可以称为许可证验证) 已经得到这个: index.php使用php从其他服务器获取答案并进行操作,php,mysql,Php,Mysql,我试图在两台服务器之间进行某种通信(可以称为许可证验证) 已经得到这个: 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 = "SEL
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(这两个文件不在同一个服务器中),以及如何返回index.php返回的信息(true或false)。最简单的方法可能是设置服务。这里有很多教程 例如,假设验证服务器的主机名为val.com。您可以在那里设置一个如下所示的服务:
val.com/validation/validate?dataToValidae=
如果不希望被拦截,请确保通过SSL发送请求
然后,您可以让服务返回验证是否成功,然后在代码中检查验证是否成功。使用文件获取内容:
$verify_result = file_get_contents("http://validation.domain.com/validate.php?license_key=$key");
if ($verify_result == 'license validated') {
...
}
在数据库连接中使用纯文本密码连接到另一台服务器不是最好的方法,因为同一个域上的两个服务器子域是相同的?index.php在一台服务器上(domain.com 92.142.293.42),validate.php在另一台服务器上(domain1.com 95.213.231.21)。这些IP只是为了说明这些文件位于不同的服务器上。是的,我有点这样认为。此外,如果两台主机不同,您可能需要研究类似jsonp的内容。