لقد اضفت لك جداول على قاعدة البيانات حتى يعمل السكربت بالشكل الصحيح
ملف القاعدة بالمرفقات.
ما قمت بعمله هو نظام عضويات بسيط مع الابقاء نظام على الادمن الوحيد الذي وضعته.
لقد قمت بتعديل دالة تسجيل الدخول وملف اضافة الاخبار فقط.
يمكنك انجاز بقية العمل فهو سهل جدًا
دالة تسجيل الدخول:
كود PHP:
//Login a user
public static function login($username,$password)
{
if(!$username || !$password) echo "<p class=messsage> Please enter both username and password </p>";
else
{
if($username == USERNAME && $password == PASSWORD)
{
$_SESSION["simpleNews"] = true;
$_SESSION["mod_id"]=-1;
echo "<p class=message> You are now logged in as admin! </p>";
echo '<META http-equiv="refresh" content="2;URL=?">';
}
else{
$result = sql::object(sql::query("select * from simple_users where name='$username'"));
if ($result->pwd == $password){
$_SESSION["simpleNews"] = true;
$_SESSION["mod_id"]=$result->id;
}else
echo "<p class=message> Incorrect username and password combination </p>";
}
}
}
دالة اضافة الاخبار(التي في كلاس الاخبار):
كود PHP:
public static function addNews($title,$cata,$content,$cat)
{
$content = strip_tags(sql::safe($content));
$title = strip_tags(sql::safe($title));
if(!$title || !$content) echo "<p class=message> You missed a field or two </p>";
else
{
if(!$cata) $cata = "General";
if(sql::query("INSERT INTO simple_news (title,cata,content,date,time,cat_id) VALUES ('$title','$cata','$content',CURDATE(),CURTIME(),'$cat')"))
echo "<p class=message> Your news $title has been added! </p>";
else echo "<p class=message> Could not add news! ".mysql_error()."</p>";
}
}
دالة عرض الاقسام:
كود PHP:
public static function showCats(){
$query = sql::query("SELECT * FROM simple_cats");
if(sql::num($query) < 1) echo "<p class=message> Could not find any categories</p>";
else
{
$a = sql::object($query);
echo "<div class=post>";
echo "<h3 class=title>".$a->name."</h2>";
echo "<div class=meta>";
echo "<b>Posted on: </b>".$a->date." ".$a->time;
if(news::isLogged()) echo " [<a href=?p=editCat&id=".$a->id."> Edit Category </a> ]";
echo "</div>";
echo "</div>";
}
}
دالة عرض الاخبار التي في القسم:
كود PHP:
public static function showNewsByCatId($id){
$query = sql::query("SELECT * FROM simple_news WHERE cat_id = '$id'");
if(sql::num($query) < 1) echo "<p class=message> Could not find news with category id $id </p>";
else
{
$a = sql::object($query);
echo "<div class=post>";
echo "<h2 class=title>".$a->title."</h2>";
echo "<div class=meta>";
echo "<b>Posted on: </b>".$a->date." ".$a->time;
if(news::isLogged()) echo " [<a href=?p=edit&id=".$a->id."> Edit </a> ]";
echo "</div>";
echo "<div class=post_content>";
echo $a->content;
echo "</div>";
echo "</div>";
}
}
هذا الدوال كما تلاحظ هي نفس الدوال التي كنت تستخدمها لكن مع تغيير الاستعلام فقط!
ملف اضافة الاخبار في المرفقات.
كل ما فعلته في ملف اضافة الاخبار هو اضافة خاصية القسم الذي نريد اضافة الخبر إليه، طبعًا كل مشرف تظهر له الاقسام التي يشترك بها.
كيف نعرف ذلك؟
في جدول الاقسام في قاعدة البيانات يوجد حقل mod_id وهو رقم المشرف على القسم