تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[سؤال] كيف افعل دالة shell_exec
#6
(04-04-26, 04:12 AM)nnnjk كتب : يعطيك العافيه
تم رفع الملف ويكتب رابط الملف مع المجلد
لاكن عند الدخول اليه صفحة 404 لم يوجد الملف

الله يعافيك 
المشكلة عندك الآن ليست من التحميل
التحميل تم على الاغلب
لكن المسار اللي ينحفظ فيه الملف على الارجح ليس داخل public_html لذلك يطلع لك 404.

الحل الاسلم والاصح مكان او مسار الحفظ يجب ان يكون في مجلد الـ  public_html 

PHP كود :
<?php
session_start
();
require(
'login.php');

if (!isset(
$_SESSION['username'])) {
    die("يجب تسجيل الدخول");
}
?>
<!DOCTYPE html>
<html>
<head>
<title>تحميل ملف</title>
<style>
input[type=text] {
    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("❌ مسار غير مسموح");
    }

    // ✅ المسار الحقيقي داخل public_html
    $basePath __DIR__// مكان السكربت (داخل public_html)
    $fullDir  $basePath "/" $dir;

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

    // ✅ بدء التحميل
    $ch curl_init($link);
    curl_setopt_array($ch, [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_HEADER => true,
        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();
    }

    // تنظيف الاسم
    $filename preg_replace('/[^a-zA-Z0-9\.\-_]/''_'$filename);

    $filepath $fullDir "/" $filename;

    // ✅ حفظ الملف
    if (file_put_contents($filepath$body)) {

        // رابط الوصول
        $fileUrl $dir "/" $filename;

        echo "✅ تم التحميل بنجاح<br><br>";
        echo "? تم الحفظ في: " $filepath "<br><br>";
        echo "<a href='$fileUrl' target='_blank'>? فتح الملف</a>";

    } else {
        echo "❌ فشل حفظ الملف";
    }

    curl_close($ch);
}

?>

</center>
</div>

</body>
</html> 


اذا ما مشي الحال تأكد أن الملف داخل مجلد public_html
وأن المجلد (مثل uploads) موجود داخله و بصلاحيات 755 أو 775 وأن الرابط يشير لنفس المسار داخل الموقع.
[صورة مرفقة: 177461173141861.gif]
الرد }}}
تم الشكر بواسطة: 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
RE: كيف افعل دالة shell_exec - بواسطة Amir_Alzubidy - 21-04-26, 04:22 PM
RE: كيف افعل دالة shell_exec - بواسطة nnnjk - 21-04-26, 05:27 PM

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

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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم