الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

برمجة صفحة تسجيل الدخول

بدأه f8athy في 5 أغسطس 2009 · 1 رد · 493 مشاهدة · في منتدى تطوير المواقع بـ PHP
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

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

لقمت بوضع هذا الكود لتسجيل الدخول

ملف login.php

<?
 // anti haker file
 include ('../includes/system/ANTI_hacker.php');
 $anti = new Anti_hacker;

 // data bass engine
 include ('./engine/DB_engine.php');
 $DB   = new db_engine;

 $DB->connect_db();

 // all comment codes
 include('./common.php');

 if ($_GET['login'] == 0)
 {
     print $easy->display('login.htm');
 }
 elseif ($_GET['login'] == 1)
 {


    // get user name and password whith protection methode
    $admin_username = IsSet($_POST['username']) ? $anti->put_safe($_POST['username']) :Null;
    $admin_passwd   = IsSet($_POST['passwd'])   ? $anti->put_safe($_POST['passwd'])   :Null;

    // check the valeur
    if (empty($admin_username))
    {
      echo (' لم تدخل اسم مستخدم');
    }
    elseif (empty($admin_passwd))
    {
      echo (' لم تدخل كلمة مرور');
    }
    else
    {

      // crypt the passwd
      /* $crypt = 'AzErTy123';
       $AES   = AES_ENCRYPT('$crypt','$admin_passwd');
       $pass  = md5($AES);
       $pass  = sha1($pass); */

      //  check
      $login_sql = "SELECT id,admin_name,admin_pass FROM Admin
      WHERE admin_name = '$admin_username' and admin_pass = '$admin_passwd' LIMIT 1";

      $login_query = $DB->query_db($login_sql);

      $login_row   = $DB->num_rows($login_query);

               ob_start();
      while ($login_fetch = $DB->fetch_db_array($login_query))
      {
              $admin_name = $login_fetch['admin_name'];
              $admin_pass = $login_fetch['admin_pass'];

              SESSION_START();
              $_SESSION['admin_name'] = $admin_name;

      }   // end while



    } // end chek if

    if ($login_row)
    {
        echo 'مرحبا $admin_name <br>';
        echo '<a href="./index.php">click here </a>';

    }
    else
    {
           echo (' لا يمكنك تسجيل الدخول');
    }  // end row if



 }
?>

هذا الكود قام بالتحقق لكن هناك مشكله وهي هذا الخطأ

Warning:  session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\camel\www\myportal\adcp\common.php:18) in C:\camel\www\myportal\adcp\login.php on line 59

خطأ fecth array

هل ممكن تصحيح لهذا الخطا

564x.jpg
#2

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

لقد قمت بتصحيح الكود إلى الآتي

<?
 // anti haker file
 include ('../includes/system/ANTI_hacker.php');
 $anti = new Anti_hacker;

 // data bass engine
 include ('./engine/DB_engine.php');
 $DB   = new db_engine;

 $DB->connect_db();

 // all comment codes
 include('./common.php');

 if ($_GET['login'] == 0)
 {
     print $easy->display('login.htm');
 }
 elseif ($_GET['login'] == 1)
 {


    // get user name and password whith protection methode
    $admin_username = IsSet($_POST['username']) ? $anti->put_safe($_POST['username']) :Null;
    $admin_passwd   = IsSet($_POST['passwd'])   ? $anti->put_safe($_POST['passwd'])   :Null;

    // check the valeur
    if (empty($admin_username))
    {
      echo (' لم تدخل اسم مستخدم');
    }
    elseif (empty($admin_passwd))
    {
      echo (' لم تدخل كلمة مرور');
    }
    else
    {

      // crypt the passwd
      /* $crypt = 'AzErTy123';
       $AES   = AES_ENCRYPT('$crypt','$admin_passwd');
       $pass  = md5($AES);
       $pass  = sha1($pass); */

      //  check
      $login_sql = "SELECT id,admin_name,admin_pass FROM Admin
      WHERE admin_name = '$admin_username' and admin_pass = '$admin_passwd' LIMIT 1";

      $login_query = $DB->query_db($login_sql);

      $login_row   = $DB->num_rows($login_query);


      $login_fetch = $DB->fetch_db_array($login_query);

      $admin_name = $login_fetch['admin_name'];
      $admin_pass = $login_fetch['admin_pass'];


    } // end chek if

    if ($login_row)
    {
        @session_register(admin);
        echo 'مرحبا '. $admin_name .'<br>';
        echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"1; URL=./index.php\">\n";

    }
    else
    {
           echo (' لا يمكنك تسجيل الدخول');

    }  // end row if



 }
?>

لقد قام بتسجيل الدخول إلا أني أخفيت الخطأ بعلامة @ هل هذا يؤثر على الحماية

وهذا في الصفحات العادية

ob_start();

   session_start();

    if (!session_is_registered(admin))
    {
          include ('./login.php');
    }
    else
    {

        echo 'مضمون الصفحة';
    }
    ob_end_flush ();

هل هناك خطأ أم هي صحيحة

وهذا تسجيل الخروج

  session_start();

     if (session_is_registered(admin))
     {
        session_unregister(admin);
        echo '<div align="center">جاري تسجيل خروجك الرجاء الإنتضار سيم تحويلك تلقائيا</div>';
        echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"1; URL=../index.php\">\n";
     }
     else
     {
         echo '<div align="center">يجب عليك تسجيل الدخول أولا جاري تحويلك</div>';
         echo "<META HTTP-EQUIV=\"refresh\" CONTENT=\"1; URL=./index.php\">\n";
     }

هل هناك خطأ أم هي صحيحة

شكرا لكم

564x.jpg

مواضيع مشابهة