Я создаю свою собственную программу проверки лицензий, поскольку часто забываю, когда каждый месяц взимать плату за программное обеспечение. Это в младенческом состоянии.
У меня есть оператор if, проверяющий переменную POST с другого сайта, прежде чем сайт сможет работать. (Я знаю, если правильный человек понял это, он может манипулировать этим, но такого человека нет!)
У меня есть такие операторы, работающие в фоновом режиме, каждый раз, когда страница загружает эту часть приложения. Хотя я не могу найти обходного пути.
Вот проблема. Когда он успешно совпадает и переменная возвращает yes, у меня есть die (). Это убирает пользователя со страницы, над которой он работает, и перенаправляет его в мой скрипт проверки. Я не хочу этого Если переменная возвращает yes, я просто хочу, чтобы скрипт умер (не делал ничего, кроме остановки), а не перенаправлял на пустую страницу, потому что я положил die.
Другими словами, я не хочу, чтобы сценарий давал ответ.
Вот фрагмент, с которым я работаю.
Я хочу, чтобы он вернулся на страницу, на которой был раньше. Этот скрипт является включаемым, и пользователь не должен знать, что он работает. Если сценарий завершается, он переносит пользователя на пустую страницу.
Вот весь процесс.
License.php отправляет эту форму:
<form name="hidsys" method="post" action="../rauth/rauth.php">
<input type="hidden" name="siteid" value="<? echo $value; ?>">
<input type="hidden" name="keytype" value="a6request">
</form>
<script language="JavaScript" type="text/javascript">
setTimeout("document.hidsys.submit(hidsys)" ,1);
</script>
Вот моя функция и переменные:
function rauth($url)
{
$ch = curl_init();
$timeout = 5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$data = curl_exec($ch);
curl_close($ch);
return $data;
}
$timestamp = date("Y-m-d h:i", $timestamp + 10800);
$token = sha1($_POST['siteid']);
$rogue = sha1(time());
$authKey = md5($_POST['siteid']);
$skeletonKey = $token.$authKey;
$value = 'cca';
Он говорит с rauth.php:
<?php
// Declarations
$id = $_POST["siteid"];
$rauth_returned = rauth('http://www.mysite.com/rauth/index.php?siteid=' . $id . '&token=' . $token . '&time=' . $timestamp);
if (isset($_POST["siteid"])) {
if( strstr($rauth_returned, 'no')) {
exit('You are not authorized');
}
else if( !strstr($rauth_returned, 'yes')) {
exit('There was an error');
}
}
else {
exit("You can't view this page directly");
}
header('Location:' . $HTTP_REFERER);
?>
И это индекс сайта, который он запрашивает, если он «авторизован» или нет:
<?php
if (isset($_GET["siteid"])){
$site = $_GET["siteid"];
switch ($site)
{
case cca:
echo 'yes';
die();
case ccgay:
echo 'no';
die();
default:
echo 'absno';
die();
}
}else{
echo "No data to process.";
die();
}
?>
Каждый раз, когда файл (index.php) работает в другом направлении, чем эти файлы, он указывает, что license.php должен работать в фоновом режиме, чтобы просто проверить, разрешено ли ему запускаться или нет. Каждая ссылка и каждый раз, когда сайт открывается, он указывает license.php, чтобы пройти через процесс выше. Я, наверное, написал это действительно глупо, но мне просто нужно кое-что, чтобы помочь мне вспомнить, когда люди не платят, я думаю.