الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اريد استدعاء كود php من خارج السرفر هل يمكن ذلك

بدأه fatmaali في 23 نوفمبر 2013 · 17 رد · 965 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم اخواني الافاضل ندي سكربت اريد ان اسوي له لايسينز لكن لا اريد وضع الملف مع الاسكربت حتى استطيع التحكم به فى ايه وقت

 

واريد ان ازرع ذلك الملف في ملف config الاسكربت والملف الخاص بالايسينز هوا للتحق من العمل على نفس الدومين

 

فكيف يكون ذلك عن طريق curl

 

هوا استدعاء وتشغيل ملف php

#2

49 مشاهدة ولا رد :D دي حاجه مبشرة

 

الحقيقه انا لقيت كود curl لكن لا يؤدي الغرض لانه بيقرا الملف نصي يعني يطبق الى فيه اكنو نص لكن لا يطبق استعلام ال php للتحقق من الدومين لعمل الايسينز

<?php
//curl1.php

// initialise the cURL session, passing an optional URL
$ch = curl_init('http://www.example.co.za/recipient.php');

//Execute the session
curl_exec($ch);

//Close the cURL session
curl_close($ch);
?>

تم تعديل هذه المشاركة بواسطة fatmaali في 23 نوفمبر 2013 في 20:34

#3

فيما مضى جربت دالة Eval

وكانت فعالة جداً معي بخصوص التراخيص للبرمجيات.

 

ولجلب النص من السيرفر البعيد نستخدم File_get_contents و دالة Eval تقوم بتحويل النص الى PHP يمكن تطبيقه على السيرفر الحامل للسكريبت

 

اي استفسار جاهز ان شاء الله

=============
الطموح و الحافز سر النجاح

=============

AflamHQ.com | Palphp.com

#4

طيب اخي حمدان كيف يكون ذلك مع العلم ان ملف الايسيينز محطوط على سرفر اخر

 

وليكن الرابط مثلا www.name.com/lic.php

 

 

 

وملف الايسينز نفسه هوا

<?

$allowed_hosts = array('www.myname.com', 'myname.com');
if (!isset($_SERVER['HTTP_HOST']) || !in_array($_SERVER['HTTP_HOST'], $allowed_hosts)) {
    echo " Not Lic Msg ";
    exit;
}

?>

وملف الاتصال الخاص بالاسكربت الذى اريد ان اضع به الكود ليتم جلب الصفحة اليه هوا

<?

$dbserver="localhost";

$dbuser="root";

$dbpass="root";

$dbname="namesql";

$connect=mysql_connect($dbserver,$dbuser,$dbpass);

$select=mysql_select_db($dbname,$connect) or die ("هناك خطاء فى الاتصال بالقاعدة ");

mysql_query("set character_set_server='cp1256'");

mysql_query("set names cp1256");

extract($_REQUEST);

?>

فكيف يكون االامر اخي حمدان انتظر ردك

#5

في ملف الاتصال نضع التالي مثلا

$code=file_get_contents("www.name.com/lic.php")
if($code != false)
{
 eval("?> <? $code ?><?php ");
}
else
{
die("Could not find connection");
}

في ملف الترخيص نضع اي اوامر نريد تنفيذها على السيرفر البعيد

$host = $_SERVER['HTTP_HOST'];

preg_match("/[^\.\/]+\.[^\.\/]+$/", $host, $matches);

if($matches[0] != "myname.com" and $matches[0] != "otherdomain.com" )
{
die("Please contact us to purchase this script via hamdan3.com");
}

=============
الطموح و الحافز سر النجاح

=============

AflamHQ.com | Palphp.com

#6

وضعت الكود فى ملف الاتصال كما ذكرت اخي حمدان تمام

<?
$code=file_get_contents("www.name.com/lic.php")
if($code != false)
{
 eval("?> <? $code ?><?php ");
}
else
{
die("Could not find connection");
}

$dbserver="localhost";

$dbuser="root";

$dbpass="root";

$dbname="name";

$connect=mysql_connect($dbserver,$dbuser,$dbpass);

$select=mysql_select_db($dbname,$connect) or die ("هناك خطاء فى الاتصال بالقاعدة ");

mysql_query("set character_set_server='cp1256'");

mysql_query("set names cp1256");

extract($_REQUEST);

?>

وقبل ان ارفع حتى الملف او اغير الاسم يجيب ايرور T_IF in C:\AppServ\www\edara\include\config.php on line 4

 

المشكل هنا

 

if($code != false)

#7

قمت بعمل تعديل بسيط

<?
$code = file_get_contents('http://name.com/lic.php');

if($code != false)
{
 eval("?>  $code <?php ");
}
else
{
die("Could not find connection");
}

$dbserver="localhost";

$dbuser="root";

$dbpass="root";

$dbname="name";

$connect=mysql_connect($dbserver,$dbuser,$dbpass);

$select=mysql_select_db($dbname,$connect) or die ("هناك خطاء فى الاتصال بالقاعدة ");

mysql_query("set character_set_server='cp1256'");

mysql_query("set names cp1256");

extract($_REQUEST);

?>

اصبح يستدعي الملف لكن لا يطبقة php يطبقه نصي فقط وعند العودة لكودك السابق لا يطبق يطلع لي خطاء كما اوضحت لك

#8
eval("?> $code <?php ");

لاحظي فتح الاقواس وغلقها

كود PHP  يتم تنفيذه داخل الاقواس , وعندما لا نضع اقواس البداية والنهاية يتم تنفيذ نص فقط

لذلك الطريقة الصحيحة هي كالتالي :

eval("?> <? $code ?><?php ");

وإذا ظهر خطاً حاولي التأكد من تشغيل ملف الترخيص مباشرة و شاهدي النتيجة يجب ان يكون كل شيء سليم , لاحظي ان وجود خطأ في ملف الترخيص ينعكس فوراً على الكود في ملف الكونفيج و سيقف الكود عنده

حاولي مجددا ومجددا ً

=============
الطموح و الحافز سر النجاح

=============

AflamHQ.com | Palphp.com

#9

طبقته تماماً كما ذكرت اخي حمدان

 

وجاب لي هذا الخطاء

 

Parse error: syntax error, unexpected T_IF in C:\AppServ\www\edara\include\config.php on line 4

 

 

مع العلم انو جربت ملف ال Lic بمفردة وشغال تمام

 

 

Please contact us to purchase this script via hamdan3.com

تم تعديل هذه المشاركة بواسطة fatmaali في 25 نوفمبر 2013 في 09:20

#10

جميل جداً الان فقط سنعدل سطر واحد في ملف الترخيص لكي يعمل الكود بشكل فعال  في ملفات الكونفيغ

 

نقوم بتغيير السطر

die("Please contact us to purchase this script via hamdan3.com");

الى التالي

echo "die('Please contact us to purchase this script via hamdan3.com');";

لاحظي انني طبعت دالة die طباعة كنص , ولكن دالة eval  في ملف الكونفيغ ستنفذ هذه الدالة حرفيا

تم تعديل هذه المشاركة بواسطة Hamdan Taima في 26 نوفمبر 2013 في 15:25

=============
الطموح و الحافز سر النجاح

=============

AflamHQ.com | Palphp.com

#11
Hamdan Taima كتب:

 

عذراً الخطأ من طرفي , نسينا الفاصلة المنقوطة في اول سطر

$code=file_get_contents("www.name.com/lic.php");

 

 

Hamdan Taima كتب:

 

في ملف الاتصال نضع التالي مثلا

$code=file_get_contents("www.name.com/lic.php")
if($code != false)
{
 eval("?> <? $code ?><?php ");
}
else
{
die("Could not find connection");
}

في ملف الترخيص نضع اي اوامر نريد تنفيذها على السيرفر البعيد

$host = $_SERVER['HTTP_HOST'];

preg_match("/[^\.\/]+\.[^\.\/]+$/", $host, $matches);

if($matches[0] != "myname.com" and $matches[0] != "otherdomain.com" )
{
die("Please contact us to purchase this script via hamdan3.com");
}

نغير السطر قبل الاخير الى

التالي

echo "die('Please contact us to purchase this script via hamdan3.com');";

=============
الطموح و الحافز سر النجاح

=============

AflamHQ.com | Palphp.com

#12

نفس المشكل اخي حمدان لكن هذه المرة قام تكرار النص مرتين هكذا

 

 

die('Please contact us to purchase this script via hamdan3.com'); die('Please contact us to purchase this script via hamdan3.com');

 

 

وطلع النص بالهيدر ولم يغلق الاسكربت طبقه ايضا كنص كالسابق

#13

عدلي الكود الي قمتي انتي بتعديله الى الوضع السابق كما هو هكذا

eval("?> <? $code ?><?php ");

واذا لم يعمل , الصقي الكود كامل للملفين مرة اخرى لارى اين المشكلة تحديداً

لانني جربته الكود و اشتغل عادي

=============
الطموح و الحافز سر النجاح

=============

AflamHQ.com | Palphp.com

#14

الان حدث هذا الخطاء

 

Warning: file_get_contents() [function.file-get-contents]: php_network_getaddresses: getaddrinfo failed: No such host is known. in C:\AppServ\www\edara\include\config.php on line 2

Warning: file_get_contents(http://www.kaaraeb.com/lic.php) [function.file-get-contents]: failed to open stream: php_network_getaddresses: getaddrinfo failed: No such host is known. in C:\AppServ\www\edara\include\config.php on line 2
Could not find connection

 

 

عموما ارفق لك الملفين كما طلبت

<?
$code = file_get_contents("http://www.name.com/lic.php");

if($code != false)
{
eval("?> <? $code ?><?php ");
}
else
{
die("Could not find connection");
}


$dbserver="localhost";

$dbuser="root";

$dbpass="root";

$dbname="montage";

$connect=mysql_connect($dbserver,$dbuser,$dbpass);

$select=mysql_select_db($dbname,$connect) or die ("هناك خطاء فى الاتصال بالقاعدة ");

mysql_query("set character_set_server='cp1256'");

mysql_query("set names cp1256");

extract($_REQUEST);

?>
<?
$host = $_SERVER['HTTP_HOST'];

preg_match("/[^\.\/]+\.[^\.\/]+$/", $host, $matches);

if($matches[0] != "myname.com" and $matches[0] != "otherdomain.com" )
{
echo "die('Please contact us to purchase this script via hamdan3.com');";
}
?>
#15

الكود صحيح , ويجب ان يعمل بدون اي مشاكل

رسالة الخطاً تظهر لان الملف lec.php لا يمكن العثور عليه هنا http://www.kaaraeb.com/lic.php

يجب رفع الملف على الدليل وكتابته بشكل صحيح

 

جربي مرة اخرى

=============
الطموح و الحافز سر النجاح

=============

AflamHQ.com | Palphp.com

#16

السلام عليكم اخي حمدان الان الكود اشتغل لكن مشكل بسيط  جدا

 

 

في هذا الكود

if($matches[0] != "name.com" and $matches[0] != "name.com" )

ايهم اضع فيه الدومين المراد عمل ليسينز له لانى جربت الاتنين وفضل قافل الاسكربت لم يفتحه والثاني ما هو

 

حاولت اجربة على الوكل هوست مثلا ما ردي يشتغل

 

لنفرض مثلا الموقع المراد عمل لايسينز له هوا nam.com

 

فهل يتم وضعه بالمكانين ام ماذا

 

واذا كانت التجربة على الوكل هوست فكيف يكون الوضع لانى جربت localhost و http://localhost ولم يعمل

#17

على اللاوكال هوست لا , ما راح يظبط الا اذا عرفتي شو نتيجة $match[0] بالتحديد

بسهولة نضع اسم الدومين في جملة الشرط

مثلا

if($matches[0] != "yoursite.com" and $matches[0] != "mysite.com" and $matches[0] != "hersite.com"  and $matches[0] != "his-site.com" )

=============
الطموح و الحافز سر النجاح

=============

AflamHQ.com | Palphp.com

#18

لاحظي انا امر die او قتل الكود المنفذ على اي موقع لن يتم تنفيذه الا ادا كان اسم الموقع غير موجود في الجملة الشرطية ( الجملة الشرطية تحتوي على اسماء المواقع التي قمنا بعمل تراخيص لها )

هنا فكرة , ممكن عمل مصفوفة ونسختدم دالة in_array لفحص ادا كان اسم الموقع داخل المصفوفة  ، فقط لتبسيط الكود

=============
الطموح و الحافز سر النجاح

=============

AflamHQ.com | Palphp.com

مواضيع مشابهة