Advertisement
Guest User

Untitled

a guest
May 20th, 2017
577
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.85 KB | None | 0 0
  1. <?php
  2.  
  3. /**
  4.  * Dimoweb_login
  5.  *
  6.  * @package
  7.  * @author Patrick Rennings
  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, $TransactionID = 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.             $this->ValidateTransaction ( $TransactionID );
  102.            
  103.             if ( empty ( self::$RtnCode ) )
  104.             {
  105.                
  106.                 $this->ValidateLogin ( );
  107.                
  108.             }
  109.            
  110.         }
  111.        
  112.     }
  113.    
  114.     /**
  115.      * Dimoweb_login::ValidateProject()
  116.      *
  117.      * @return
  118.      */
  119.     protected function ValidateProject ( )
  120.     {
  121.  
  122.         $iRquery = self::$DbCon->query( 'SELECT `project_id`, `project_key` FROM  `projects`
  123.                                         WHERE  `project_id` = ' . self::$PrjID . '
  124.                                         AND `project_key` = "' . self::$PrjCode . '" ' );
  125.        
  126.         if ( $iRquery->rowCount() < 1 )
  127.         {
  128.            
  129.             self::$RtnCode = '0007';
  130.            
  131.         }
  132.        
  133.         $this->CheckReturn( );
  134.        
  135.     }
  136.    
  137.     /**
  138.      * Dimoweb_login::ValidateLogin()
  139.      *
  140.      * @return
  141.      */
  142.     protected function ValidateLogin ( )
  143.     {
  144.        
  145.         if ( empty ( $this->iUsername ) OR empty ( $this->iPassword ) )
  146.         {
  147.            
  148.             self::$RtnCode = '0004';
  149.            
  150.         }
  151.         else
  152.         {
  153.            
  154.             $this->HashPassword( );
  155.            
  156.             if ( empty ( self::$RtnCode ) )
  157.             {
  158.                
  159.                 $cQuery = self::$DbCon->query( ' SELECT `username`, `password` FROM `users`
  160.                                                 WHERE `username` = "' . $this->iUsername . '"
  161.                                                 AND `password` = "' . $this->iPassword . '" ' );
  162.                
  163.                 if ( $cQuery->rowCount() < 1 )
  164.                 {
  165.                    
  166.                     self::$RtnCode = '0005';
  167.                    
  168.                 }
  169.                 else
  170.                 {
  171.                    
  172.                     self::$RtnCode = '1000';
  173.                    
  174.                 }
  175.            
  176.             }
  177.         }
  178.        
  179.         $this->CheckReturn ( );
  180.        
  181.     }
  182.    
  183.     protected function ValidateTransaction ( $TransID )
  184.     {
  185.        
  186.         if ( ! ctype_digit ( $TransID ) )
  187.         {
  188.            
  189.             self::$RtnCode = '0009';
  190.            
  191.         }
  192.         else
  193.         {
  194.            
  195.             $cQuery = self::$DbCon->query( ' SELECT `transaction_code`, `time` FROM `transactions`
  196.                                             WHERE `transaction_code` = "' . $TransID . '"
  197.                                             AND `time` >= NOW() - 10 ' );
  198.                
  199.             if ( $cQuery->rowCount() < 1 )
  200.             {
  201.                    
  202.                 self::$RtnCode = '0010';
  203.                    
  204.             }
  205.            
  206.         }
  207.        
  208.         $this->CheckReturn ( );
  209.        
  210.     }
  211.    
  212.     /**
  213.      * Dimoweb_login::HashPassword()
  214.      *
  215.      * @return
  216.      */
  217.     protected function HashPassword ( )
  218.     {
  219.        
  220.  
  221.         if ( empty ( $this->iPassword ) )
  222.         {
  223.            
  224.             self::$RtnCode = '0003';
  225.            
  226.         }
  227.         else
  228.         {
  229.            
  230.             $GenHash = hash ( 'sha512' , $this->iPassword );
  231.             $this->iPassword = $GenHash;
  232.            
  233.         }
  234.        
  235.         $this->CheckReturn ( );
  236.        
  237.     }
  238.    
  239.     /**
  240.      * Dimoweb_login::CheckReturn()
  241.      *
  242.      * @return
  243.      */
  244.     protected function CheckReturn ( )
  245.     {
  246.         if ( ! empty ( self::$RtnCode ) )
  247.         {
  248.            
  249.             return self::$RtnCode;
  250.             $this->bProc = false;
  251.            
  252.         }
  253.         else
  254.         {
  255.            
  256.             $this->bProc = true;
  257.            
  258.         }
  259.        
  260.     }
  261.    
  262. }
  263.  
  264. $login = new Dimoweb_login ( $_GET['prjid'], '75caa8138fe7be4372b81f17e3eec3d81068fc1d8b3ad504445f72d0fdd39210', '1234567890', $_GET['rurl'], $_GET['username'], $_GET['password'] );
  265. if ( Dimoweb_login::$RtnCode )
  266. {
  267.    
  268.     echo Dimoweb_login::$RtnCode;
  269.    
  270. }
  271.  
  272. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement