我正在创建自己的许可证检查程序,因为我经常忘记每个月向人们收取软件费用。这是处于初期状态。
我有一个if语句在站点可以运行之前从另一个站点检查POST变量。 (我知道如果合适的人理解他可以操纵它,但没有这样的人!)
我有这样的陈述在后台工作,每次页面加载应用程序的一部分。我找不到这个方法。
这是问题所在。当它成功匹配并且变量返回yes时,我有一个die()。这会将用户从他们正在处理的页面上移除,并将其重定向到我的检查器脚本。我不希望这样。如果变量返回yes,我只想让脚本死掉(除了停止之外什么都不做),不要重定向到空白页面,因为我放弃了。
换句话说,我不希望脚本给出响应。
以下是我正在使用的代码段。
我想让它回到以前的页面。此脚本是一个包含,用户不应该知道它正在运行。如果脚本完成,则会将用户带到空白页面。
这是整个过程。
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完成上述过程。我可能写得非常愚蠢,但我只需要一些东西来帮助我记住当人们不付钱时我猜。
答案 0 :(得分:0)
而不是die()
使用header()
:
header('Location: http://www.example.com/');
<强>更新:强>
试试这个:
posix_kill(posix_getpid(),9);