الثلاثاء، أبريل 12، 2011

سكربت سجل زوار ( برمجة عربية ) افضل سكربت سجل الزوار

بسم الله الرحمن الرحيم


السلام عليكم ورحمة الله وبركاته


كيف الحال أخواني أعضاء و مرتادي مدونتي الغالي


إن شاء الله بخير ؟


لا اطيل عليكم خلصة من برمجة سكربت سجل الزوار اللي كنت اعمل عليه من فتره


فقلت اطرحه للجميع ليستفيدون منه


اخليكم مع المواصفات




1- يحتوي على لوحة تحكم لإدارة السكربت بشكل كامل و سهل .
2- إمكانية إضافة العديد من روابط الموقع .
3- إمكانية إضافة العديد من الروابط الإعلانية .
4- امكانية فتح و إغلاق السجل و كتابة رسالة الإغلاق .
5- تم أستخدام نظام القوالب في التصميم ليسهل عليك تصميم السكربت حتى لو لم تكن لديك خبره في البرمجة .
6- تم إضافة نظام البريد الإلكتروني بحيث اي شخص يتصل بك سوف تصل لك الرساله على لوحة التحكم و من خلالها تستطيع الرد عليه .
7- إمكانية إرسال الرسائل لأي إيميل عن طريق لوحة التحكم
8- إمكانية تحويل الروابط من php إلى html  والعكس من html  إلى php  عن طريق لوحة التحكم .
9- امكانية النسخ الإحتياطي للسكربت .
10- امكانية نشر التواقيع مباشرة او مراجعة التواقيع قبل النشر .
11- امكانية الحذف الجماعي للتواقيع .
12- امكانية إضافة إعلانات صور و إمكانية تحديد عدد الإعلانات المراد عرضها في السطر الواحد .
13- تم وضع الكلمات المفتاحية للصفحة الرئيبسية و هذا مفيد جداًَ في النشر السريع لقوقل و لنتائج افضل .
14- تم إضافة التغذية عن طريق RRS .


و إن شاء الله اكون قد وفقت في برمجة السكربت .


------------------------------------------------------------------------------------


طريقة تنصيب السكربت


حمل السكربت من هنا



ارفع مجلد gbook إلى مجلد www .


افتح ملف config داخل مجلد inclueds و عدل بيانات قاعدة البيانات .


ادخل المسار التالي في متصفح الإنترنت


http://www.sitename.com/gbook/install.php


غير sitename إلى رابط موقعك .


و اتبع مراحل التنصيب






للمعانية


http://www.fadelsultan.com/gbook/index.html


لمعاينة لوحة التحكم


http://www.fadelsultan.com/gbook/cpadmin


user: admin
pass: 123456




و الف مبروك عليك السكربت


اخوكم : بو عبد الله

الثلاثاء، مارس 15، 2011

كيف تتعلم و تطور من نفسك في بي اتش بي و ماي اس كيو ال php and mysql

بسم الله الرحمن الرحيم 

السلام عليكم ورحمة الله وبركاته 

كيف الحال أخواني أعضاء و زوار و مرتادي و الجميع (<-- مو مخلي احد

مدونتي الحبيبة إن شاء الله بخير ؟

أول شئ اتأسف لعدم إنزالي لأي موضوع مفيد في الفترة الاخيرة 

لكن انتو طبيبن و انا استاهل السماح منكم 


ما اطيل عليكم ادخل لكم في صلب الموضوع

بما انك جيت لهذي الصفحة و قريت إلى هنا فبكل تأكد تريد تعلم لغة php and mysql 

انا قلت اطرح لكم طريقي في تعلم لغة php 

الكثير منا يخطأون في كثير من الامور منهم من يقول لك لازم تتعلم إنجليزي على شان تتعلم 

اللغة و منهم من يقول لك هذي تحتاج و قت كبير و جهد اكبر و تتطلب خبره كبيره في امور الحاسب 

و و و و و و إلى ما له نهاية من التعقيدات

احب اقول لك شئ و حطه في بالك كل شئ تبي تتعلمه لازم يحتاج وقت وجهد 

يعني لاتجي تقرأ لك درس او تطبق لك درس و تقول انا قريت و طبقة و ما تعلمة شئ و ما فهمت شئ 

لما تجي تطبق الدرس لا تنسخ و تلصق 

حاول دائماًَ تكتب  الكود و حتى لو أخطيت ارجع و شوف وين الخطأ و صححه مره و مريت و ثالث و عشر و ميت مره ما فيه اي مشاكل 

على ساس تتعلم 

الأن بعد هالمقدمه الحماسيه اجيك في الخطوات اللي اتبعتها انا في التعلم ووصلت لمرحلة مو خبير

لكن اعرف ابرمج و الحمد لله لما افتح سكربت اعرف وش اللي مكتوب 

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

ومتى استخدمه إلى ان اخزنه في الذاكره و اتمرس على كتابته و بعدها انتقل للشئ الثاني 

الان نبتدي بالخطوه الاولى 

كيف أبدأ تعلم لغة

اقول لك عندك دروس الاخ يوسف إسماعيل للمبتدأين

بتقول لي وينها اقول لك هذي هي ادخل على هالرابط و تشوفها 



وه وه وش يخلص هالدروس هذي كلها 

اقول لك عزيزي قسم الدروس كل يوم درس و انصحك لا تطبق اكثر من درس في اليوم من شان 

ما تتلخبط و تضيع عليكم الامور يعني ما تدخل الاكواد في بعضها البعض 



يعني تضيع بين جملة for  و while

المهم الان خلاص بنسوي اللي تقول عليه و كل يوم درس 

اقولك حلوو الان انت تعجبني لكن هم ابي منك شغله 

وش هي بعد ؟

ابي منك لما تطبق الدرس الاول وتخلص لا تترك البرمجة و تروح تلعب و تروح خصص لك ولو ساعة 

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

ثاني يوم اخذة المتغيرات 

حلوو خﻻص اجي و اطبق امور من عندي اشوف تضبط ولا احاول اتعلم من نفسي على

الدروس اللي اخذتها و هكذا

تقول لي ليش ؟

اقول لك صحيح يمكن تحصل نتائج كثيره خطأ لكن انت استفدة بشكل اكبر انك لما تعرف الطريقة 

الصحيح تتفاده كل الاخطاء اللي وقعت فيها و هم لو صارت عندك مشكلة 

لا تتضايق و تتضجر عادي بالعكس تحداها و  حاول تحلها 

ودائماًَ لا تطرح المشكلة في منتدى او اي مكان اخرى إلى لما تحس انك حاول بكل الطرق

و السبل اللي انت تعرفها

طيب خلصنا من كل هذا و تعلمنا الأساسيات 

كيف ابرمج سكربت الان 

اقول لك يا حبيبي لا تستعجل وراك دورة أخرى و هي انك تتعلم على قواعد البيانات 

ﻷنه السكربت بدون قواعد البيانات يعتبر عقيم ولا فائدة منه فلازمك انك تتعلم على قواعد البيانات 

طيب و كيف نتعلمها هذي

اقول لك تفضل هم الدورة الثانيه للأستاذ يوسف إسماعيل 

دورة المتقدمين 



وه و ه وش يخلصها هذي يا بو عبد الله 

عزيزي القارئ لا تحسب اني انا او غيري تعلمنا اللغة في يوم و ليله 

لا تعبنا و جربنا و سهرنا و طبقنا مرات و مرات وفي النهاية تعلمنا 

بما انك تبقى تتعلم لازم تتعب 

ما كذب عليك لما جيت اتعلم لغة php  جلسة قرابت 3 شهور في دورة المبتدئين و المتقدمين 

اجلس قرابت من 7 إلى 8 ساعات يوماًَ على اللاب توب بشكل متقطع و إلى الان انا مداوم على هالشئ و كل يوم اطور من نفسي اكثر و اكثر 

طيب بو عبد الله خلصنا دورة المبتدأين و المتقدمين بعدها وش السواه هم ما اعرف ابرمج سكربت 

اقول لك وش رايك تبرمج سكربت سجل زوار خفيف و تحاول تطور فيه 

و هم شرايك تنزل لك سكربت برمجة عربية و تحاول تطور فيها ﻵنه هذي شئ مهم جداًَ جداًَ و يفيدك

بشكل ما تتوقعه لتعلم البرمجة و طريقة كتابة السكربتات و ترتيب الملفات و امور الأستدعاء و غيرها 

يعني انت لما تفتح سكربت لا تجي تفتح كل الملفات او تفتح الملفات بشكل عشوائي

تعال و افتح ملف index  و شوف اقرأه سطر سطر و شوف هذا ليش و هذا كيف جاء 

لا تتوقع انك راح تعرف كل شئ من اول مره 

انا قبلك جاب فيني العيد سكربت و انا احاول افهم ليش هذا و كيف كتب بهالطريقة 

و ضليت ابحث لحد ما اكتشفت انه مكتوب بالبرمجة كائنية التوجه 

قلت حلوو و رحت و تعلمت البرمجة كائنية التوجه و رجعت للسكربت وفحصته و استفدة منه الكثير 

من الدوال و الكلاسات و طريقة كتابتها 

و من هذا المنطلق عزيزي القارئ راح تتعلم و تكون مبرمج php 

لكن ارجع و اقول لك 

ماهي محتاجه انه يكون عندك لغة انجليزية 

انا ما عندي 5% من اللغة الأنجليزية و الحمد لله اعرف ابرمج و جالس الأن ابرمج سكربت سجل زوار 

لكن بمواصفات قوية شوي 

المهم طولة عليكم كثير 

اعطيك معلومة اضافية 

لغة الـ php  حالها حال اي لغة نفس اللغة العربية و الإنجليزية و غيرها من اللغات 

لها قواعد بمجرد ما تعرف قواعدها راح تعرف تكتبها و تقرأ اكوادها 

فلا تخاف 

ثق بالله اولا و بنفسك ثانياًَ و اعطي نفسك العزيمه و الإراده و سوف تتعلم 

اللي تعلمو مو احسن منك 

واللي حابب يطرح اي سؤال بالخدمة إن شاء الله 

اخدمكم باللي اقدر عليه  .

واسمحو لي على الإطاله 

والله يوفقكم إن شاء الله 

اخوكم : بو عبد الله 

السبت، مارس 05، 2011

جاري إعادة برمجة السكربت إلى البرمجة كائنية التوجه

بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته 
كيف الحال الجميع إن شاء الله بخير ؟ 

لا اطيل عليكم و إنما احببت ان أخبركم أنه و لله الحمد تم البدأ في إعادة برمجة السكربت من البرمجة العادية 
إلى البرمجة كائنية التوجه 

و تم تركيب قالب سمارتي و إن شاء الله ينال إعجابكم 

وسأمدكم بالصور عما قريب 

اخوكم : بو عبد الله

الأربعاء، فبراير 23، 2011

درس : كود حماية المدخلات من الأكواد الخبيثة بالكلاس و الفانكشن class function

بسم الله الرحمن الرحيم

كيف الحال زوار و مرتادي مدونتي العزيزة إن شاء الله بخير ؟

اليوم بديت ادخل في البرمجة الكائنية 

وأنشأت كلاس داخلة فنكشن لحماية المدخلات

و جربت ادخلت كود خبيث و الحمد لله تمام التمام ما اثر فيه شئ 

أخواني الفكره كل الفكره اني انشأ كلاس 

المهم ما اطيل عليكم 

اخليكم مع الأكواد 

ملاحظة اقرأ التعليقات لمعرفة كل ما كتب

اخليكم مع الاكواد




<?php
# مدونة فاضل السلطان
//# لدروس البرمجة php and mysql
//# http://fadelsultan.blogspot.com/
//وإن شاء الله اكون وفقت في الشرح
//اخوكم :فاضل - بو عبد الله
#   درس حماية المدخلات عن طريق الكلاس
//  طبعاًَ تقدر تستقني عن الكلاس
//
# إنشاء الكلاس
class fadelsultan { // عرفنا الكلاس  و وضعنا اسماًَ له
   # public $x = "Fadel Sultan"; // لتعريف متغير داخل الكلاس

    public function post ($sec)// تعريف دالة حماية مصفوفة $_POST
    {
     $sec = trim($sec) ; // دالة trim  لحماية المدخل    وو ضيفتها حذف المسافات المضافة في المدخل من البداية و النهاية
     $sec = strip_tags($sec) ;#تقوم بحذف وسوم html اي العلامة < > وما بينها
     #$sec = mysql_real_escape_string($sec) ; #تقوم بحذف المسافات مثل السطر الجديد والمسافه الجديده \r\t و \r\n وغيرها هذه الدالة لا تستخدم إلى بوجود اتصال مع قاعدة البيانات
     $sec = htmlspecialchars($sec) ; // تقوم بإخراج اكواد html  كما كتبت من دون تنفيذ
     $sec = addslashes($sec) ; # تقوم الدالة بإضافة العلامة \ (سلاش) قبل بعض الرموز الخاصة مثل (' أو " أو \).

     return $this -> post = $sec ; # هنا ارجعنا القيمة إلى المتغير
    }
    # هنا أنشأنا الفورم و وضعناه في متغير لطباعتة خارج الكلاس
    public $form = "
                    <form action='lessan1_create_class.php' method='post' >
                    <table border='1' align='center' width='25%'>
                    <tr>
                    <td colspan='2' align='center'>نموذج حماية البيانات</td>
                    </tr>
                    <td>الأسم</td>
                    <td><input type='text' name='username'/></td>
                    <tr>
                    <td>الإيميل </td>
                    <td><input type='text' name='email' /></td>
                    </tr>
                    <tr>
                    <td colspan='2' align='center'>
                    <input type='submit' name='send' value='ارسل' />
                    </td>
                    </tr>
                    </table>
                    </form>
                    " ;

}




$fadel = new fadelsultan() ; // لإستدعا الكلاس

echo $fadel ->form ; //استدعاء الفورم
#echo $fadel->x ; // لطباعة المتغير الموجود داخل الكلاس

# هنا نحمي المدخلات عن طريق  تعريفها كمتغير و إسناد قيمتها إلى كلاس الحماية
$name = $_POST['username'] ;
$name =  $fadel -> post($name) ;
$email = $_POST['email'] ;
$email =  $fadel -> post($email) ;
#$send = $_POST['send'] ;


# شرط التأكد على الضغط على زر ارسل
if(isset($_POST['send']))
{
    # طباعة المدخلات
    echo  $name ;
    echo "<br />" ;
    echo  $email ;
}

?>








اخوكم : بو عبد الله

الأربعاء، فبراير 16، 2011

درس : كود الصفحة الرئيسية لسكربت سجل الزوار php mysql

بسم الله الرحمن الرحيم 

السلام عليكم ورحمة الله وبركاته

كيف الحال الجميع إن شاء الله بخير ؟

بعد انشغال في تعلم الـ php  و mysql  و سأنتقل الإن إلى css  وبعدها إلى javasecript 

قلت خلني انزل لكم بعض  الاكواد لربما تفيد البعض منكم 
وبالأخص اني ابرمج السكربت بأسهل الطرق المفهومه 

وسأحاول وضع تعليق على كل شئ جديد بأذن الله 

و إن شاء الله لو لم يفد الكثير سيستفيد منه القليل بأذن الله 

الكود هو عباره عن كود الصفحة الرئيسية للسكربت اللي جالس ابرمج فيه 

هو طبعاًَ لما تحطه انت في صفحة ما راح تستفيد منه ابد 

الفائده منه هو انك تحلل الاكواد و تستفيد اكثر 

هذي الفائده لا أكثر زي ما قلت لكم ما راح تستفيد اي شئ لما تحطه و تنتظر نتيجه

المهم ما اطول عليكم و اخليكم مع الكود 


<?php 
# برمجة فاضل السلطان 
# مدونة فاضل لـ تعلم الـ php and mysql 
# http://fadelsultan.blogspot.com
# http://www.fadelsultan.com
include 'config.php';
      include 'functions.php';
?>
<html dir="rtl">
    <head>
        <title><?php echo $rowsettings['sitename'] ?></title>
        <meta name="keywords" content="<?php echo $rowsettings['keywords']; ?>" />
        <meta name="description" content="<?php echo $rowsettings['description']  ?>" />
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <link rel="stylesheet" href="them/style.css" type="text/css" />
    </head>
    <body>
        <?php
            # لإستخراج ip الزائر
            $ipvist = $_SERVER['REMOTE_ADDR'] ;
            $ipvist = filter_var($ipvist,FILTER_VALIDATE_IP) ;

            //حساب الزيارات
            $selectvist = mysql_query("select * from vist where id='1'") or die(mysql_error()) ;
            $rowvist = mysql_fetch_array($selectvist) ;
            // حساب الزوار
            $visitor=mysql_query("select * from vist where visitor = '$ipvist'") or die(mysql_error()) ;
            $numvisitor = mysql_num_rows($visitor) ;
            # هذالأمر لو كان سجل الزوار لا توجد فيه قيمة  و بعد دخول اول قيمة لا ينفذ هذا الامر
            $rowvisitor = mysql_fetch_array($visitor) ;
            if($numvisitor == null){
            $insertvisitor = mysql_query("INSERT INTO vist (visitor) VALUES ('$ipvist')") or die(mysql_error()) ;
            }
            #احتساب عدد الزيارات
            $vist = $rowvist['number_vist'] ;
            ++ $vist ;
            $addvist = mysql_query("update vist set number_vist='$vist' where id='1'") or die(mysql_error()) ;
            # هذا الكود هو عبارة عن إظهار رسالة الإغلاق للسكربت
            $selectopenorclose = mysql_query("select * from settings where id = '1'") or die (mysql_error()) ;
            $rowopenorclose = mysql_fetch_array($selectopenorclose) ;
            if($rowopenorclose['openorclose'] == 0){
                echo "<br />
                    <br />
                    <table align='center' class='indexin'>
                    <tr class='indexf'>
                    <td>
                    رسالة إدارية
                    </td>
                    </tr>
                    <tr class='tab'>
                    <td><h3>
                    ".$rowopenorclose['massegforclose']."
                        </h3>
                    </td>
                    </tr>
                    </table>
                        ";
                exit () ;
            }
            #نهاية كود الإغلاق
        ?>
        <!-- بداية جدول التوقيعات -->
        <table align="center" width="40%" class="indexin">
            <tr class="indexf">
                <td colspan="3" align="center">¦-- الـتـوقـيـعـات --¦</td>
            </tr>
            <?php
            $page = intval($_GET['page']) ;
            $page = filter_var($page,FILTER_VALIDATE_INT) ;
            if(!isset($_GET['page'])){ // اعطينا شرط لو كانت قيمة الصفحة خاليه اجعلها 1
                $page=1 ;
            }else{
                $page = intval($_GET['page']); // هنا لو كانت غير خاله فأدخلها في دالة الحماية
            }
            $max = $rowsettings['numberoftopics'] ;
            $from = ($max*$page)-$max ;
            $sql = mysql_query("select * from comm order by id") or die(mysql_error()) ;
            $sql_num = mysql_num_rows($sql);
            $sql1 = mysql_query("select * from comm order by id desc limit $from,$max") or die(mysql_erorr()) ;
            $num_sql1=mysql_num_rows($sql1);
            $pages =ceil($sql_num/$max);
            $num = mysql_num_rows($sql);
            while($row=  mysql_fetch_array($sql1))
            {
                echo"<tr class='indexx'>
                    <td>    اضيف في : " .$row['date']."</td>
                        </tr>
                        <tr class='indexx'>
                        <td><b><a target='top' href='".$rowsettings['siclink']."/showmsg.php?id=".$row['id']."'>".$row['subject']."</a></b></td>
                    </tr>
                    <tr>
                    <td width='100%'>
                    <table align='center' width='100%' class='indexz'>
                    <tr class='indexa'>
                    <td width='25%' align='top'>
                    <table align='center' width='100%' class='indexz' >
                    <tr class='in'>
                    <td>
                    المعلومات الشخصية
                    </td>
                    </tr>
                    <tr class='in'>
                    <td>
                   <--¦ ".$row['name']." ¦-->
                    </td>
                    </tr>
                    <tr class='in'>
                    <td>
                    <a href='mailto:".$row['email']."'><img src='".$rowsettings['siclink']."/image/email.gif' border='0'/></a>
                    </td>
                    </tr>
                    <tr class='in'>
                    <td>
                     <a href='".$row['site']."'><img src='".$rowsettings['siclink']."/image/home.gif' border='0'/></a>
                    </td>
                    </tr>
                    </table>
                    </td>
                    <td width='75%' clospan='3' bgcolor='#d2effd' class='azrag'>".$row['msg']."</td>
                    </tr>
                   </table>
                    </td>
                    </tr>
                    ";
            }
            echo "</table>";
            #نهاية جدول التوقيعات
            mysql_free_result($sql1) ; # دالة إغلاق الإستعلام $sql1  وهي مفيده للتخفيف من عمل لود للسيرفر
            # بداية اكواد تعدد الصفحات
            echo" <table class='tab' align='center'>
                    <tr>" ;
            if($page>1){
                $back = $page-1;
                echo "
                    <td>
                    <a href='".$_SERVER['PHP_SELF']."?page=$back'>الصفحة السابقة</a>
                    </td>
                ";
            }
            for($i=1 ; $i<=$pages ; ++$i){
                if($page==$i) echo" [$i]";
                else{

                    echo"<td>
                        <a href='".$_SERVER['PHP_SELF']."?page=$i'>$i</a>
                    </td>
                    ";
                }
            }
            if($page<$pages){
                $next = $page + 1 ;
                echo "<td>
                    <a href='".$_SERVER['PHP_SELF']."?page=$next'>الصفحة التالية</a>
                </td>
                ";
            }
                       echo"</tr></table>";
                       #نهاية اكواد تعدد الصفحات
            ?>
        <br />
        <?php
        #بداية اكواد الإحصائيات
        $statsuser = mysql_query("select * from vist where id='1'") or die(mysql_error()) ;
        $statvisitor = mysql_query("select * from vist") or die(mysql_error()) ;
        $rowvist = mysql_fetch_array($statsuser) ;
        $num_visitor = mysql_num_rows($statvisitor) ;
        ?>
        <table class="indexin" align="center" width="40%">
            <tr class="indexf">
                <td colspan="3" align="center">الإحصائيات</td>
            </tr>
            <tr class="indexx">
                <td>عدد التواقيع</td>
                <td>عدد الزوار</td>
                <td>عدد الزيارات</td>
            </tr>
            <tr class="indexx">
                <td><?php echo $sql_num ; ?></td>
                <td><?php echo $num_visitor ; ?></td>
                <td><?php echo $rowvist['number_vist'] ; ?></td>
            </tr>
        </table>
        <!--نهاية اكواد الإحصائيات -->
        <br />
        <!-- بداية اكواد الكلمات المفتاحية للرئيسية  -->
        <table class="indexin" align="center" width="40%">
            <tr class="indexx">
                <td>الكلمات المفتاحية</td>
            </tr>
            <tr class="indexa">
                <td style="font: 9pt tahoma; color: #ffff00; text-align: center;"><?php echo $rowsettings['keywords_index'] ?></td>
            </tr>
        </table>
        <!--نهاية اكواد الكلمات المفتاحية -->
    </body>
</html>
<?php
       # في هذا السطر قمنا بإغلاق جميع الإتصالات لقاعدة البيانات و هذا مفيد جدا لتخفيف من اللود على السيرفر
        mysql_close($selectvist,$visitor,$insertvisitor,$addvist,$selectopenorclose,$sql);
?>


تقبلوو خالص تحياتي 

بو عبد الله