الجزء الأول Codeigniter Authentification
Codeigniter هو واحد من ل php frameworks لي ظهرت ف 2006 وخدات المكانة ديالها مابين ل frameworks لي كاينين فهاد الدرس الأول غادي نشوفو مشروع ديال كيفاش المستخدم يمكنلو يتسجل فقاعدة البيانات من بعد يسجل الدخول ديالو بإستعمال البريد الإلكتروني وكلمة المرور .
نظرة سريعة بالفيديو
- تحميل Codeigniter
أول حاجة غادي نديروها هي تحميل Codeigniter من الموقع الإلكتروني https://www.codeigniter.com/download من بعد ما يكمل التحميل غادي تهز المجلد لي حملتي وغادي تحطو فc:wamp/www وتسميه ci_auth باش تشوف الصفحة ديال الترحيب غادي تمشي للمتصفح ديالك وتكتب http://localhost/ci_auth كيفما يمكنلك تشوفها بكتابة http://localhost/ci_auth/index.php باش نحيدو داك index.php من الرابط ديالنا غادي نزيدو واحد الملف سميتو htaccess. وغادي نزيدو فيه الكود التالي :
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /ci_auth/
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_URI} ^application.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
- إنشاء قاعدة البيانات
غادي تمشي ل localhost/phpmyadmin غادي تزيد قاعدة بيانات وتسميها authentification أوالإسم لي بغيتي من بعد تزيد فيها جدول تسميه users باش تربط الإتصال بقاعدة البيانات غادي تمشي ل application/config/database.php وغادي تدير تعديلات على الكود :
$db['default'] = array(
'dsn' => '',
'hostname' => 'localhost',
'username' => 'root',
'password' => '',
'database' => 'authentification',
'dbdriver' => 'mysqli',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE
);
- الصفحات الأساسية
غادي تمشي لviews من بعد تزيد مجلد جديد تسميه includes فهاد المجلد غادي تزيد ملف تسميه header.php لي غادي يكون أساس كل الصفحات وفيه روابط لملفات الcss لي غادي نحتاجو الكود النهائي ديالو:
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<title>Codeigniter Auth</title>
<!-- Bootstrap -->
<link href="<?php echo base_url()?>assets/css/bootstrap.min.css" rel="stylesheet">
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
- الصفحات الأساسية تتمة
غادي تمشي includes فهاد المجلد غادي تزيد ملف تسميه footer.php لي غادي يكون أساس كل الصفحات وفيه روابط لملفات الjs لي غادي نحتاجو الكود النهائي ديالو:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="<?php echo base_url()?>assets/js/bootstrap.min.js"></script>
</html>
- الصفحة الاخيرة فل includes
فالمجلد includes غادي تزيد ملف تسميه menu.php لي غادي يكون أساس كل الصفحات وفيه الMenu لي غادي يمكنا من التنقل عبرهاد الصفحات الكود النهائي ديالو :
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="<?php echo base_url();?>">Codeigniter Auth</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Compte <span class="caret"></span></a>
<ul class="dropdown-menu">
<?php if($this->session->userdata('logged')):?>
<li><a href="<?php echo base_url();?>users/logout">Déconnexion</a></li>
<?php else:?>
<li><a href="<?php echo base_url();?>users/create">Ajouter un compte</a></li>
<li><a href="<?php echo base_url();?>users/login">Connexion</a></li>
<?php endif;?>
</ul>
</li>
</ul>
</div><!--/.nav-collapse -->
</div><!--/.container-fluid -->
</nav>