1. PHP
1

استفسار في تقنية OOP في PHP

  • حذف بواسطة المستخدم
  • مجهول
  • 2015-08-01T14:48:22+00:00
  • رابط مختصر
يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

  • الأفضل
  • الأحدث
  • الأقدم
2
supercoder 2015-08-01T18:12:50+00:00 أضف ردا
  • رابط مختصر

عليك أن تُفكر كمبرمج وتجد حلول لما تريد لن أكتب كامل الحل حتى تستطيع تطوير مهاراتك فيما بعد هذا كأئن بسيط غير معلومات القاعدة وتأكد من وجود قاعدة البيانات

// معلومات قاعدة البيانات
$database = new Mysqli("localhost","root","passowrd","users");
// ترميز البيانات utf-8
$database->set_charset("utf-8");
// إنشاء جدول المُتسخدمين
$database->query("
    CREATE TABLE `users`(
        u_name varchar(15) NOT NULL,
        u_password varchar(34) NOT NULL
    )CHARACTER SET UTF8
");
class user{

    /**
        * إنشاء مُستخدم جديد *

        @param string userName : إسم المُستخدم
        @param string userPassword : كلمة المرور

        @return : bool 
    */
    static function newUser($userName,$userPassword){
        global $database;
        // حماية المُخلات
        $userName = htmlentities($userName,ENT_QUOTES);
        $userPassword = htmlentities($userPassword,ENT_QUOTES);
        return (bool)($database->query("insert into `users` VALUES ('$userName','$userPassword')"));
    }

    /**
        * تسجيل الدخول *

        @param string userName : إسم المُستخدم
        @param string userPassword : كلمة المرور

        @return : bool 
    **/
    static function login($userName,$userPassword){
        global $database;
        // حماية المُخلات
        $userName = htmlentities($userName,ENT_QUOTES);
        $userPassword = htmlentities($userPassword,ENT_QUOTES);
        return (bool)(($q = $database->query("SELECT u_name from `users` where u_name = '$userName' AND u_password = '$userPassword'")) && $q->num_rows);
    }
}

للتجربة يُمكنك إنشاء مُستخدم هكذا

user::newUser("test","password");

ثم تجربة وجودية المعلومات من خلال الدالة

user::login("test","password");

ستخرج true في حالة الوجودية وfalse إن لم تكن موجودة

أشياء قم بها بنفسك للتتمرن

  • تاكد من المعلومات قبل الادخال حتى لاتتكرر

  • كلمة المرور ستكون معروضة حاول أن تخفيها

  • لايوجد حفظ للمعلومات إبحث عن الجلسات session وحاول تطبيقها

ويمكن إضافة المزيد أتمنى لك التوفيق.

0
مجهول 2015-08-01T18:52:19+00:00
  • رابط مختصر
  • حذف بواسطة المستخدم
1
supercoder 2015-08-01T18:58:27+00:00 أضف ردا
  • رابط مختصر

إن كنت لاتفهم آلية العمل فإن الشرح يحتاج درسًا مطولًا إقرأء بعض الدروس لذلك

هذا قد يكون جيد :

Object-Oriented PHP for Beginners

code.tutsplus.com/tutorials/object...

For many PHP programmers, object-oriented programming is a frightening concept, full of complicated syntax and other roadblocks. As detailed in my book, Pro PHP and...

2
kuwaitphp 2015-08-01T21:08:57+00:00 أضف ردا
  • رابط مختصر

وعليكم السلام

عزيزي هيكليه العمل علي oop لا تحتاج عمل كثير او شروحات عديده ولكن فقط معرفه الاساسيات والمنهجيه

الكلاس سيحتوي المتغيرات والدوال ليتكون اوبجكت متكامل

اذا كنت تعرف كيف التعامل مع المتغيرات والدوال لن تجد صعوبه في بناء كلاس وهنا سياتي الفرق بالتعاريف او الخصوصيه

مثلا بوبلك قبل المتغير او الداله تعني ان الاستخدام عام اما اذا برايفت الاستخدام بداخل الكلاس فقط

عذرا علي الرد البسيط لي عوده ان شاءلله في وقت لاحق

0
مجهول 2015-08-02T00:30:51+00:00
  • رابط مختصر
  • حذف بواسطة المستخدم
2
kuwaitphp 2015-08-02T01:18:40+00:00 أضف ردا
  • رابط مختصر

اهلاً بك عزيزي وعذراً علي التاخير

الاستدعاء يكون من خلال دوال include

وتقوم بانشاء الاوبجكت الخاص بالكلاس

أخي أريد أن أعرف كيف أستدعي دالة موجودة داخل الكلاس في ملف آخر،

اوضح الاخ @supercoder مشكوراً كيف الاستدعاء .. وساحاول المساهم بذلك .. الشي الذي طبعته انت صحيح في myfunction ساضع لك مثال في الاسفل ولكن اريد اوضح مساله فط عندما يتم اضافه عباره static لا يمكن طلب الداله بعد الانشاء ولكن سيتم الطلب كالتالي Myclass::myfunction() كما شرح الاخ @supercoder .. وعدا ذلك سيتكون "->"

كمثال بسيط

// TestObject.class.php
class TestObject {
    private $name;

    public function __construct() {

    }
    public function getName() {
        return $this->name;
    }

    public function setName($name) {
        $this->name = $name;
    }
}

// test.php
include 'file.class.php';
$object = new TestObject();
$object->setName("Test");

function printTest($obj) {
    print $obj->getName();
}

اتمنى ان التنسيق يساعد علي عرض الكود

ويمكن الاطلاع علي

http://php.net/manual/en/la...

حيث ان namespace ستساهم بتوسيع مفهوم oop الخاص بالمشروع بشكل اشمل

بالتوفيق للجميع ..

عزيزي @walid.khaffou ضع اي سوال دون خجل .. وان شاءلله ساحاول الاجابه

PHP

مجتمع مخصص للغة الـ PHP

4.94 ألف متابع

أطلق موقعك الإلكتروني في دقائق

صمم موقعك كاملا بالسحب والإفلات بدون خبرة برمجية، واحجز مكانك على الإنترنت.

أنشئ موقعك الآن

اقرأ أيضًا

  • استفسار عن برمجه واجهات التحكم ب php وكيفيه عملها
  • قوالب حسب الطلب PHP
  • كيف اقوم باستدعاء Javascript بداخل صفحة php
  • كيف احترف الphp
  • PHP: بالطريقة الصحيحة

انسخ هذا الرابط:

تنبيه