راکت

فراخوانی یک فایل از سایت در لوکال هاست

24 پاسخ

سلام خسته نباشید ببخشید من دارم یک انکودر می‌نویسم از نظر خودم اگه روش دیکد کردنش از سایت خودم اجرا شه اوکی هستش یعنی فانکشنی که دیکد می‌کنه از سایتم بر روی پروژه کاربر قرار بگیره
اول میخواستم اینکارو کنم کل php.net رو گشتم ولی چیزی که کمکم کنه پیدا نکردم
دوم کسی روش بهتری سراغ داره که از روش دیکد کردن محافظت کنه
مثلا چیزی که میخوام داخل هاست قرار بدم

base64_decode($decode_code)

چیزی که داخل پروژه انکود شده میخوام قرار بدم

$decode_code = 'ZW5jb2Rl';
// اینجا هم میخوام ادرس سرورم که دیکدر داخلش هست قرار بگیره
ثبت پرسش جدید

پاسخ‌ها

24
ASPgo
ASPgo
@asp.gosk

تخصص: HTML، CSS، PHP و JS، طراح قالب و افزونه وردپرس، سئوکار و مقاله نویس

اگه منظورتو درست فهمیده باشم باید API بنویسی
یه فایل بساز مثلا decode.php بعد توش بررسی کن مثلا code تو GET وجود داره یا نه(GET code قراره چیزی باشه که قراره decode بشه)
اگه وجود داشت GET code رو decode کنه و به شکل JSON تو خروجی بفرسته
بعد طرف هروقت خواست کدش رو Decode کنه با php یا javascript یه Request به فایل decode.php بفرسته مثلا فرمتش به این شکل باشه:

encoder.com/decode.php?code=EncodedText

بعد طرف(کسی که داره استفاده میکنه) خروجیش رو قرار بده تو یه متغیر و کار هایی که میخواد رو باهاش انجام بده

محمد مهدی امیری
محمد مهدی امیری
@wpuser

تخصص: جوجه برنامه نویس PHP

@asp.gosk
ممنون من تاحالا همچین کاری انجام ندادن میتونید یک نمونه کد ارسال کنی ممنون

شاید پاسخ شما همین‌جا باشد

ASPgo
ASPgo
@asp.gosk

تخصص: HTML، CSS، PHP و JS، طراح قالب و افزونه وردپرس، سئوکار و مقاله نویس

فرض کن یه فایل api.php داریم قراره باهاش مثلا دو تا عدد رو جمع کنیم.
کد های فایل api.php:

if(isset($_GET['num1']) AND isset($_GET['num2'])){
    $num 1 = (int) $_GET['num1'];
    $num 2 = (int) $_GET['num2'];
    $output = $num1 + $num2;
    header('Content-Type: application/json; charset=utf-8');
    echo '{"output": "' . $output . '"}';
    die();
} else{
    header('Content-Type: application/json; charset=utf-8');
    echo '{"error": "یک عدد یا چند عدد وارد نشده است."}';
}
die();

همونطور که میبینی بررسی میکنیم GET num1 و num2 وجود دارن یا نه. اگه نه به شکل JSON ارور رو نمایش میدیم اگه وجود داشتن جمعشون میکنیم به شکل JSON نمایش میدیم.
حالا فرض کن من یه کاربر هستم و میخوام از این API استفاده کنم. یکی از مزیت های API اینکه نیازی نیست به زبان برنامه نویسی سایت توجه کرد.
مثلا طرف میخواد از این API با JS استفاده کنه میتونه از XMLHTPPRequest یا fetch استفاده کنه
اگه زبان سایتش PHP باشه میتونه از filegetcontents استفاده کنه.
نمونه استفاده از این API با JS(من با xmlhttprequest راحت ترم و از fetch استفاده نکردم اینجا):

var request = new XMLHttpRequest();
request.open('GET', `site.com/api.php?num1=5&num2=2`, false);
request.send();
var output = JSON.parse(request.responseText).output;
console.log(output); // Output 7

نمونه کد PHP:

$output = file_get_contents("site.com/api.php?num1=5&num2=2");
$output = json_decode($output, true);
echo $output['output']; // Output 7

حالا تو توی API به جای جمع اعداد میای اون چیزی که طرف تو GET مثلا code وارد کرده رو decode میکنی به شکل json تو خروجی میفرستی
باید برای API راهنما استفاده یا به اصطلاح documentation(مستندات) هم بنویسی تا کسی که داره استفاده میکنه بدونه چطور ازش به شکل صحیح استفاده کنه
نمونه documentation[1]
نمونه documentation[2]

محمد مهدی امیری
محمد مهدی امیری
@wpuser

تخصص: جوجه برنامه نویس PHP

ممنون ولی کدی که ارسال کردی کار نکرد
میتونی این کارو برای من انجام بدی
من میخوام فانکشن

decoder()

رو از آدرس

https://project.wpuser.ir/1/

اجرا کنم

ASPgo
ASPgo
@asp.gosk

تخصص: HTML، CSS، PHP و JS، طراح قالب و افزونه وردپرس، سئوکار و مقاله نویس

ارور و خود کد رو بفرست
آدرس https://project.wpuser.ir/1/ یه فولدر هست؟ اگه نیست باید یه بخشیش رو با htaccess اوکی کنی
اگه هست، یه فایل php به اسم api بساز
توش بررسی کن مثلا GET code وجود داره یا نه. اگه وجود داشت پاسش بده به فانکشن decode() و خروجیش رو با echo به شکل JSON نمایش بده
کد های فایل api.php:

// اینجا فانکشن Decode رو تعریف کن
if(isset($_GET['code'])){
    $code = $_GET['code'];
        if($code != null AND $code != ''){
            $code = decode($code);
            header('Content-Type: application/json; charset=utf-8');
            echo '{"output": "' . $code . '"}';
            die();
        } else{
            // اینجا ارور رو به شکل JSON نمایش بده
        }
} else{
    // اینجا ارور رو به شکل JSON نمایش بده
}
die();

کاربر هم به این شکل میتونه از API استفاده کنه:

var request = new XMLHttpRequest();
request.open('GET', `https://project.wpuser.ir/1/api.php?code={CODE}`, false); // طرف باید بجای {CODE} متنی که قراره decode بشه رو قرار بده
request.send();
var output = JSON.parse(request.responseText).output;
console.log(output);
محمد مهدی امیری
محمد مهدی امیری
@wpuser

تخصص: جوجه برنامه نویس PHP

من هر کاری کردم نشد

محمد مهدی امیری
محمد مهدی امیری
@wpuser

تخصص: جوجه برنامه نویس PHP

@asp.gosk
اگه باjson نشه چی یعنی من یک تابعی رو داخل هاست درست کردم که کد رو دیکد کنه
بعد کاربر میادو تابع منو فراخانی میکنه از سرور خودم و بجای اینکه کد انکود شده رو چاپ کنه اجراش کنه

ASPgo
ASPgo
@asp.gosk

تخصص: HTML، CSS، PHP و JS، طراح قالب و افزونه وردپرس، سئوکار و مقاله نویس

کلا برای API باید از JSON یا XML استفاده کرد.
دقیقا توضیح بده چه مشکلی پیش میاد کد هات هم بفرست

محمد مهدی امیری
محمد مهدی امیری
@wpuser

تخصص: جوجه برنامه نویس PHP

@asp.gosk
من میخوام این فانکشن از هاست اجرا بشه

function decoder($code){
    eval("?>".gzuncompress(gzuncompress(gzinflate(gzinflate(gzinflate(base64_decode(strrev(<<<DATA

"'.$code.'" 

DATA))))))));
}
ASPgo
ASPgo
@asp.gosk

تخصص: HTML، CSS، PHP و JS، طراح قالب و افزونه وردپرس، سئوکار و مقاله نویس

کد های API که نوشتی رو قرار بده

محمد مهدی امیری
محمد مهدی امیری
@wpuser

تخصص: جوجه برنامه نویس PHP

صفحه سفید میشه

ASPgo
ASPgo
@asp.gosk

تخصص: HTML، CSS، PHP و JS، طراح قالب و افزونه وردپرس، سئوکار و مقاله نویس

فکر کنم مشکل از فانکشن decoder هست.

function decoder($code){
    eval("?>".gzuncompress(gzuncompress(gzinflate(gzinflate(gzinflate(base64_decode(strrev(<<<DATA

"'.$code.'" 

DATA))))))));
}

این فانکشن چیزی رو Return نمیکنه و فقط کد Decode شده رو اجرا میکنه
باید به جای اینکه متن decode شده رو اجرا کنی return کنی و به شکل JSON به نمایش در بیاری

محمد مهدی امیری
محمد مهدی امیری
@wpuser

تخصص: جوجه برنامه نویس PHP

@asp.gosk
ببخشید میتونید این کارو انجام بدین فانکشن رو هم که دارین واقعا ممنون میشم
من هرکاری کردم نشد ممنون میشم اگه کمکم کنی

ASPgo
ASPgo
@asp.gosk

تخصص: HTML، CSS، PHP و JS، طراح قالب و افزونه وردپرس، سئوکار و مقاله نویس

کد های فایل api.php

function decoder($code){
            $output = "?>".gzuncompress(gzuncompress(gzinflate(gzinflate(gzinflate(base64_decode(strrev(<<<DATA$

"'.$code.'" 

DATA))))));
}
if(isset($_GET['code'])){
    $code = $_GET['code'];
        if($code != null AND $code != ''){
            $code = decode($code);
            header('Content-Type: application/json; charset=utf-8');
            echo '{"output": "' . $code . '"}';
            die();
        } else{
             header('Content-Type: application/json; charset=utf-8');
            echo '{"error": "ورودی خالی است"}';
             die();
        }
} else{
       header('Content-Type: application/json; charset=utf-8');
     echo '{"error": "ورودی وجود ندارد"}';
    die();
}
die();

کاربر باید به این شکل استفاده کنه:

$output = file_get_contents("https://project.wpuser.ir/1/api.php?code=$code"); // طرف باید به جای $code چیزی که قراره decode بشه رو قرار بده
$output = json_decode($output, true);
eval($output['output']);

نمیدونم ساختار پروژت به چه شکله و مطمئن نیستم کار کنه

محمد مهدی امیری
محمد مهدی امیری
@wpuser

تخصص: جوجه برنامه نویس PHP

انجام دادم این ارور رو میده


Warning: file_get_contents(https://project.wpuser.ir/1/api.php?code==ocV1jI6NlYsA8/b3X87vft+/fNMWwCvBE/msOzE9XkQY8Rz3y0n8lwjkSUG6cGg/lkuWnNT6N1OFoCCNejTPdLWloQwJfqcTGpP99CFz8quRfcEP7AiSxwuuG/95kavzgCztEAmzpv1/1LcO5BbcfoezQ0eRXrowBnBgv1kTM7ILjVkRvSwQo6Hb8D6zZDOBuM4IPvPvp4tVNbvQxbF8dFk5ZARZOOJt6wjXDjaqfbXWLcDVdtSITqQk8hg8usBOi34XtMNtZ+UWVlgYPjH0lZX5NyIGcAjBOlhWvMZQadm01CVh/V3xtatdoLO8+pYYDH31HBR0MX1AnktKbNkN+BlMboiUueyMX+DS7ZBHIcnoqOZQA/fjykGqFsrULuoKamEO3OqeSWYOjbFpTn5KDObnyG6hv4+5J+iMm2sIw8PeOqkOXLjjGH92B5Hj6e1m96k0oHqLBt6UF3BJlnNWjdRJTAUo0Cqst/KXGKSKcLXAA+I9Z5toLidtGY7O8B1doPaKs+6oNA3NqMSbMivy5wYR4Q7HfxCuy8NhtsMUPYl2S82B6ZiC4MB8jDWpS2Jd4wPKJbvtsSDIzPS0tYrQ2Y+1hL4qXlsQZfDt86UwRKr1TbJWTjsIG7VZZpgpUj6de0uas5xL/INgA1rteVJX7K/Iwy9hpW3C8Ep0c7iebt86xRmWxOfUasrtWvnYWh2qNMhnIyTIyuujb0ypoPVsDsXbcchRIxBZWsW7xGZ+p7ou0JqUvib5DPiOORLHXT382txnGwbcLBGCUtwVodvVe+MtdI5miYYE0zivD6/BSIkIU9Lwuaqmr9+pbak3Fk5yKGReo4z+sojdSqPmeBR+Y4q5KbKutfbbARz0oneL0FVvFoTA4WpQ3aBYiHB/s3NHctpJBjmzTWdAuWKilMUYKauBS0XTk97K32Vws9Ja5GSUS9u0zNjXj5lkQK0FOgt0n04n in C:\xampp\htdocs\1\decoder.php on line 2

Warning: Use of undefined constant output - assumed 'output' (this will throw an Error in a future version of PHP) in C:\xampp\htdocs\1\decoder.php on line 6

Warning: Illegal string offset 'output' in C:\xampp\htdocs\1\decoder.php on line 6

Parse error: syntax error, unexpected end of file in C:\xampp\htdocs\1\decoder.php(6) : eval()'d code on line 1
محمد مهدی امیری
محمد مهدی امیری
@wpuser

تخصص: جوجه برنامه نویس PHP

<?php
$output = file_get_contents("https://project.wpuser.ir/1/api.php?code==ocV1jI6NlYsA8/b3X87vft+/fNMWwCvBE/msOzE9XkQY8Rz3y0n8lwjkSUG6cGg/lkuWnNT6N1OFoCCNejTPdLWloQwJfqcTGpP99CFz8quRfcEP7AiSxwuuG/95kavzgCztEAmzpv1/1LcO5BbcfoezQ0eRXrowBnBgv1kTM7ILjVkRvSwQo6Hb8D6zZDOBuM4IPvPvp4tVNbvQxbF8dFk5ZARZOOJt6wjXDjaqfbXWLcDVdtSITqQk8hg8usBOi34XtMNtZ+UWVlgYPjH0lZX5NyIGcAjBOlhWvMZQadm01CVh/V3xtatdoLO8+pYYDH31HBR0MX1AnktKbNkN+BlMboiUueyMX+DS7ZBHIcnoqOZQA/fjykGqFsrULuoKamEO3OqeSWYOjbFpTn5KDObnyG6hv4+5J+iMm2sIw8PeOqkOXLjjGH92B5Hj6e1m96k0oHqLBt6UF3BJlnNWjdRJTAUo0Cqst/KXGKSKcLXAA+I9Z5toLidtGY7O8B1doPaKs+6oNA3NqMSbMivy5wYR4Q7HfxCuy8NhtsMUPYl2S82B6ZiC4MB8jDWpS2Jd4wPKJbvtsSDIzPS0tYrQ2Y+1hL4qXlsQZfDt86UwRKr1TbJWTjsIG7VZZpgpUj6de0uas5xL/INgA1rteVJX7K/Iwy9hpW3C8Ep0c7iebt86xRmWxOfUasrtWvnYWh2qNMhnIyTIyuujb0ypoPVsDsXbcchRIxBZWsW7xGZ+p7ou0JqUvib5DPiOORLHXT382txnGwbcLBGCUtwVodvVe+MtdI5miYYE0zivD6/BSIkIU9Lwuaqmr9+pbak3Fk5yKGReo4z+sojdSqPmeBR+Y4q5KbKutfbbARz0oneL0FVvFoTA4WpQ3aBYiHB/s3NHctpJBjmzTWdAuWKilMUYKauBS0XTk97K32Vws9Ja5GSUS9u0zNjXj5lkQK0FOgt0n04nebnlmJHVafOxkZcoeYsHXHKFN72CnfzKXfxhN0TtiVPKZDu12ec5prwqufQgRHpnMxkuqIDcNc2gB+47vAQwXHCgiOhWx3QgKNwHxWEyBsO8+wgCB/E6E6d2ZYC70tzPpwOFGlEDuACDZOqF8mL2JvoVguErpYkPRm5LxhaQyij4vig6yoB9aiseXu1e7bu9RQ50ic2GVPTANgVwaqk2VhvCzTRejDSAtwB5UnDdb8x3SX+1VUsORFHqjhzq7tEKKPKeS8P+lJXUMayDrMKuiI2ZNal3ncA3JeO6bowfUxkTGlaKEUsl0/Dixgj+ZdJuQvOH9zLWwyfw9/W7tXf4RmN39uXIV13SWR+OKB39j/5/vdaNQdV3Jv+XK3OfSZZnIT96HS1N9lmtXq82/Pf++LnhDJWy2EJcJfyHyh4LfIOieexRtk5N6ivpVgzpVXTYhCPvgJHxiU7putLVlkOfafkPziHAErCo1KTh5FAu7OcvkPp329WL/6yP5LXkcHVN/tyUWLFXwyy0YEHRlkej/af86V221ndPra5iY0+uHt7T2o+8LAuDBnieQZaakwIEKAEjU4IGtGb3XBSldfq6j4rP7HDIN6jZRVrci3+kRwmBwJe7nFBmGw+URwqBs/TEAbA"); // طرف باید به جای $code چیزی که قراره decode بشه رو قرار بده

$output = json_decode($output, true);

eval(output['output']);
?>
ASPgo
ASPgo
@asp.gosk

تخصص: HTML، CSS، PHP و JS، طراح قالب و افزونه وردپرس، سئوکار و مقاله نویس

کد هایی که برای Api.php بود یه مشکلی داشت ویرایش کردم الان دوباره تست کن
خط سوم نحوه استفاده کاربر هم $ آرایه output جا افتاده بود

محمد مهدی امیری
محمد مهدی امیری
@wpuser

تخصص: جوجه برنامه نویس PHP

دوباره ارور داد


Warning: file_get_contents(https://project.wpuser.ir/1/api.php?code==ocV1jI6NlYsA8/b3X87vft+/fNMWwCvBE/msOzE9XkQY8Rz3y0n8lwjkSUG6cGg/lkuWnNT6N1OFoCCNejTPdLWloQwJfqcTGpP99CFz8quRfcEP7AiSxwuuG/95kavzgCztEAmzpv1/1LcO5BbcfoezQ0eRXrowBnBgv1kTM7ILjVkRvSwQo6Hb8D6zZDOBuM4IPvPvp4tVNbvQxbF8dFk5ZARZOOJt6wjXDjaqfbXWLcDVdtSITqQk8hg8usBOi34XtMNtZ+UWVlgYPjH0lZX5NyIGcAjBOlhWvMZQadm01CVh/V3xtatdoLO8+pYYDH31HBR0MX1AnktKbNkN+BlMboiUueyMX+DS7ZBHIcnoqOZQA/fjykGqFsrULuoKamEO3OqeSWYOjbFpTn5KDObnyG6hv4+5J+iMm2sIw8PeOqkOXLjjGH92B5Hj6e1m96k0oHqLBt6UF3BJlnNWjdRJTAUo0Cqst/KXGKSKcLXAA+I9Z5toLidtGY7O8B1doPaKs+6oNA3NqMSbMivy5wYR4Q7HfxCuy8NhtsMUPYl2S82B6ZiC4MB8jDWpS2Jd4wPKJbvtsSDIzPS0tYrQ2Y+1hL4qXlsQZfDt86UwRKr1TbJWTjsIG7VZZpgpUj6de0uas5xL/INgA1rteVJX7K/Iwy9hpW3C8Ep0c7iebt86xRmWxOfUasrtWvnYWh2qNMhnIyTIyuujb0ypoPVsDsXbcchRIxBZWsW7xGZ+p7ou0JqUvib5DPiOORLHXT382txnGwbcLBGCUtwVodvVe+MtdI5miYYE0zivD6/BSIkIU9Lwuaqmr9+pbak3Fk5yKGReo4z+sojdSqPmeBR+Y4q5KbKutfbbARz0oneL0FVvFoTA4WpQ3aBYiHB/s3NHctpJBjmzTWdAuWKilMUYKauBS0XTk97K32Vws9Ja5GSUS9u0zNjXj5lkQK0FOgt0n04n in C:\xampp\htdocs\1\decoder.php on line 2

Notice: Trying to access array offset on value of type null in C:\xampp\htdocs\1\decoder.php on line 6
ASPgo
ASPgo
@asp.gosk

تخصص: HTML، CSS، PHP و JS، طراح قالب و افزونه وردپرس، سئوکار و مقاله نویس

آدرس

https://project.wpuser.ir/1/api.php?code==ocV1jI6NlYsA8/b3X87vft+/fNMWwCvBE/msOzE9XkQY8Rz3y0n8lwjkSUG6cGg/lkuWnNT6N1OFoCCNejTPdLWloQwJfqcTGpP99CFz8quRfcEP7AiSxwuuG/95kavzgCztEAmzpv1/1LcO5BbcfoezQ0eRXrowBnBgv1kTM7ILjVkRvSwQo6Hb8D6zZDOBuM4IPvPvp4tVNbvQxbF8dFk5ZARZOOJt6wjXDjaqfbXWLcDVdtSITqQk8hg8usBOi34XtMNtZ+UWVlgYPjH0lZX5NyIGcAjBOlhWvMZQadm01CVh/V3xtatdoLO8+pYYDH31HBR0MX1AnktKbNkN+BlMboiUueyMX+DS7ZBHIcnoqOZQA/fjykGqFsrULuoKamEO3OqeSWYOjbFpTn5KDObnyG6hv4+5J+iMm2sIw8PeOqkOXLjjGH92B5Hj6e1m96k0oHqLBt6UF3BJlnNWjdRJTAUo0Cqst/KXGKSKcLXAA+I9Z5toLidtGY7O8B1doPaKs+6oNA3NqMSbMivy5wYR4Q7HfxCuy8NhtsMUPYl2S82B6ZiC4MB8jDWpS2Jd4wPKJbvtsSDIzPS0tYrQ2Y+1hL4qXlsQZfDt86UwRKr1TbJWTjsIG7VZZpgpUj6de0uas5xL/INgA1rteVJX7K/Iwy9hpW3C8Ep0c7iebt86xRmWxOfUasrtWvnYWh2qNMhnIyTIyuujb0ypoPVsDsXbcchRIxBZWsW7xGZ+p7ou0JqUvib5DPiOORLHXT382txnGwbcLBGCUtwVodvVe+MtdI5miYYE0zivD6/BSIkIU9Lwuaqmr9+pbak3Fk5yKGReo4z+sojdSqPmeBR+Y4q5KbKutfbbARz0oneL0FVvFoTA4WpQ3aBYiHB/s3NHctpJBjmzTWdAuWKilMUYKauBS0XTk97K32Vws9Ja5GSUS9u0zNjXj5lkQK0FOgt0n04n

و

https://project.wpuser.ir/1/api.php

اصلا تو مرورگر باز نمیشن
ارور

Warning: file_get_contents(https://project.wpuser.ir/1/api.php?...

فقط همینه توضیح دیگه ای نداده؟

محمد مهدی امیری
محمد مهدی امیری
@wpuser

تخصص: جوجه برنامه نویس PHP

ممنون میشم اگه کسی کمکم کنه می‌خوام فانکشن دیکدر کد ها رو از هاست فراخوانی کنم که روش دیکد کردن رو کسی متوجه نشه باید چیکار کنم

صفحه 1 از 2

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام