بسم الله
العديد منا يفضل ألا يظهر رابط الصورة مباشرة مع الصورة وهذا لعدة أسباب منها ما هو متعلق بالأمان حيث أنه من خلال رابط الصورة يتم التعرف على اسماء المجلدات عندك وهذا شئ غير محبب
ايضا في الأغلب يكون المجلد الذي ترفع عليه الصور يأخذ التصريح 777 وهذا يعني انه يمكن القراءة منه او الكتابة داخله وهذا يجعلنا نفضل إخفاء أسماء هذه المجلدات ايضا
والبعض منا يفضل ان يحمي هذه المجلدات بحيث لا يسمح بالدخول عليها الا من خلال اسم المستخدم وكلمة المرور بطريقة حماية الملجد المعروفة في لوحة التحكم الخاصة بموقعك سواء أكانت
cpanel أو plesk
فاذا فعلت هذا وكانت صفحة عندك على الموقع بها رابط لصورة داخل المجلد المحمي فلن تحمل الصورة داخل الصفحة الا بادخال اسم المستخدم وكلمة المرور لهذا المجلد فيمكنك في هذه الحالة إستخدام هذه الطريقة
والان إلى الطريقة
سأفترض أنك تخزن مسارات الصور داخل قاعدة البيانات وهذا هو الأغلب وسوف أعتمد في الشرح على هذا
سسنشأ صفحة PHP
ولنسميها مثلا photo.php
وسيكون بها الكود التالي
if($_GET['id']){ // نكتب هنا كود لاستخراج الصورة من قاعدة البيانات //مهمته الاساسية جلب مسار الصورة من قاعدة البيانات //بعد الحصول على مسار الصورة وليكن داخل المتغير المسمى // $img_path //نستخدم الكود التالي header('Content-Type: image/jpeg'); $myFile=$img_path; $fh = fopen($myFile, 'r'); $size=filesize($myFile); $theData = fread($fh, $size); echo $theData; } else { header('location: index.php'); }
المتغير الخاص بال id الخاص بالصورة له قيمة ام لا وهو
$_GET['id']
واذا لم يكن له قيمة معروفة يتم تحويل المستخدم مباشرة الى الصفحة الرئيسية للموقعمن خلال هذا هذا الجزء
} else {
header('location: index.php');
}
وهذا شئ يضاف للتأمين لان الصفحة
image.php
لا فائدة من الدخول المباشر عليها وايضا لا فائدة من الدخول عليها بدون قيمة للid
وهذا الجزء من الكود
image.php
لا فائدة من الدخول المباشر عليها وايضا لا فائدة من الدخول عليها بدون قيمة للid
وهذا الجزء من الكود
header('Content-Type: image/jpeg');
$myFile=$img_path;
$fh = fopen($myFile, 'r');
$size=filesize($myFile);
$theData = fread($fh, $size);
echo $theData;
الخاص بجلب الصورة
وعرضها كملف
وعرضها كملف
بعد ذلك بقي آخر جزء وهو كيفية وضع الصورة داخل ملف htmlمثلا حتى تظهر بصورة عادية للمستخدم
سنضيف التاج الخاص بالصورة في النمان الذي نريد ظهورها به كما يلي
سنضيف التاج الخاص بالصورة في النمان الذي نريد ظهورها به كما يلي
<img src="image.php?id=30" width="180" height="211" />
وبهذا ستظهر الصورة بالملف ان شاء الله بلا مشكلة
وسيكون المسار الخاص بها
وسيكون المسار الخاص بها
http://www.yousite.com/image.php?id=30
ولن يصل المستخدم للمكان الحقيقي للصورة على الموقع
ويمكن ان تستخدم
RewriteRule
لتعديل هذا المسار لشئ آخر ايضا لو أحببت
ويمكن ان تستخدم
RewriteRule
لتعديل هذا المسار لشئ آخر ايضا لو أحببت




0 comments:
إرسال تعليق