المشاركة الأصلية كتبت بواسطة قاصد
بسم الله الرحمن الرحيم
السلام عليكم
أخي الكريم حمد الشمري بارك الله فيه
أشكرك على التوضيح , إذا كنت تريد حماية أي صفحة بحيث لا يدخل أحد إلا باسم مستخدم وكلمة مرور فيجب عليك أن تعرف التعامل مع الجلسات الsession وهي سهلة للغاية
وهذا الدرس سيفيدك إن شاء الله
http://phpvillage.org/print.php?idp=53 وهو من قرية البي اتش بي
وكل ما أخبرتك عنه بسيط للغاية ولكن يحتاج إلى القليل جدا من التجربة و قراءة الشروح
ما عنيته بكيفية رفع الصور هو كيف ترفعها عن طريق البرنامج أي برمجيا بحيث تضع نموذج لرفع الصور في لوحة التحكم
على العموم الموضوع بسيط وسيكسبك خبرة كبيرة في الphp إن كنت تريد أن تعمله بنفسك
في اعتقادي أنك ستحتاج إلا الملفات التالية
- الملفات الرئيسية
----- ملف مكتبة الصور الذي سيعرض الصور
----- ملف الكونفج config الذي به إعدادات البرنامج
----- ملف تسجيل الدخول وستضع فيه التحقق من الاسم وكلمة السر وتضع فيه نموذج تسجيل الدخول
-ملفات الأدمن (ملفين)
----- واحد لرفع الصور
----- والثاني لإضافة عضو جديد
الفكرة ببساطة أنه عندما يفتح المستخدم صفحة عرض الصور والتي سميتها أنت pic.php سيتم إستدعاء الملف access.php والذي بدوره يحتوي على نموذج لإدخال اسم المستخدم وكلمة السر وهذا النموذج عند تعبئته وإرساله سيبحث عن الاسم وكلمة السر في قاعدة البيانات فإذا وجد الاسم وكلمة السر باستخدام الدالة mysql_num_rows فإذا كانت النتيجة بـ"1" فمعناه أنه وجد نفس الاسم وكلمة المرور
وعندها يسمح له بالدخول أو إذا كانت النتيجة صفر فلن يسمح له بالدخول
وهذا مثال لملف التحقق مع الشرح لتستخدمه باسم access.php وهذ مقارب لما أستخدمه حاليا
كود PHP:
<?php // access.php
/*
هذا السطر يستخدم الدالة isset للتحقق من وجود المتغير المسمى username فإن كان غير موجود فسيعرض نموذج تسجيل الدخول لكي يدخل الزائر اسم المستخدم وكلمة السر
*/
if(!isset($username)) {
?>
<h1> Login Required </h1>
<p><form method="post" action="<?=$_SERVER['PHP_SELF']?>">
User ID: <input type="text" name="username" size="8" /><br />
Password: <input type="password" name="password" SIZE="8" /><br />
<input type="submit" value="Log in" />
</form>
<?php
exit;/*هذه الجملة سوف تأمر البرنامج بالتوقف وعدم عرض باقي الصفحات بحيث عندما ينتهي البرنامج من عرض النموذج فإنه سيتوقف
*/
}
else//أما لو كان username موجود فسيتحقق من صحته ومطابقته لكلمة السر
{
session_register("username");//هنا سنحفظ المتغير المسمى username في الجلسة
session_register("password");//وهنا سنحفظ كلمة السر في الجلسة
/*الاستعلام التالي للبحث في قاعدة البيانات عن اسم المستخدم وكلمة السر*/
$sql = "SELECT * FROM useres WHERE
uname = '$username' AND password = '$password'";
$result = mysql_query($sql);
if (mysql_num_rows($result) == 0) {/*إذا كانت نتسجة البحث تساوي صفر فمعناه أن الدالة لم تجد اسم المستخدم وكلمة السر التي بحثت عنها وبالتالي فاسم المستخدم أو كلمة السر خاطئة
*/
echo $username;
echo "<br>";
echo $password;
session_unset("username");/*بما أن الاسم وكلمة السر خطأ إذا احذف المتغير من الجلسة */
session_unset("password");//واحذف كلمة السر من الجلسة
?>//واعرض رسالة تبين أنه لا يمكنه الدخول
<head>
<title> لا يمكنك الدخول</title>
</head>
<body>
<h6> بياناتك خاطئة لذلك لا يمكنك الدخول</h6>
<?php
exit;/*وهذه الجملة ستأمر البرنامج بعد عرض باقي الكود وهي مهمة وسأوضح لك لاحقا إن شاء الله لماذا هي مهمة
*/
}
}
?>
الملف السابق المسمى acsess.php يجب أن تدرجه في كل الصفحات التي تريد أن تحميها
فمثلا الصفحة pic.php يجب أن تبتدئ بهذا الشكل
كود PHP:
<?PHP
session_start();/*هذه الجملة ومهمة وهي تخبر الphp بأنك تريد التعامل مع الجلسات ومهم أن تكون في الأعلى
*/
include("config.php");//فيه معلومات البرنامج كاسم العنوان السيرفر واسم قاعدة البيانات
include("db.php");//فيه معلومات إنشاء اتصال بقاعدة البيانات بناءا على معلومات config
/*
هذا هو مربط الفرس وهو سيعرض النموذج ويتحقق من الاسم كلمة السر وسينهي البرنامج إن كانت خاطئة باستخدام الجملة exit التي أخبرتك بأنها مهمة
وبالتالي فلن يستطيع المستخدم مشاهدة العبارة أهلا بك يا فلان إلا إذا كانت بياناته صحيحة
*/
include("access.php");
//لن يعرض باقي النص إلا إذا كانت البيانات صحيحة
/*
ولماذا أهلا بي يا username
لأن يوزر نيم سبق أن سجلنا في الجلسة وبالتالي يصبحح معمم على كل الصفحات التي تحتوي على session_start في أولها وبالتالي فهو يحتوي على اسم المستخدم الذي أدخل في نموذج تسجيل الدخول في ملف access.php
*/
echo "أهلا بك يا $username
إذا كنت ترى هذا النص فأنت بالفعل مسجل لدينا
";
?>
وأخيرا عذرا على الإطالة وإن كان هناك سؤال فأتحفنا به
وقد أضفت لك الملفات التالية في المرفقات
acsess.php , pic.php , config.php , db.php
وذلك لأن المنتدى لم يعرض كود php بشكل جيد خصوصا التعليقات
وشكرا