Advertisement
lamhottt

Router-Satu

Aug 26th, 2017
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.44 KB | None | 0 0
  1. <?php
  2.  
  3. defined('sys_run_app') OR exit('403 You dont have permission to access / on this server...');
  4.  
  5. // Name space untuk router
  6. use System\GF_Router as GF;
  7. // Name space untuk $_POST
  8. use System\GF_Post as Req;
  9.  
  10.  
  11. // membuat router kosong, dan mengalihkan ke url "localhost/GF/forgot"
  12. GF::Route("",function(){
  13.     // membuat object controller User_Controller
  14.     $o = GF::Controller("User_Controller");
  15.    
  16.     // check login dari controller
  17.     $o->checkLogin("user-login");
  18.  
  19.     // mengalihkan ke router login
  20.     GF::directTo("login");
  21. });
  22.  
  23. // membuat router welcome
  24. GF::Route("welcome",function(){
  25.     // membuat object controller User_Controller
  26.     $o = GF::Controller("User_Controller");
  27.    
  28.     // check login dari controller
  29.     $o->checkLogin("user-login");
  30.  
  31.     // mengalihkan ke router login
  32.     GF::directTo("login");
  33. });
  34.  
  35.  
  36. // membuat router login
  37. GF::Route("login",function(){
  38.     // membuat object controller User_Controller
  39.     $o = GF::Controller("User_Controller");
  40.    
  41.     // check login dari controller
  42.     $o->checkLogin("user-login");
  43.  
  44.     // mengalihkan ke view login
  45.     GF::setView("login");
  46. });
  47.  
  48. // membuat router forgot
  49. GF::Route("forgot",function(){
  50.     // membuat object controller User_Controller
  51.     $o = GF::Controller("User_Controller");
  52.    
  53.     // check login dari controller
  54.     $o->checkLogin("user-login");
  55.  
  56.     GF::setView("forgot");
  57. });
  58.  
  59. // membuat router khusus untuk captcha
  60. GF::Route("refresh-captcha",function(){
  61.     $_SESSION = array();
  62.     // membuat session baru my_captcha
  63.     _createSession("my_captcha",simple_php_captcha());
  64. });
  65.  
  66. // membuat router untuk ajax dari client
  67. GF::Route("process-reset-password",function(){
  68.     // membuat semua $_POST dari ajax
  69.     $result = Req::post("token # email # captcha # new_pass # old_pass");
  70.  
  71.     // membuat array kosong
  72.     $json_response = [];
  73.  
  74.     // check semua $_POST, apakah terpenuhi ?
  75.     if (Req::check())
  76.     {
  77.         // ambil semua data $_POST tersebut , akan dikembalikan dalam bentuk ARRAY
  78.         $post = Req::getAll();
  79.  
  80.         // check captcha dari user dulu ? apakah sama dengan sesion captcha ?
  81.         // jika sama maka
  82.         if ($post['captcha'] == $_SESSION['my_captcha']['code'])
  83.         {
  84.             // membuat object model Data_User
  85.             $o = GF::Model("Data_User");
  86.  
  87.             // memasukkan email dari user
  88.             $o->setEmail($post['email']);
  89.            
  90.  
  91.             // memassukkan password lama  dari user
  92.             $o->setOldPassword($post['old_pass']);
  93.  
  94.             // check apakah password lama benar ?
  95.             if ($o->checkOldPassword())
  96.             {
  97.                 // memasukkan password bar dari user
  98.                 $o->setNewPassword($post['new_pass']);
  99.  
  100.                 // lakukan reset password
  101.                 $result = $o->resetPassword();
  102.  
  103.                 // jika benar
  104.                 if ($result)
  105.                 {
  106.                     // masukkan ke array
  107.                     $json_response['result'] = 'T';
  108.                 }
  109.                 else
  110.                 {
  111.                     $json_response['result'] = 'F';
  112.                 }
  113.  
  114.             }
  115.             else
  116.             {
  117.                 $json_response['result'] = 'OLDPASS';
  118.             }
  119.  
  120.            
  121.         }
  122.         else
  123.         {
  124.             $json_response['result'] = 'W';
  125.         }
  126.        
  127.     }
  128.     else
  129.     {
  130.         $json_response['result'] = '404';
  131.     }
  132.  
  133.     // keluarkan array dalam bentuk json
  134.     echo json_encode($json_response);
  135.  
  136. });
  137.  
  138.  
  139. // membuat router untuk ajax dari client
  140. GF::Route("process-login",function(){
  141.     // membuat semua $_POST dari ajax
  142.     $result = Req::post("token # email # pass ");
  143.  
  144.     // membuat array kosong
  145.     $json_response = [];
  146.  
  147.     // check semua $_POST, apakah terpenuhi ?
  148.     if (Req::check())
  149.     {
  150.         // ambil semua data $_POST tersebut , akan dikembalikan dalam bentuk ARRAY
  151.         $post = Req::getAll();
  152.  
  153.         // membuat object model Data_User
  154.         $o = GF::Model("Data_User");
  155.  
  156.         // masukkan email dari user
  157.         $o->setEmail($post['email']);
  158.         // masukkan password dari user
  159.         $o->setOldPassword($post['pass']);
  160.  
  161.         // check hasil loginnya
  162.         $result = $o->login();
  163.  
  164.         // jika benar
  165.         if ($result)
  166.         {  
  167.             // masukkan ke array
  168.             $json_response['result'] = 'T';
  169.  
  170.             // membuat object controller
  171.             $c = GF::Controller("User_Controller");
  172.  
  173.             // memanggil function controller login
  174.             // dengan mengambil data username
  175.             $c->login("user-login",$o->getUsername());
  176.         }
  177.         else
  178.         {
  179.             $json_response['result'] = 'F';
  180.         }      
  181.     }
  182.     else
  183.     {
  184.         $json_response['result'] = '404';
  185.     }
  186.  
  187.     // keluarkan array dalam bentuk json
  188.     echo json_encode($json_response);
  189. });
  190.  
  191. // contoh menggunakan controller untuk logout
  192. GF::RouteToController("logout","User_Controller",function($o){
  193.     // object $o disini, didapat dari parameter callback
  194.     // panggil function logout di controller
  195.     $o->logout("user-login");
  196.  
  197.     // jika sudah, refresh halaman...
  198.     GF::directTo("");
  199. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement