PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : Php - اجرای تابع یا کد پی اچ پی با استفاده از curl



mojtaba05
November 25th, 2016, 12:30
سلام و خسته نباشید

من برای فروشگاه ساز اپن کارت پلاگین می نویسم و اون ها رو جهت فروش عمومی قرار می دم. مشکلی که هست بعضی افراد بعد از خرید پلاگین ها، اون ها رو در سایت های فروش قالب و پلاگین قرار میدن.
برای جلوگیری از این مشکل، به فکر افزودن لایسنس به پلاگین ها افتادم، تا حداقل جلو افراد مبتدی که آشنایی با کدها ندارند، گرفته بشه. (تا جایی که امکانش باشه سعی دارم فایل های پلاگین رو کد نکنم.)

چیزی که فعلا تا اینجا آماده کردم (کدها در پایین) به این شرح است که با استفاده از curl نام دامین مشتری و کد لایسنسی که وارد کرده به سایت ما ارسال میشه،
اگر اطلاعات در دیتابیس ما وجود داشته باشه، برای مشتری مثلا می نویسه: "لایسنس معتبر است."، اگر هم پیدا نشد: "لایسنس معتبر نیست."

حالا سوالی که از اساتید دارم اینه که امکانش هست یه قسمت از پلاگین در هاست ما نگهداری بشه و در صورتی که لایسنس معتبر بود، اجرا بشه؟ تا در صورتی که لایسنس نامعتبر بود یا کدهای مربوط به چک کردن لایسنس در پلاگین، توسط مشتری حذف شد، پلاگین کار نکنه؟

کدی که در سایت ما هست:
نمایش کد در سایت پیست کد: check.php (http://pastecode.ir/?p=1053)


public function check(){
if (isset($_POST['server'])){
$server = $_POST['server'];
$license = $_POST['license'];

$sql = "SELECT * FROM auth WHERE license='$license' LIMIT 1";
$query = $this->db->query($sql);

if($query->num_rows == 0){
/*
اگر لایسنس در دیتابیس ما پیدا نشد
*/
echo "failed";
} else {
foreach($query->rows as $result){
$dserver = $result["server"];
}
if($dserver == "undefined"){
/*
اگر لایسنس در دیتابیس ما وجود دارد و هنوز دامنه ای برای آن تعریف نشده، دامنه را برای لایسنس تعریف کن
*/
$sql = "UPDATE auth SET dinstalled=now(), server='$server' LIMIT 1";
$this->db->query($sql);
echo "verified";
} elseif($dserver == $server){
/*
اگر لایسنس و دامنه در دیتابیس ما موجود است
*/
echo "verified";
} else {
/*
اگر لایسنس وجود دارد ولی برای این دامنه نیست
*/
echo "failed";
}
}
}
}



کدی که در پلاگین هست:
نمایش کد در سایت پیست کد: customer.php (http://pastecode.ir/?p=1054)

$license = "22";
$server = $_SERVER["SERVER_NAME"];
$c = curl_init();
curl_setopt($c, CURLOPT_URL, "http://localhost/opencart/english/2101/index.php?route=manage/lic/check");
curl_setopt($c, CURLOPT_TIMEOUT, 30);
curl_setopt($c, CURLOPT_POST, 1);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
$postfields = 'server='.$server.'&license='.$license;
curl_setopt($c, CURLOPT_POSTFIELDS, $postfields);
$result = curl_exec($c);
if ($result=="failed") {
echo 'لایسنس مورد قبول نیست.';
}

در واقع من می خوام در نتیجه ای که به پلاگین مشتری برگشت می کنه، به جای یه متن، کد یا تابع قابل اجرای پی اچ پی باشه.

با تشکر

rayanagostar
December 5th, 2016, 12:16
این روش به راحتی قابل دور زدن هست با دستکاری کد ها حتی!
می تونید از سورس گاردیان برای اینکار استفاده کنید
ولی سعی کنید برنامه نویسی تون طوری باشه که مشتری هزینه پشتیبانی رو پرداخت کنه نه هزینه خود پلاگین رو!