عندى موقع رفع ملفات
كل الطلوب صفحه فيها مكان اكتب فيه رقم الفايل و زرار امسح بحيث انه يزرع امر معين برقم الفايل فى الداتا بيز
الكود المزروعحد يقدر يعملهالى؟كود:UPDATE file SET deleted='1' WHERE uid=' FILE NUMBER '
عندى موقع رفع ملفات
كل الطلوب صفحه فيها مكان اكتب فيه رقم الفايل و زرار امسح بحيث انه يزرع امر معين برقم الفايل فى الداتا بيز
الكود المزروعحد يقدر يعملهالى؟كود:UPDATE file SET deleted='1' WHERE uid=' FILE NUMBER '
يزرع ولا يمسح ؟؟و زرار امسح بحيث انه يزرع امر معين برقم الفايل فى الداتا بيز
كود PHP:
<form method="post" action="delete.php">
<input name="id" type="text" />
<input type="submit" value="delete" />
</form>
<?php
$id = $_POST['id'];
if($id){
//connect
mysql_query("UPDATE files SET deleted='1' WHERE id='$id' LIMIT 1");
//disconnect
}
?>
التعديل الأخير تم بواسطة khashabawy ; 14-10-2010 الساعة 04:14 AM
اخى الفاضل زرع هذا الكود فى الداتا بيز مع اضافه رقم الفايل سيضع رقم داخل بيانات الفايل بحيث ان الفايل لا يظهر للمستخدم و لكن يظل فى قاعده البيانات للمراجعه
غير files إلى إسم الجدول
غير id إلى إسم خانة الآى دى
لا تنسى وضع الإتصال بقاعدة البيانات مكان
//connect
التعديل الأخير تم بواسطة khashabawy ; 14-10-2010 الساعة 04:18 AM
اخى الفاضل مشكور جدا جدا جدا بس معلش استفسار بسيط كده
هل الكود ده ليه اى تاثير اذا فتحت الصفحه و مكانش فيه حاجه محطوطه جوه مكان ادخال رقم الفايل هل ممكن ياثر على باقى الفايلات؟
هل محتاج اخد باك اب الاول؟
لأ مش هيأثر
مش محتاج تاخد بيك أب
هذا تعديل بسيط للحماية من العبث بالملفكود PHP:
<form method="post" action="index.php">
admin name : <input name="admin_name" type="text" /><br />
Password : <input name="password" type="text" />
<br /><br />
file id : <input name="id" type="text" /> <input type="submit" value="delete" />
</form>
<?php
if($_POST){
if($_POST['admin_name'] == "abdallah" && $_POST['password'] == "khashaba"){
$id = htmlspecialchars($_POST['id'], ENT_QUOTES);
if($id != "" || $id != "0"){
//connect
mysql_query("UPDATE files SET deleted='1' WHERE id='$id' LIMIT 1");
//disconnect
}
}else{
die("wrong admin details >> GO away");
}
}
?>
التعديل الأخير تم بواسطة khashabawy ; 14-10-2010 الساعة 04:41 AM
شكرا يا باشا تعبتك معايا الف الف شكر
بس عموما انا هستخدم الكود الاول لانى هحط الملف جوه فولدر مقفل بباسورد بدل مكتب الباسورد كل مره
ليا استفسار عام
هل فيه كود يعمل disconnect عموما لا كود مفتوح مع قاعده البيانات كمثال احطه فى الفوتر لاغلاق اى اتصال بقاعده البيانات؟
اخي عبد الله هو يقصد بالمسح زر ال reset
ايضًا عادة لا يتم ارسال اسم مستخدم وكلمة مرور كما فعلتكود PHP:
<input type="reset" />
بل يتم توليد token يتم خزنه في الsession عن طريق الدالة التالية
uniqid
http://php.net/manual/en/function.uniqid.php
ويتم وضعه في روابط التعديل على شكل متغير get
ثم يتم مقارنته بما في السيشن عند عملية الحذف
اريد ان انبه هنا انه حتى لو فحصنا بالسيشن كالتالي:
بدون وضع هذا التوكن في العنوان يبقى الخطر قائمًاكود PHP:
$_SESSION['is_logged']
ﻹنه بعض الناس يمكن ان تضع الرابط التالي على شكل صورة(في المواقع التفاعلية على شكل موضوع في منتدى مثلا)
وبالتالي يتم تنفيذ الكود عند دخول المستخدم للصفحة(بعد ان قام بتسجيل الدخول)كود PHP:
<img src=http://localhost/update.php?id=12 />
طيب ما المشكلة فى تسجيل الدخول بالطريقة هذه ؟؟
هذه مجرد فورم بسيطه ولا يحتاج تسجيل الدخول إلى كل هذه الأمور من أجل حمايتها ؟
هل تقصد أنه يمكن العبث بها عن طريق الكيرل بوست ؟
نعم يوجد
كود PHP:
mysql_close($con);
لا لم اقصد ذلك
هذه الثغرة شيء اخر اسمها CSRF
انا فقط اعترضت على ارسال اسم المستخدم وكلمة المرور في الفورم