سلام خسته نباشید ببخشید من دارم یک انکودر مینویسم از نظر خودم اگه روش دیکد کردنش از سایت خودم اجرا شه اوکی هستش یعنی فانکشنی که دیکد میکنه از سایتم بر روی پروژه کاربر قرار بگیره
اول میخواستم اینکارو کنم کل php.net رو گشتم ولی چیزی که کمکم کنه پیدا نکردم
دوم کسی روش بهتری سراغ داره که از روش دیکد کردن محافظت کنه
مثلا چیزی که میخوام داخل هاست قرار بدم
base64_decode($decode_code)
چیزی که داخل پروژه انکود شده میخوام قرار بدم
$decode_code = 'ZW5jb2Rl';
// اینجا هم میخوام ادرس سرورم که دیکدر داخلش هست قرار بگیره
اگه منظورتو درست فهمیده باشم باید API بنویسی
یه فایل بساز مثلا decode.php بعد توش بررسی کن مثلا code تو GET وجود داره یا نه(GET code قراره چیزی باشه که قراره decode بشه)
اگه وجود داشت GET code رو decode کنه و به شکل JSON تو خروجی بفرسته
بعد طرف هروقت خواست کدش رو Decode کنه با php یا javascript یه Request به فایل decode.php بفرسته مثلا فرمتش به این شکل باشه:
encoder.com/decode.php?code=EncodedText
بعد طرف(کسی که داره استفاده میکنه) خروجیش رو قرار بده تو یه متغیر و کار هایی که میخواد رو باهاش انجام بده
فرض کن یه فایل 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]
ممنون ولی کدی که ارسال کردی کار نکرد
میتونی این کارو برای من انجام بدی
من میخوام فانکشن
decoder()
رو از آدرس
https://project.wpuser.ir/1/
اجرا کنم
ارور و خود کد رو بفرست
آدرس 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);
@asp.gosk
اگه باjson نشه چی یعنی من یک تابعی رو داخل هاست درست کردم که کد رو دیکد کنه
بعد کاربر میادو تابع منو فراخانی میکنه از سرور خودم و بجای اینکه کد انکود شده رو چاپ کنه اجراش کنه
کلا برای API باید از JSON یا XML استفاده کرد.
دقیقا توضیح بده چه مشکلی پیش میاد کد هات هم بفرست
@asp.gosk
من میخوام این فانکشن از هاست اجرا بشه
function decoder($code){
eval("?>".gzuncompress(gzuncompress(gzinflate(gzinflate(gzinflate(base64_decode(strrev(<<<DATA
"'.$code.'"
DATA))))))));
}
فکر کنم مشکل از فانکشن decoder هست.
function decoder($code){
eval("?>".gzuncompress(gzuncompress(gzinflate(gzinflate(gzinflate(base64_decode(strrev(<<<DATA
"'.$code.'"
DATA))))))));
}
این فانکشن چیزی رو Return نمیکنه و فقط کد Decode شده رو اجرا میکنه
باید به جای اینکه متن decode شده رو اجرا کنی return کنی و به شکل JSON به نمایش در بیاری
@asp.gosk
ببخشید میتونید این کارو انجام بدین فانکشن رو هم که دارین واقعا ممنون میشم
من هرکاری کردم نشد ممنون میشم اگه کمکم کنی
کد های فایل 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']);
نمیدونم ساختار پروژت به چه شکله و مطمئن نیستم کار کنه
انجام دادم این ارور رو میده
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
<?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']);
?>
کد هایی که برای Api.php بود یه مشکلی داشت ویرایش کردم الان دوباره تست کن
خط سوم نحوه استفاده کاربر هم $ آرایه output جا افتاده بود
دوباره ارور داد
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
آدرس
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?...
فقط همینه توضیح دیگه ای نداده؟
ممنون میشم اگه کسی کمکم کنه میخوام فانکشن دیکدر کد ها رو از هاست فراخوانی کنم که روش دیکد کردن رو کسی متوجه نشه باید چیکار کنم
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟