ركن مشاكل وطلبات المنتديات :: لديك مشكلة او طلب بالمنتدي ضعها هنا فسوف تجد من يعطيك الحل بإذن الله ((ضع عنوان مناسب ووصف مختصر يوضح مشكلتك ))

مشكلة سحب الملفات من موقعي الى موقعي

السلام عليكم طور الاخوان الغالين سكربت رفع الملفات من الجهاز وسحب الملفات من روابط لاكن عرضت علي مشكلة وهي...

احصائياتى

الردود
15

المشاهدات
1454
الساعه
.:: عضو فعال ::.
الإجابات المقدمة: 1
  • الساعه is an unknown quantity at this point

  • الساعه غير متواجد حالياً

المشاركات
198

+التقييم
8

تاريخ التسجيل
Oct 2020

الاقامة
Arbic

نظام التشغيل
Other

رقم العضوية
2450
04-25-2026, 07:32 PM
المشاركة 1
04-25-2026, 07:32 PM
المشاركة 1
افتراضي تمت الإجابة مشكلة سحب الملفات من موقعي الى موقعي
السلام عليكم
طور الاخوان الغالين سكربت رفع الملفات من الجهاز وسحب الملفات من روابط
لاكن عرضت علي مشكلة وهي اذا كان الملف على موقعي فاانه يقوم بسحبه بمعنى اخر ينسخه مرتين واريد كود منع سحب الملفات من موقعي
جربت هذا الكود
كود:
$matar=$remote_links;
            $matar=strtolower($matar);
            if (eregi("domain.site", $matar)) ;
$remote_links= '';
وطلعت مشكلة
كود PHP:
function eregi() is deprecated in 
وجربت هذا الكود
كود PHP:
$matar=$remote_links;
            
$matar=strtolower($matar);
            if (
preg_match("domain.site"$matar)) ;
$remote_links''
طلعت مشكلة وهي
كود:
preg_match(): Delimiter must not be alphanumeric or backslash
ارجوا من الاخوان المساعده


أفضل جواب - كتبه codeNET
السلام عليكم
الخطا برمجي بمعنى من نوع php وليس هتميل
اريد كود مختصر يستعمل preg_match
لانه يعمل بدون مشاكل في موقعي في سكربت اخر
اهلاً عزيزي ..
إذا كنت تفضل استخدام preg_match بدلاً من strpos للتحقق من الاستثناءات، فهذا هو الكود الصحيح والمختصر.

في preg_match يجب وضع محددات (Delimiters) مثل / في البداية والنهاية، كما نستخدم العلامة \ قبل النقطة لأن النقطة في لغة البرمجة تعني "أي حرف"، ونحن نريدها "نقطة" حقيقية.
كود الاستثناء باستخدام preg_match:
كود:
// ضع رابط موقعك هنا بدلاً من domain.site
$my_site = "domain\.site"; 


if (preg_match("/$my_site/i", $current_link)) {
    echo "Error: You cannot fetch files from your own domain ($current_link)<br>";
    continue; 
}
وإذا أردت استثناء "عدة مواقع" في سطر واحد باستخدام preg_match:
كود:
// استخدم العلامة | للفصل بين المواقع
$excluded = "domain\.site|another-site\.com|mysite\.net";

if (preg_match("/($excluded)/i", $current_link)) {
    echo "Error: This domain is not allowed!<br>";
    continue;
}
لماذا الكود السابق كان يعطيك خطأ؟
الخطأ الذي ظهر لك سابقاً Delimiter must not be alphanumeric كان بسبب أنك كتبت الدومين مباشرة داخل الدالة هكذا: preg_match("domain.site", ...)، بينما الصحيح هو وضعه بين شرطات مائلة /domain\.site/.

تحياتي لك
اخوك مهدي حميد
قديم 04-25-2026, 11:48 PM
المشاركة 2
codeNET
.:: عضو فعال ::.
  • codeNET غير متواجد حالياً
الإجابات المقدمة: 1
افتراضي رد: مشكلة سحب الملفات من موقعي الى موقعي
المعذرة اخي : الان تريد مني ان اضيف لك ميزة عدم سحب الملفات من روابط معينة او ماذا او استثني فقط موقعك ؟

قديم 04-25-2026, 11:54 PM
المشاركة 3
codeNET
.:: عضو فعال ::.
  • codeNET غير متواجد حالياً
الإجابات المقدمة: 1
Smile رد: مشكلة سحب الملفات من موقعي الى موقعي
لمنع السكربت من سحب ملفات موجودة بالفعل على موقعك (أو أي موقع آخر تريد استثناءه)، سنستخدم دالة strpos لأنها أسرع وأبسط في هذه الحالة، أو preg_match بالطريقة الصحيحة.
إليك التعديل المطلوب داخل حلقة السحب (Loop) الخاصة بالروابط:

كود:
    
    if (!empty($_POST['remote_urls'])) {
        $remote_links = array_filter($_POST['remote_urls']);
        if (!empty($remote_links)) {
            echo "<h3>نتائج السحب من الروابط:</h3>";
            
            // قائمة المواقع المستثناة (ضع نطاق موقعك هنا)
            $excluded_domains = array("domain.site", "your-other-site.com");

            foreach ($remote_links as $current_link) {
                $current_link = trim($current_link);
                if(empty($current_link)) continue;

                
                $is_excluded = false;
                foreach ($excluded_domains as $domain) {
                    if (strpos(strtolower($current_link), strtolower($domain)) !== false) {
                        $is_excluded = true;
                        break;
                    }
                }

                if ($is_excluded) {
                    echo "<span style='color:red;'>خطأ: لا يمكن سحب ملفات من الموقع المستثنى ($current_link)</span><br><hr>";
                    continue; 
                }

                
                $path_info = pathinfo(parse_url($current_link, PHP_URL_PATH));
                $ext = isset($path_info['extension']) ? $path_info['extension'] : 'jpg';
                
                $new_name = "fetch_" . time() . "_" . rand(100, 999) . "." . $ext;
                $target = $fileplace . "/" . $new_name;

                $content = @file_get_contents($current_link, false, $context);
                if ($content) {
                    if (file_put_contents($target, $content)) {
                        @watermark($target, $ext, 'logo/logo.png');
                        
                        $log_data = "$description,$new_name,$ip\n";
                        $fh = fopen("./files/ddd.mfh", "a+");
                        fwrite($fh, $log_data);
                        fclose($fh);

                        echo "تم سحب وتسجيل: <a href='".$site_url.$target."' target='_blank'>$new_name</a><br><hr>";
                    }
                } else {
                    echo "فشل سحب الرابط: $current_link <br><hr>";
                }
            }
        }
    }
شرح التعديلات:
1. قائمة الاستثناءات ($excluded_domains): وضعت لك مصفوفة تحتوي على المواقع التي لا تريد السحب منها. يمكنك إضافة أي عدد من المواقع بداخلها.
2. الفحص عبر strpos: هذه الدالة تبحث عن وجود اسم الدومين داخل الرابط. إذا وجدته، ستقوم بتغيير قيمة $is_excluded إلى true.
3. كلمة continue: وظيفتها هي "تخطي" الرابط الحالي وعدم إكمال عملية السحب أو الحفظ أو التسجيل في الملف، مما يمنع تكرار الملفات الموجودة أصلاً على موقعك.
4. إصلاح أخطاء PHP: * بدلاً من eregi المرفوضة، استخدمنا البحث النصي البسيط وهو الأفضل هنا.
• إذا أصررت على استخدام preg_match فالشكل الصحيح لها هو: preg_match("/domain\.site/i", $matar).
بهذا الشكل، لن يقوم السكربت بنسخ أي ملف إذا كان الرابط يؤدي إلى موقعك الخاص.

تحياتي لك ..
اخوك مهدي حميد

قديم 04-25-2026, 11:56 PM
المشاركة 4
codeNET
.:: عضو فعال ::.
  • codeNET غير متواجد حالياً
الإجابات المقدمة: 1
افتراضي رد: مشكلة سحب الملفات من موقعي الى موقعي
عند تطبيق الشرح ، اخبرني بالنتيجة ..

قديم 04-25-2026, 11:58 PM
المشاركة 5
codeNET
.:: عضو فعال ::.
  • codeNET غير متواجد حالياً
الإجابات المقدمة: 1
افتراضي رد: مشكلة سحب الملفات من موقعي الى موقعي
لكـن انا متيقن بان سكربت سيعمل بامتياز لاني ازلت الدالة القديمة eregi() واضفت متطلبات وجود محددات preg_match() .

قديم 04-26-2026, 12:13 AM
المشاركة 6
codeNET
.:: عضو فعال ::.
  • codeNET غير متواجد حالياً
الإجابات المقدمة: 1
افتراضي رد: مشكلة سحب الملفات من موقعي الى موقعي
اتمنى لك رحلة موفقة ، ولاتنسانا بالدعاء .

اخوك مهدي حميد

قديم 04-26-2026, 08:58 AM
المشاركة 7
الساعه
.:: عضو فعال ::.
  • الساعه غير متواجد حالياً
الإجابات المقدمة: 1
افتراضي رد: مشكلة سحب الملفات من موقعي الى موقعي
الله يعطيك العافيه الاخ مهدي
نجح الكود
ماقصرت

قديم 04-26-2026, 09:50 AM
المشاركة 8
codeNET
.:: عضو فعال ::.
  • codeNET غير متواجد حالياً
الإجابات المقدمة: 1
افتراضي رد: مشكلة سحب الملفات من موقعي الى موقعي
الله يعطيك العافيه الاخ مهدي
نجح الكود
ماقصرت
تحيه طيبة لك صديقي ، العزيز .

قديم 04-26-2026, 07:47 PM
المشاركة 9
الساعه
.:: عضو فعال ::.
  • الساعه غير متواجد حالياً
الإجابات المقدمة: 1
افتراضي رد: مشكلة سحب الملفات من موقعي الى موقعي
الاخ مهدي
بعد التأكد من الكود
الاول لك في الموضوع هذا
خرجت صفحة بيضاء فارغه
واستخدمت الدالة
كود:
 preg_match("/domain\.site/i", $matar).
فلم ينجح الكود
ليتك تعطيني كود مختصر

قديم 04-26-2026, 09:12 PM
المشاركة 10
الساعه
.:: عضو فعال ::.
  • الساعه غير متواجد حالياً
الإجابات المقدمة: 1
افتراضي رد: مشكلة سحب الملفات من موقعي الى موقعي
نسيت اظيف كود الهتميل
لذلك خرجت صفحة بيضاء
لاكن بعد تجربة الكود الاخير
خرجت الاخطاء التاليه ولم يسحب اي ملف ولو كان رابط خارجي
كود:
Notice: Undefined index: remote_urls in /home/xxx/domains/xxx.site/public_html/uploads.php on line 81

Warning: array_filter() expects parameter 1 to be array, null given in /home/x xx/domains/xxx.site/public_html/uploads.php on line 81

مغلق

العلامات المرجعية

مشكلة سحب الملفات من موقعي الى موقعي


أدوات الموضوع

الانتقال السريع
المواضيع المتشابهه للموضوع: مشكلة سحب الملفات من موقعي الى موقعي
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
[wordpress] تم اختراق موقعي ahmedkhalifa ركن تطوير المواقع 3 08-22-2020 10:38 PM
[ شرح ] مشكلة في نقل دومين موقعي من شركة godaddy إلى شركى Namecheap FSJES AGADIR ركن تطوير المواقع 6 07-11-2020 06:17 PM
[ استفسار ] : رأيكم حول أداء موقعي khairanynabil ركن تقنيات محركات البحث سيو SEO 6 05-23-2020 05:44 AM
طلب طريقة لتركيب amp على موقعي ابو فهد ركن مشاكل وطلبات الزين فورو XENFORO 1 08-01-2017 10:03 PM
موقعي لا يتم فهرسته في جوجل الاعصر ركن تقنيات محركات البحث سيو SEO 3 02-01-2016 12:08 AM




الساعة الآن 08:15 AM
RSS 2.0XML Site MapTAGS SiteInfo SiteRSS FeedMap SectionsvB MapsMap TagSitemap ForumMaps Forum