اريد شرح عملي لا نضري..وان اردتم امثلة
كيف با امكاني منع المستخدم من التعليق .حتى يقوم با تسجيل الدخول
لا يوجد شرح عملي لأنك لم تضع الكود الذي تستخدمه للشرح عليه
الشرح النظري :
ضع شرط قبل نموذج (form) إضافة تعليق للتحقق فى حالة عدم تسجيل الدخول يقوم بإخفاء النموذج
وضع نفس الشرط قبل كود تخزين التعليق فى قاعدة البيانات
لكن كيف اعرف انه قام با تسجيل الدخول ..لقد حاولت مراة عديدة اكتب فيها if (isset($_SESSION['username'])){.....} يقول لي خطا
سا اعطيك نموذج اخر وهو الدخول للوحة التحكم ومنع اي شخص من دخولها حتى يكون ادمين
<?php
session_start();
class mysql{
private $localhost="localhost";
private $db_user="root";
private $db_pass="root";
private $db_name="users";
function __construct(){
mysql_connect($this->localhost,$this->db_user,$this->db_pass);
mysql_select_db($this->db_name);
}
function sql(){
$username=$_POST['username'];
$password=$_POST['password'];
$sql="SELECT * FROM user WHERE username='$username' AND password='$password'";
$query=mysql_query($sql);
$num=mysql_num_rows($query);
if ($num>0){
$_SESSION['username']="username";
$_SESSION['password']="password";
echo"
<meta http-equiv='refresh' content='2; url=admin.php' />
";
}else{
echo "bad";
echo "
<meta http-equiv='refresh' content='2; url=login.php' />
";
}
}
}
$use=new mysql; $use->sql();
?>
اما هنا لوحة النحكم
<?
if (isset($_SESSION['username'])){ echo "welcome admin";
}else{ echo "login please";
}
?>
هذه الطريقة غير كافية للتحق من تسجيل الدخول
if(isset($_SESSION['username']))
يجب التحق من قاعدة البيانات بإستخدام كود مثل :
# Check is user logged in
if(isset($_SESSION['username']) && isset($_SESSION['password']))
{
$username = $_SESSION['username'];
$password = $_SESSION['password'];
$query = mysql_query("SELECT * FROM user WHERE username='$username' AND password='$password'");
$logged_in = (mysql_num_rows($query) > 0);
}
else
$logged_in = false;
في بداية الملف ثم تسطيع التأكد بعد ذلك إذا كان المستخدم مسجل دخول او لا عن طريق المتغير $logged_in مثال
if($logged_in) {
echo 'مرحبا بك يا : '.$_SESSION['username'];
} else {
echo 'يجب تسجيل الدخول';
}
ملاحظات
الكود بالأعلي يحتاج للتحقق من المدخلات _SESSION او _POST قبل تنفيذ الإستعلام من قاعدة البيانات حتي لا يتم حقنها
دوال mysql لم تعد مدعومة يجب إستخدام PDO او mysqli
يفضل أن تتابع مع شروحات وتنفذها قبل تنفيذ أسكربت خاص
او تفضل الملفات و حملها ان واجهة مشكلة في قراءة الكود
ليس لكل مشكلة أو اسفسار شرح تفصيلي للعمل ..
أحيانا يجب أن تكون عندك الفكرة فقط .في صفحة التحقق , تعمل شرط إذا كان الشخص مسجل دخوله يتم إدراج التعليق و إذا كان الشخص مش فاتح تظهرله رسالة مثلا "الرجاء تسجيل الدخول أولا" ..
(تستطيع و ضع كود التحقق في فورم التعليق إن كنت تريد خانة التعليق لا يظهر أساسا إذا كان الشخص من فاتح حسابه )
التعليقات