الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كيف يمكن تنفيذ هذه المهمة

مغلق
بدأه الزرعوني في 6 يونيو 2005 · 17 رد · 879 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله الرحمن الرحيم

سعادة مبرمجي و محترفي PHP

السلام عليكم و رحمة الله و بركاته

لدي مشكلة كبيرة في مركز التحميل Download center

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

و الحل الوحيد الذي في اعتقادي هو

ان يقوم السكربت بانشاء مجلد بشكل مؤقت يكفي المستخدم لمدة تحميل الملف

و بعدها يقوم بحذف النسخة تلقائيا ً

و لكن هل من الممكن تنفيذ هذا الشيء بال PHP ? و كيف يكون ذلك ؟

و أيضا ً لدي مشكلة اخرى

و تكمن هذه المشكلة في ايجاد حل لمشكلة التسجيل للشخص الواحد بأكثر من اسم

فهل من الممكن السيطرة على هذا الموضوع ؟

و لكن المشكلة الأولى هي الأهم و المهم

و جزاكم الله كل خير و بارك الله فيكم

#2

بالنسبة لمشكلة الاولى, اظن انك تستطيع تخزين الملف في قاعدة بيانات بحيث لا يوجد اي رابط يستطيع الوصول لها من الخارج, و تقوم بانشاء رابط مؤقت للوصول اليه.

لا تسألني كيف فأنا لا اعرف كثيرا في الـ php و لكنني رأيت بعض المواقع تعمل شي من هذا القبيل ..

#3

الفكرة الأولى لم أفكر فيها لأن من يكشف اللينك الخاص بشئ فأنا كفيل بإذاقته المراره :D

اقتباس
تكمن هذه المشكلة في ايجاد حل لمشكلة التسجيل للشخص الواحد بأكثر من اسم

هل تقصد فى منتدى جاهز؟

فى كل الحالات ستحذر العضو عن طريق كشفك للآى بى .. ولكن لا ضمان برمجى لذلك .. فقد يكون لى 7 شخصيات فى منتدى ولا يكتشفها أحد (اللهم إلا من أخطاء مثلا :) )

#4
anwarica كتب:
الفكرة الأولى لم أفكر فيها لأن من يكشف اللينك الخاص بشئ فأنا كفيل بإذاقته المراره :D

هل تقصد فى منتدى جاهز؟

فى كل الحالات ستحذر العضو عن طريق كشفك للآى بى .. ولكن لا ضمان برمجى لذلك .. فقد يكون لى 7 شخصيات فى منتدى ولا يكتشفها أحد (اللهم إلا من أخطاء مثلا :) )

يبدو ان بيشو عجزت :lol:

#5
اقتباس
يبدو ان بيشو عجزت

جرررررر...

مش بيشو!

ولا أى لغه تستطيع أن تمنع أحد من التسجيل مره أخرى ..

#6

السلام عليكم

تانى مشكلة ملهاش حل على الأطلاق

لأن انت ممكن تاخد ip جهاز واحد بيدخل منه اكتر من عضو بالصدفة

زى مثلا السيبر

بيستخدم الجهاز 50 واحد فى اليوم و يمكن منهم 4 مشتركين عندك

و انت كدة تعتبر ظلمتهم

و فى افتراضات تانية كتير بردو بس عموما المشكلة ملهاش حل بأى لغة

خلينا فى اول مشكلة :

جميل ان المبرمج يفكر فى حل لمشكلة اول مرة يشوفها قبل ميروح يسأل

جميل جدا

انت قولت نعمل مجلد مؤقت و نشيله تانى بعد انتهاء التحميل

طب حتعرف ازاى ان التحميل انتهى ؟!!!!

طيب عندك اكتر من زائر بيحملوا نفس الملف فى نفس الوقت

نقول مثلا 50 زائر * 50 مجلد * 50 ملف

كدة انت حتعمل ضغط عالى على السيرفر و شركة الأستضافة حتقفلك الموقع بالشمع الأحمر

بس عموما جميل انك وصلت لفكرة تنفذ الغرض على اى حال :)

انا حديك اول الفكرة و انت عليك تطورها و تدور فى المانيول :

انت المهم عندك تعرف الزائر جى من فين قبل ميوصل لوصلة التحميل

1- لو كان جى من موقعك يبقى خير و بركة و يكمل عادى

2- لو جى من موقع تانى يبقى تعرف ان الوصلة مسروقة و تحول الزائر ساعتها لأى صفحة انت عايزها

طيب بص كدة

// معرفة من اين اتى الزائر
$from=getenv("http_referer");

// نقسم الـ url لأجزاء

$url=parse_url($from);

// إستخراج دومين الموقع القادم منه الزائر

$domain=$url['host'];

if ($domain!=$_SERVER['HTTP_HOST'])
echo " هذه الصفحة لا يمكن الوصول لها مباشرة " ؛
     exit;
    }
//**************************************************************

متستخدمش الكود دة زى مهو

لازم تعدل عليه بعد متجربه و تقرى عن الدوال دى فى المانيول كويس

لأن انا مقلتش كل حاجة عن الفكرة و فى حجات سايبهالك حتشوفها من الخبرة

اقتباس
يبدو ان بيشو عجزت  :lol:

:D لا و الله معجزتش ولا حاجة اهى لسة بخيرها

Web Citizen

ShrefInLife.gif

__________

General blog : Shref In Life

#7

شكرا ً جزيلا ً لكل من ساهم في نقد أو اضفاء فكرة جديدة على هذه الفكرة

و كلامك سليم 100% أ-شرف

و لكن لو نظرنا في الحل

فاعتقد ان لدي حل ثاني

و لكن المشكلة لا اعرف ابدا ً كيف ممكن تنفيذ هذه المهمة

( انا مش مبرمج PHP فقط اعرف التعامل مع ملفاتها لذا فهنا هي المشكلة )

الحل الذي لدي في منع تحميل الملف من موقع آخر هو التالي

فأرجوا من من يعرف كيفية عمل هذا الشيء ان يشرفني بردة الكريم

الحل :

انشاء سكربت يقوم بتغيير اسم المجلد الذي يحتوي على المجلدات أو الملفات المراد حمايتها

و يقوم بتغيير اسم المجلد نفسه و أيضا ً تغيير اسم المجلد في الروابط المدخلة في قاعدة البيانات

و يكون عمل هذا السكربت يدوي

اذ استطيع تسمية المجلد بالاسم الذي اريدة كل يوم أو كل يومين أو كل ثلاثة ايام

بهذه الطريقة لن يستطيع نشر اي رابط لأنه راح يتغيير بشكل عشوائي كل يوم

في اعتقادي تنفيذ هذا الشيء امرة هيين و سهل برمجيا ً

و لكن مشكلتي لا اعرف كيف

انا استخدم 4image كمركز تحميل ملفات

فهل بالامكان تنفيذ هذه الفكرة ؟

#8

السلام عليكم ورحمة الله وبركاته

تحية طيبة للكل

قرأت الموضوع واتمنى ان اكون فهمت مقصدكم وهو

يكون عندي مثلا صفحة فيها ارتباطات لملفات تكون على موقعي ، ولا أريد أن يأتي شخص آخر وينسخ الرابط ويضعه في صفحة ويضعها على موقعه ؟؟ هل هذا محور حديثكم ؟؟ إذا كان كذلك فهذا الأمر سهل

جربوا المثال التالي

هنا صفحة لنفترض أنها لي وفيها ارتباط لملف

اضغط هنا - الموقع الرئيسي الذي توجد به الوصلة

وهنا صفحة شخص آخر قام بنسخ الرابط ووضعه في موقعه

اضغط هنا - الموقع الذي تم وضع صفحة فيها رابط منسوخ

اتمنى ان أكون قد فهمت

وشكرا للكل

460.gif

#9

أظني فهمت كيف الحركة

و لكن اذا شخص جاب وصلة تحميل مباشر للملف

يعني zip.

مثلا ً

http://www.cnn.com/zipfiles/winzip.rar

مثلا ً

كيف ممكن نتحكم بها

فمافي طريقة ممكن انها تفيد إلا الي قلتها انا

لكن المشكلة اني ما اعرف كيف اكتب هذا الكود الي فكرته في راسي من زمان

فيالي لو واحد يتكرم علينا بكتابت الكود

ولو كان بفلوس ما عندي مانع

#10

ماذا عن Disable Hot link?

حقيقة لا أتذكر أننى فكرت فى الموضوع بهذه الناحية .. ولكن هناك سكريبتات تمنع تداول ملفات الموقع بأى امتداد .. وموقعى مثلا أحدد عليه نوع الملف الممنوع تحميله .. ولكن لا أعرف إن كانت هى المطلوبه فلم أجربها عملياً :)

#11

لو تقصد نعمل كدة فى .htaccess

يبقى كدة بتمنع ان الملف يتحمل نهائى على ما اتذكر

و الله اعلم

الزرعونى :

ممكن تستخدم الدالة rename لتغيير اسم المجلد كما تشاء

http://www.php.net/manual/en/function.rename.php

Web Citizen

ShrefInLife.gif

__________

General blog : Shref In Life

#12

طيب مهمة تغيير اسم المجلد بسيطة

و لكن تغيير اسم المجلد الموجود في الرابط الموجود في قاعدة البيانات

و انا عندي تقريبا ً 180 ملف

و كلهم في مجلد واحد

بغيير اسم المجلد و هذا شيء بسيط

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

هل من الممكن ذلك او احول النظام كله الى ASP.net ?

لأن اذا ال PHP ما نفعني مطر راح اخلي شخص يبرمجه لي بال ASP.net و هذا الشخص موجود و لكن انا تفاهمي مع ال PHP أكثر

-----------------

أخوي اشرف

تقدر تحلي المشكلة بارك الله فيك ؟

و لك الي تبغيه ؟

#13

180 ملف فى مجلد واحد !!

اوكى يعنى انت مشكلتك انك تغير اسم المجلد فى كل rows قاعدة البيانات

جرب دة كدة بعد متغير فيه

<?php
// الأتصال بقاعدة البيانات
$connHolder = mysql_pconnect("localhost","username","password");

mysql_select_db("database" ,$connHolder);

// دة اسم المجلد الجديد
$newDirName = "alzr3ony";

// هنا حنغير اسم المجلد لكل الملفات فى الجدول
$queryData  = "UPDATE TableName
               Set DirName=".$newDirName.";";

$result     = mysql_query($queryData ,$connHolder);

?>

جملة SQL الى فوق دى غير فيها TableName الى اسم الجدول

DirName هو العمود الحاوى لأسماء المجلدات

إن شاء الله يكون دة طلبك

و بلغنا بالنتيجة

Web Citizen

ShrefInLife.gif

__________

General blog : Shref In Life

#14

هممم

اظن قربنا نوصل للحل

لكن في مشكلة وحدة

السكربت ما يعرف ان في مجلد يعني ما اقدر اقوله DirName

لأن السكربت الي استخدمه مافيه شيء اسمه DirName

لأني ضايف الملفات في مركز التحميل على انها وصلات مش على انها المجلد الموجود ضمن السكربت ( لاحتياط الأمان اكثر )

ممكن اكلمك على المسنجر اخوي أشرف

لأنها مشكلة هامتني الصراحة و مو قادر اشتغل

MSn : uaen1@msn.com

#15
اضغط هنا

460.gif

#16

هلا والله اخوي المتميز

لكن اخوي كسر هذه الحماية بسيط جدا ًَ

و لا اريد ذكرة

فهل ممكن ان يعلمني احد كيف اكتب الكود

#17

حسنا ما رأيك بهذه الطريقه:

http://www.the-underdogs.org/downloadfile....tax.zip&id=1297

حيث لا بد من ادخال رقم يظهر على صوره .. هذه الطريقة مفضله أيضا للحماية من الروبوتات التى تأخذ الوصله وتنشرها (فضيحه أكبر :lol: :lol: )

مقبوله؟

#18

طيب استخدم دالة rename

rename(old, new);

460.gif

هذا الموضوع مغلق.

مواضيع مشابهة