تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] كيف افعل دالة shell_exec
#4
[*]shell_exec مستحيل تفعّلها على الاستضافة المشتركة
[*]الحل الأفضل cURL
[*]الكود اللي عطيتك إياه يغنيك عن wget بالكامل
PHP كود :
<?php
session_start
();
require(
'login.php');

if (!isset(
$_SESSION['username'])) {
    die("يجب تسجيل الدخول");
}
?>
<!DOCTYPE html>
<html>
<head>
<title>تحميل ملف</title>
<style>
input[type=text], select {
    width: 100%;
    padding: 12px;
    margin: 8px 0;
    border: 1px solid #ccc;
    border-radius: 4px;
    text-align: center;
}
input[type=submit] {
    width: 100%;
    background-color: #4CAF50;
    color: white;
    padding: 14px;
    border: none;
    border-radius: 4px;
}
body {
    background-image: url("http://akveo.com/blur-admin/assets/img/blur-bg-blurred.jpg");
}
</style>
</head>
<body>

<div style="width:50%;margin:auto;">
<center>
<a href="logout.php">تسجيل خروج</a>
<hr>

<h2>تحميل ملف جديد</h2>

<form method="post">
<input required type="text" name="link" placeholder="الرابط المباشر"><br>
<input required type="text" name="dir" placeholder="المجلد (مثال: uploads/)"><br>
<input type="submit" name="download" value="ابدأ التحميل">
</form>

<hr>

<?php

if (isset($_POST['download'])) {

    $link trim($_POST['link']);
    $dir  trim($_POST['dir']);

    // ✅ التحقق من الرابط
    if (!filter_var($linkFILTER_VALIDATE_URL)) {
        die("❌ رابط غير صالح");
    }

    // ✅ حماية المسار (منع الخروج خارج الموقع)
    if (strpos($dir"..") !== false) {
        die("❌ مسار غير مسموح");
    }

    // ✅ إنشاء المجلد إذا غير موجود
    if (!is_dir($dir)) {
        mkdir($dir0755true);
    }

    // ✅ بدء cURL
    $ch curl_init($link);

    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HEADER => true,
        CURLOPT_NOBODY => false,
        CURLOPT_TIMEOUT => 300,
    ]);

    $response curl_exec($ch);

    if (curl_errno($ch)) {
        die("❌ خطأ: " curl_error($ch));
    }

    $header_size curl_getinfo($chCURLINFO_HEADER_SIZE);
    $headers substr($response0$header_size);
    $body    substr($response$header_size);

    // ✅ محاولة استخراج اسم الملف من الهيدر
    $filename "";

    if (preg_match('/Content-Disposition:.*filename=["\']?([^"\']+)/i'$headers$matches)) {
        $filename $matches[1];
    }

    // إذا لم يتم العثور عليه
    if (!$filename) {
        $filename basename(parse_url($linkPHP_URL_PATH));
    }

    // إذا فاضي
    if (!$filename || strlen($filename) < 3) {
        $filename "file_" time();
    }

    $filepath rtrim($dir"/") . "/" $filename;

    // ✅ حفظ الملف
    if (file_put_contents($filepath$body)) {
        echo "✅ تم التحميل بنجاح<br>";
        echo "? المسار: " $filepath;
    } else {
        echo "❌ فشل حفظ الملف";
    }

    curl_close($ch);
}

?>

</center>
</div>

</body>
</html> 
[صورة مرفقة: 177461173141861.gif]
الرد }}}
تم الشكر بواسطة: nnnjk , nnnjk , nnnjk


الردود في هذا الموضوع
كيف افعل دالة shell_exec - بواسطة nnnjk - 03-04-26, 11:07 PM
RE: كيف افعل دالة shell_exec - بواسطة Amir_Alzubidy - 04-04-26, 01:40 AM
RE: كيف افعل دالة shell_exec - بواسطة nnnjk - 04-04-26, 03:01 AM
RE: كيف افعل دالة shell_exec - بواسطة Amir_Alzubidy - 04-04-26, 03:18 AM
RE: كيف افعل دالة shell_exec - بواسطة nnnjk - 04-04-26, 04:12 AM
RE: كيف افعل دالة shell_exec - بواسطة Amir_Alzubidy - 04-04-26, 04:07 PM
RE: كيف افعل دالة shell_exec - بواسطة nnnjk - 04-04-26, 04:45 PM
RE: كيف افعل دالة shell_exec - بواسطة nnnjk - 20-04-26, 10:38 PM

المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [سؤال] ماهي دالة مسوؤلة عن استخراج ملفات iso في php اوjavascript alizid 1 601 28-03-23, 10:14 AM
آخر رد: sanyor77
  [كود] بشرى . لقد عرفت فك ترميز النصوص العربية (توجد دالة جاهزة) سعود 7 5,421 26-10-14, 12:18 PM
آخر رد: سعود

التنقل السريع :


يقوم بقرائة الموضوع: