الاثنين، يناير 31، 2011

درس : كود نظام التسجيل و تسجيل الدخول بالسيشن session

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

اليوم و لله الحمد اتممت تجربتي في بناء نظام تسجيل و تسجيل الدخول

والحمد لله استفدنا من التطبيقات و استفدنا من دروس الأخوان 

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

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

  • صفحة index.php - الصفحة الرئيسية .
  • صفحة config.php  - صفحة الإتصال بقاعدة البيانات .
  • صفحة register.php - صفحة تسجيل العضويات .
  • صفحة login.php - صفحة تسجيل الدخول .
  • صفحة logout.php - صفحة تسجيل الخروج .

نبتدي أول شئ بصفحة الـ index.php
كود php 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html dir="rtl">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>الصفحة الرئيسية</title>
    </head>
    <body>
        <?php
        ob_start();
        session_start();
        if(!isset($_POST['logname']) and !isset($_POST['logpass'])){
            header("location: login.php") ;
            exit ();
        }
        include 'config.php';
        $logname= $_POST['logname'] ;
        $logpass = md5(md5($_POST['logpass'])) ;
        $selectlog=mysql_query("select * from members where username='$logname' and userpass='$logpass'") or die(mysql_error()) ;
        $lognum = mysql_num_rows($selectlog) ;
        if(isset($_POST['login']) and $_POST['login'] == 'log'){
    if(empty ($logname) or empty ($logpass)){
        die( "لم تقم بإدخال جميع البيانات" );
    }elseif($lognum <= 0 ){
        die( "اسم المستخدم او كلمة المرور خطأ" );
    }else{
        $_SESSION['sessionname'] = $username ;
        $_SESSION['sessionpass'] = $userpass ;
    }
}
        
        $select = mysql_query("select * from members where username='$logname'") or die(mysql_error());
        $row=mysql_fetch_array($select);
        echo "تم تسجيل دخولك بنجاح عزيزي ".$row['username'] ;
        echo"<br />" ;

        echo"<a href='logout.php'>تسجيل الخروج</a>";

        ob_end_flush();
        ?>
    </body>
</html>


وهذا كود صفحة config.php 


<?php
$localhost="localhost" ; // هذا برتكول المستضيف
$username="root" ; // اسم المستخدم لقاعدة البيانات 
$userpass="root" ; // كلمة المرور اقاعدة البيانات 
$dbname="users" ;// اسم قاعدة البيانات 



$con = mysql_connect($localhost,$username,$userpass) or die(mysql_error()) ; // دالة الأتصال بالقاعدة
$sel = mysql_select_db($dbname,$con) or die (mysql_error()) ; // دالة عرض القاعدة 

?>


وهذا كود صفحة register.php 


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html dir="rtl">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>التسجيل</title>
    </head>
    <body>
        <?php
        ob_start();
        session_start();
        if(isset($_SESSION['sessionname']) and isset($_SESSION['sessionpass'])){
            header("location: index.php") ;
            exit ();
        }
        include 'config.php';
        /*
 CREATE TABLE `users`.`members` (
`id` INT NOT NULL AUTO_INCREMENT ,
`username` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`userpass` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`email` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`date` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM ;

         */

$username = strip_tags(trim(mysql_real_escape_string($_POST['username']))) ;
$userpass = strip_tags(trim(mysql_real_escape_string(md5(md5($_POST['password']))))) ;
$email = strip_tags(trim(mysql_real_escape_string($_POST['email']))) ;
$date = date("d - n - Y - H:j") ;

$seleectusers = mysql_query("select * from members where username='$username' or email='$email'") or die(mysql_error()) ;
$usernum = mysql_num_rows($seleectusers) ;

if(isset($_POST['go']) and isset($_POST['go']) == 'send'){
    if(empty ($username) or empty ($userpass) or empty ($email)){
        echo "لم تقم بإدخال جميع البيانات";
    }elseif($usernum > 0){
        echo "اسم المستخدم او البريد الإلكتروني تم تسجيله سابقاًَ" ;
    }elseif(!preg_match('#^[a-z0-9\.\_\-]+@([a-z0-9\.\_\-])+\.([a-z]{2,4})$#i',$email)){
        echo "لم تقم بإدخال الإيميل الصحيح " ;
    }elseif($_POST['password'] != $_POST['password1']){
        echo "كلمة المرور غير متطابقة";
    }else{
        $insertmembers=mysql_query("INSERT INTO members (username,userpass,email,date)VALUES('$username','$userpass','$email','$date')") or die(mysql_error()) ;
        if(isset($insertmembers)){
            echo"تم تسجيل عضويتك بنجاح";
        }
    }
}
        ?>
        <form action="<?php $_SERVER["PHP_SELF"] ?>" method="post">
        <table border="1" width="40%" cellpadding="6" align="center">
            <tr>
                <td colspan="2" align="center">أدخل البيانات المطلوبة</td>
            </tr>
            <tr>
                <td>أسم المستخدم</td>
                <td><input type="text" name="username" size="35"/></td>
            </tr>
            <tr>
                <td>كلمة المرور</td>
                <td><input type="password" name="password" size="35"/></td>
            </tr>
            <tr>
                <td>تأكيد كلمة المرور</td>
                <td><input type="password" name="password1" size="35"/></td>
            </tr>
            <tr>
                <td>البريد الإلكتروني</td>
                <td><input type="text" name="email" size="35"/></td>
            </tr>
            <tr>
                <td colspan="2" align="center">
                    <input type="submit" value="تسجيل"/>
                    <input type="hidden" name="go" value="send" />
                </td>
            </tr>
        </table>
            </form>
    </body>
</html>

وهذا كود صفحة login.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html dir="rtl">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>تسجيل الدخول</title>
    </head>
    <body>

<?php
ob_start();
session_start();
if(isset($_SESSION['sessionname']) and isset($_SESSION['session'])){
    header("location: index.php") ;
    exit() ;
}else{
?>
<form action="index.php" method="post">
<table border="1" width="30%" cellpadding="5" align="center" >
    <tr>
        <td colspan="2" align="center">تسجيل الدخول</td>
    </tr>
    <tr>
        <td>أسم المستخدم :</td>
        <td><input type="text" name="logname" size="20"/></td>
    </tr>
    <tr>
        <td>كلمة المرور :</td>
        <td><input type="password" name="logpass" size="20"/></td>
    </tr>
    <tr>
        <td colspan="2" align="center"><input type="submit" value="تسجيل الدخول" />
        <input type="hidden" name="login" value="log"/></td>
    </tr>
</table>
</form>


<?php
}
ob_end_flush();
?>


وهذا كود صفحة logout.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html dir="rtl">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>الصفحة الرئيسية</title>
    </head>
    <body>
<?php
ob_start();
session_start();
if(!isset($_SESSION['sessionname']) and !isset($_SESSION['sessionpass'])){
    header("location: login.php") ;
    exit ();
}else{
    session_destroy() ;
    die("تم تسجيل خروجك للإنتقال للصفحة الرئيسية <a href='index.php'>اضغط هنا</a>");
}
?>
</body>
</html>




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

وفي امان الله و رعايته 

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

هناك 14 تعليقًا:

  1. لازالت مدونتى بدون تسجيل دخول- شكرا لك اخى ولك كامل تحياتى

    ردحذف
  2. http://firecpu.com/

    ردحذف
  3. يعطيك الف عافيه .. بس ليه مو قابل يطبق عندي !!

    ردحذف
  4. هل استطيع وضعه في موقعي الخاص www.gogaclick.funcut.com

    ردحذف
  5. أشكرك أخي ولكن لدي مشكله

    وهي تقول ذلك

    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\AppServ\www\index.php:8) in C:\AppServ\www\index.php on line 10

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\AppServ\www\index.php:8) in C:\AppServ\www\index.php on line 10

    Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\index.php:8) in C:\AppServ\www\index.php on line 12

    ما هو الحل؟

    ردحذف
  6. ياليت تعمل شريط فيديو

    توضح فيه عمل الملفات

    وهل السكريبت الكامل اللي حملتو على موقعك
    متناسب مع السكربت الموضوع على الموقع

    والصور التخطيط ليست واصحة وما تكبر

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



    ردحذف
  7. أزال المؤلف هذا التعليق.

    ردحذف
  8. Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\AppServ\www\index.php:8) in C:\AppServ\www\index.php on line 10

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\AppServ\www\index.php:8) in C:\AppServ\www\index.php on line 10

    Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\index.php:8) in C:\AppServ\www\index.php on line 12

    ما هو الحل؟

    ردحذف
  9. شكرا يا مان السكربت يعمل
    طبعا ليس من السهل بالنسبة لمبتدا تركيبه لكن يجب المثابرة وتعلم الاساسيات واللغات البرمجية من اجل الحؤول دون الاخطاء ,

    الملف config.php حساس للغاية ويجب عدم زيادة اي نقطة "," او فراغ " ****** " والتاكد من البيانات المدخة

    ردحذف
  10. السةربت يعمل
    لةن لازمتعديلات لانه فيه بعض الاخطاء البسيطة
    لازم تكون عندك خبرة بالphp

    ردحذف
  11. السلام عليكم اخي كيف نربطها بالسيرفر المحلي هذي الصفحات

    ردحذف
  12. السلام عليكم عندي مشكله ما بيقبل يتصل بقاعدة البيانات يا ريت تفيدني

    ردحذف