View File form.php
Step1 - Create Model : UsersModel.php
<?php
namespace App\Models;
use CodeIgniter\Model;
class UsersModel extends Model{
protected $table ='users';
protected $primaryKey = 'id';
protected $allowedFields =['name','mobile','email','img_name','is_deleted','password'];
}
Step1 - Create View : form.php
<?= $this->include('header')?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.4/jquery.min.js"></script>
<!-- ajaxForm -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.form/4.3.0/jquery.form.min.js" integrity="sha384-qlmct0AOBiA2VPZkMY3+2WqkHtIQ9lSdAsAn5RUJD/3vA5MKDgSGcdmIv4ycVxyn" crossorigin="anonymous"></script>
<!-- End ajaxForm -->
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.12.9/dist/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
<script src="<?= base_url('assets/js/custom.js')?>"></script>
</head>
<body>
<div class="container mt-4">
<?php $validation = \Config\Services::validation(); ?>
<div class="col-lg-12">
<?php if (session()->getFlashdata('added') !== NULL) { ?>
<div class="col-lg-12 alert alert-success alert-dismissible fade show text-center mb-3" role="alert">
<i class="mdi mdi-check-all me-2"></i>
<?php echo session()->getFlashdata('added'); ?>
</div>
<?php } ?>
</div>
<div class="col-lg-12">
<?php if (session()->getFlashdata('exist') !== NULL) { ?>
<div class="col-lg-12 alert alert-warning alert-dismissible fade show text-center mb-3" role="alert">
<i class="mdi mdi-check-all me-2"></i>
<?php echo session()->getFlashdata('exist'); ?>
</div>
<?php } ?>
</div>
<div class="row">
<h2 class="text m-4 font-weight-bold">Registration Form</h2>
<div class="mt-5 mb-2" style="margin-left:530px">
<a class="btn btn-primary" href="<?php echo base_url('/')?>">Back</a>
</div>
</div>
<form action="<?php echo base_url('/savedata')?>" method="post" enctype="multipart/form-data">
<div class="form-group">
<label for="name" class="col-sm-2 col-form-label">name</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="name" id="name" placeholder="name">
</div>
<?php if($validation->getError('name')) {?>
<div class='alert alert-danger mt-2 col-sm-10'>
<?= $error = $validation->getError('name'); ?>
</div>
<?php }?>
</div>
<div class="form-group ">
<label for="email" class="col-sm-2 col-form-label">Email</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="email" id="email" placeholder="Email">
</div>
<?php if($validation->getError('email')){ ?>
<div class="alert alert-danger mt-2 col-sm-10">
<?= $validation->getError('email')?>
</div>
<?php }?>
</div>
<div class="form-group">
<label for="Phone" class="col-sm-2 col-form-label">Phone</label>
<div class="col-sm-10">
<input type="number" class="form-control" name="phone" id="phone" placeholder="Phone">
</div>
<?php if($validation->getError('phone')){?>
<div class="alert alert-danger mt-2 col-sm-10">
<?= $validation->getError('phone')?>
</div>
<?php }?>
</div>
<div class="form-group ">
<label for="password" class="col-sm-2 col-form-label">password</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="password" id="password" placeholder="Create password">
</div>
<?php if($validation->getError('password')){ ?>
<div class="alert alert-danger mt-2 col-sm-10">
<?= $validation->getError('password')?>
</div>
<?php }?>
</div>
<div class="form-group">
<label for="Phone" class="col-sm-2 col-form-label">Photo</label>
<div class="col-sm-10">
<input type="file" class="form-control" name="file" id="file" placeholder="File">
</div>
<div class="col-sm-10 m-2 progress d-none">
<div class="progress-bar bar progress-bar-striped progress-bar-animated" role="progressbar" aria-valuenow="75" aria-valuemin="0" aria-valuemax="100" style="width: 75%"></div>
</div>
<div class="col-sm-10 m-2 alert alert-success d-none">
<span></span>
</div>
<?php if($validation->getError('phone')){?>
<div class="alert alert-danger mt-2 col-sm-10">
<?= $validation->getError('file')?>
</div>
<?php }?>
</div>
<div class="form-group row">
<div class="col-sm-8 d-flex">
<input type="submit" class="btn btn-primary" id="submit" value="submit" placeholder="save">
</div>
</div>
</form>
</div>
<script>
$(document).ready(function(){
$('form').ajaxForm({
beforeSend:function(){
if($('#file').val() !='') {
$('.progress').removeClass('d-none');
var percentVal = "0%";
$('.bar').css('width',percentVal);
}
},
uploadProgress:function(event,position,total,percentagecomplete){
if($('#file').val() !='') {
var percentVal = percentagecomplete+"%";
$('.bar').css('width',percentVal);
}
},
complete:function(){
if($('#file').val() !='') {
$('.progress').removeClass('d-none');
console.log($('#file').val());
}
else{
console.log('Choose File');
}
}
});
});
</script>
</body>
</html>
Step2 - Routes.php
<?php
use CodeIgniter\Router\RouteCollection;
/**
* @var RouteCollection $routes
*/
$routes->get('/alldata', 'Home::index');
$routes->get('/','LoginController::ajaxform');
$routes->get('/form', 'Home::form');
$routes->post('/savedata','Home::savedata');
$routes->get('edit/(:any)','Home::Edit/$1');
$routes->post('update/(:any)','Home::updatedata/$1');
$routes->get('remove/(:any)','Home::remove/$1');
$routes->get('login','LoginController::ajaxform');
$routes->get('userdata','LoginController::userdata');
$routes->post('logindata','LoginController::logindata');
$routes->get('logout','LoginController::logout');
Step 4- create Controller - Home.php
1- create controller for registration form
<?php
namespace App\Controllers;
use App\Models\UsersModel;
class Home extends BaseController
{
public function index()
{
$model = new usersModel();
$data['records'] = $model->where('is_deleted',0)->findAll();
return view('welcome_message',$data);
}
public function form(){
$session = session();
if (null ===$session->get('is_loggedin')) {
return view('form');
}
if (null !==$session->get('is_loggedin')) {
return redirect()->to(base_url('userdata'));
}
}
public function savedata(){
$session = session();
$rules = [
'name' => 'required|max_length[30]',
'email' => 'required|max_length[254]|valid_email',
'phone' => 'required|numeric|max_length[10]',
'password' =>'required',
'file' => [
'uploaded[file]',
'mime_in[file,image/jpg,image/jpeg,image/png,image/gif]',
'max_size[file,4096]',
]
];
if(!$this->validate($rules)){
$data['validation'] = $this->validator;
return view('form', $data);
}else{
$email = $this->request->getPost('email');
$model = new usersModel();
$data = $model->where('is_deleted',0)->where('email',$email)->findAll();
if(!empty($data)){
session()->setFlashdata('exist','Email already exist.............');
return redirect()->to(base_url('/form'));
}else{
$name = $this->request->getPost('name');
$phone = $this->request->getPost('phone');
$password = $this->request->getPost('password');
$file = $this->request->getFile('file');
$fname = $file->getName();
$file->move("../public/assets/uploads");
chmod("../public/assets/uploads/".$fname,0777);
$data = array(
'name' => $name,
'email' => $email,
'mobile' => $phone,
'password' => $password,
'img_name' => $fname
);
$model = new UsersModel();
$save = $model->insert($data);
if(isset($save)){
session()->setFlashdata('added','Record added successfully. Please Login.....');
return redirect()->to(base_url('/form'));
}
}
}
}
public function Edit($id=null){
$model = new usersModel();
$data['data'] = $model->where('id',$id)->where('is_deleted',0)->findAll()[0];
return view('editform',$data);
}
public function updatedata($id=null){
$session = session();
$model = new usersModel();
$rules = [
'name' => 'required|max_length[30]',
'email' => 'required|max_length[254]|valid_email',
'phone' => 'required|numeric|max_length[10]',
'password' => 'required',
'file' => [
'uploaded[file]',
'mime_in[file,image/jpg,image/jpeg,image/png,image/gif]',
'max_size[file,4096]',
]
];
if(!$this->validate($rules)){
$data['validation'] = $this->validator;
$model = new usersModel();
$data['data'] = $model->where('id',$id)->where('is_deleted',0)->findAll()[0];
return view('editform', $data);
}else{
$model = new usersModel();
$email = $this->request->getPost('email');
$data = $model->where('id !=',$id)->where('is_deleted',0)->where('email',$email)->findAll()[0];
if(!empty($data)){
session()->setFlashdata('exist','Email already exist.............');
return redirect()->to(base_url('/edit/'.$id));
}else{
$name = $this->request->getPost('name');
$phone = $this->request->getPost('phone');
$password = $this->request->getPost('password');
$file = $this->request->getFile('file');
$filename = $file->getName($file);
$file->move("../public/assets/uploads");
chmod('../public/assets/uploads/'.$filename,0777);
$data = array(
'id' => $id,
'name' => $name,
'email' => $email,
'mobile' => $phone,
'password' => $password,
'img_name' => $filename
);
$resonse = $model->where('is_deleted',0)->update($id,$data);
if($resonse){
session()->setFlashdata('update','Record updated successfully..!');
return redirect()->to(base_url('edit/'.$id));
}else{
session()->setFlashdata('missing','Record is Missing..!');
return redirect()->to(base_url('edit/'.$id));
}
}
}
}
public function remove($id=null){
$data = array(
'id' => $id,
'is_deleted' => 1
);
$model = new usersModel();
$resonse = $model->where('is_deleted',0)->update($id,$data);
if($resonse){
session()->setFlashdata('deleted','Record Deleted successfully..!');
return redirect()->to(base_url('/'));
}
}
}
Step 4- Helper - create custom_helper.php
1- create helper for login form.
2- class helper in side controller or views using load helper by helper('custom');
<?php
use App\Models\UsersModel;
function isLogged($email,$password){
$model = new UsersModel();
$data = $model->where('email',$email)->where('password',$password)->find()[0];
if(isset($data)){
return [
'id' => $data['id'],
'email' => $data['email'],
'is_loggedin' => true
];
}
}
?>
Step 4- Create Controller for Logins - create LoginController.php
<?php
namespace App\Controllers;
use CodeIgniter\Controller;
use App\Models\UsersModel;
class LoginController extends BaseController
{
public function __construct(){
helper(['custom']);
}
public function userdata(){
$session = session();
if (null !==$session->get('is_loggedin')) {
$model = new usersModel();
$data['records'] = $model->where('is_deleted',0)->where('id',$session->get('id'))->findAll()[0];
return view('dashboard',$data);
}{
return redirect()->to('/login');
}
}
public function ajaxform(){
$session = session();
if (null ===$session->get('is_loggedin')) {
return view('loginform');
}
if (null !==$session->get('is_loggedin')) {
return redirect()->to('userdata');
}
}
public function logindata(){
$session = session();
$rules = [
'email' => 'required|max_length[254]|valid_email',
'password' => 'required',
];
if(!$this->validate($rules)){
$data['validation'] = $this->validator;
return view('loginform', $data);
}else{
$email = $this->request->getPost('email');
$password = $this->request->getPost('password');
$data = isLogged($email,$password);
$session->set($data);
if(isset($data) && !empty($data)){
return redirect()->to(base_url('userdata'));
}else{
return redirect()->to(base_url('/login'));
}
}
}
public function logout(){
$session = session();
if(null !== $session->get('is_loggedin')){
$session->destroy();
return redirect()->to(base_url('login'));
}
}}



No comments:
Post a Comment