Advertisement
Guest User

Untitled

a guest
May 19th, 2017
551
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.01 KB | None | 0 0
  1. <?php
  2.  
  3. /**
  4.  * Dimoweb_login
  5.  *
  6.  * @package
  7.  * @author ----
  8.  * @copyright 2010
  9.  * @version $Id$
  10.  * @access public
  11.  */
  12.  
  13.  
  14. class Dimoweb_login {
  15.    
  16.     static public $PrjID;
  17.     static public $PrjCode;
  18.     static public $RtnCode;
  19.    
  20.     protected $iUsername;
  21.     protected $iPassword;
  22.    
  23.     protected $bProc;
  24.     static protected $DbCon;
  25.    
  26.     /**
  27.      * Dimoweb_login::__construct()
  28.      *
  29.      * @param int $ProjectID
  30.      * @param mixed $ReportURL
  31.      * @param mixed $Username
  32.      * @param mixed $Password
  33.      * @return
  34.      */
  35.     public function __construct ( $ProjectID = null, $ProjectCode = null, $ReportURL = null, $Username = null, $Password = null )
  36.     {
  37.        
  38.         if ( ! ctype_digit ( $ProjectID ) OR empty ( $ProjectID ) )
  39.         {
  40.            
  41.             self::$RtnCode = '0001';
  42.            
  43.         }
  44.         else
  45.         {
  46.            
  47.             self::$PrjID = $ProjectID;
  48.            
  49.         }
  50.        
  51.         if ( strlen ( $ProjectCode ) != 64 OR empty ( $ProjectCode ) )
  52.         {
  53.            
  54.             self::$RtnCode = '0008';
  55.            
  56.         }
  57.         else
  58.         {
  59.            
  60.             self::$PrjCode = $ProjectCode;
  61.            
  62.         }
  63.        
  64.         if ( empty ( $ReportURL ) AND empty ( self::$RtnCode )  )
  65.         {
  66.            
  67.             self::$RtnCode = '0002';
  68.            
  69.         }
  70.        
  71.         /**
  72.          *
  73.          * Database connection
  74.          * using PDO for the best speed
  75.          *
  76.          */
  77.        
  78.         try
  79.         {
  80.            
  81.             self::$DbCon = new PDO ( 'mysql:dbname=patrick_dwl;host=localhost', 'patrick_dwl', 'dwlpatrick31' );
  82.            
  83.         }
  84.         catch (  PDOException $e )
  85.         {
  86.            
  87.             self::$RtnCode = '0999';
  88.            
  89.         }
  90.        
  91.        
  92.         $this->CheckReturn( );
  93.        
  94.         if ( empty ( self::$RtnCode ) )
  95.         {
  96.            
  97.             $this->iUsername = $Username;
  98.             $this->iPassword = $Password;
  99.            
  100.             $this->ValidateProject ( );
  101.            
  102.             if ( empty ( self::$RtnCode ) )
  103.             {
  104.                
  105.                 $this->ValidateLogin ( );
  106.                
  107.             }
  108.            
  109.         }
  110.        
  111.     }
  112.    
  113.     /**
  114.      * Dimoweb_login::ValidateProject()
  115.      *
  116.      * @return
  117.      */
  118.     protected function ValidateProject ( )
  119.     {
  120.  
  121.         $iRquery = self::$DbCon->query( 'SELECT `project_id`, `project_key` FROM  `projects`
  122.                                         WHERE  `project_id` = ' . self::$PrjID . '
  123.                                         AND `project_key` = "' . self::$PrjCode . '" ' );
  124.        
  125.         if ( $iRquery->rowCount() < 1 )
  126.         {
  127.            
  128.             self::$RtnCode = '0007';
  129.            
  130.         }
  131.        
  132.         $this->CheckReturn( );
  133.        
  134.     }
  135.    
  136.     /**
  137.      * Dimoweb_login::ValidateLogin()
  138.      *
  139.      * @return
  140.      */
  141.     protected function ValidateLogin ( )
  142.     {
  143.        
  144.         if ( empty ( $this->iUsername ) OR empty ( $this->iPassword ) )
  145.         {
  146.            
  147.             self::$RtnCode = '0004';
  148.            
  149.         }
  150.         else
  151.         {
  152.            
  153.             $this->HashPassword( );
  154.            
  155.             if ( empty ( self::$RtnCode ) )
  156.             {
  157.                
  158.                 $cQuery = self::$DbCon->query( ' SELECT `username`, `password` FROM `users`
  159.                                                 WHERE `username` = "' . $this->iUsername . '"
  160.                                                 AND `password` = "' . $this->iPassword . '" ' );
  161.                
  162.                 if ( $cQuery->rowCount() < 1 )
  163.                 {
  164.                    
  165.                     self::$RtnCode = '0005';
  166.                    
  167.                 }
  168.                 else
  169.                 {
  170.                    
  171.                     self::$RtnCode = '1000';
  172.                    
  173.                 }
  174.            
  175.             }
  176.         }
  177.        
  178.         $this->CheckReturn ( );
  179.        
  180.     }
  181.    
  182.     /**
  183.      * Dimoweb_login::HashPassword()
  184.      *
  185.      * @return
  186.      */
  187.     protected function HashPassword ( )
  188.     {
  189.        
  190.  
  191.         if ( empty ( $this->iPassword ) )
  192.         {
  193.            
  194.             self::$RtnCode = '0003';
  195.            
  196.         }
  197.         else
  198.         {
  199.            
  200.             $GenHash = hash ( 'sha512' , $this->iPassword );
  201.             $this->iPassword = $GenHash;
  202.            
  203.         }
  204.        
  205.         $this->CheckReturn ( );
  206.        
  207.     }
  208.    
  209.     /**
  210.      * Dimoweb_login::CheckReturn()
  211.      *
  212.      * @return
  213.      */
  214.     protected function CheckReturn ( )
  215.     {
  216.         if ( ! empty ( self::$RtnCode ) )
  217.         {
  218.            
  219.             return self::$RtnCode;
  220.             $this->bProc = false;
  221.            
  222.         }
  223.         else
  224.         {
  225.            
  226.             $this->bProc = true;
  227.            
  228.         }
  229.        
  230.     }
  231.    
  232. }
  233.  
  234. $login = new Dimoweb_login ( $_GET['prjid'], '75caa8138fe7be4372b81f17e3eec3d81068fc1d8b3ad504445f72d0fdd39210', $_GET['rurl'], $_GET['username'], $_GET['password'] );
  235. if ( Dimoweb_login::$RtnCode )
  236. {
  237.    
  238.     echo Dimoweb_login::$RtnCode;
  239.    
  240. }
  241.  
  242. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement