Advertisement
Guest User

Untitled

a guest
Oct 11th, 2016
153
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.53 KB | None | 0 0
  1. <?php
  2. define('SQL_HOST', 'localhost');
  3. define('SQL_PORT', '3306');
  4. define('SQL_DATABASE', 'phplicence');
  5. define('SQL_USER', 'phplicenceuser');
  6. define('SQL_PASSWORD', 'password');
  7. //Verbindet uns zur MySQL Datenbank und erstellt das PDO Objekt
  8. $PDO = connectMySQL();
  9. //Liest die Post Inputs aus und filtert sie
  10. $username = filter_input ( INPUT_POST, 'username', FILTER_SANITIZE_STRING );
  11. $password = filter_input ( INPUT_POST, 'password', FILTER_SANITIZE_STRING );
  12. $action = filter_input ( INPUT_POST, 'action', FILTER_SANITIZE_STRING );
  13. $data = filter_input ( INPUT_POST, 'data', FILTER_SANITIZE_SPECIAL_CHARS );
  14. //In diesem Beispiel haben wir kein Session System sondern prüfen den Login bei jeder Anfrage erneut
  15. if (checkLogin()){
  16.     //Falls die Benutzerdaten korrekt waren und die Lizenz okay schauen wir welche action denn angefordert wurde
  17.     //In dem Beispiel haben wir nur eine mögliche Action
  18.     switch ($action){
  19.         //Die getT wertet den erhaltenen Quelltext aus, liest den timestamp aus und echo'd ihn
  20.         case 'getT':
  21.             //Durch FILTER_SANITIZE_SPECIAL_CHARS wurden mögliche gefährliche Zeichen (XSS) gefiltert.
  22.             //Das get_string_between ersetzt hier auf dem Server nun das eigentliche lokale StringBetween von AutoIt
  23.             $temp = get_string_between($data, 'input type="hidden" name="t" value="', '"');
  24.             echo $temp;
  25.             break;
  26.     }
  27. }
  28. /*
  29.  * Source http://www.justin-cook.com/wp/2006/03/31/php-parse-a-string-between-two-strings/
  30.  */
  31. function get_string_between($string, $start, $end){
  32.     $string = " ".$string;
  33.     $ini = strpos($string,$start);
  34.     if ($ini == 0) return "";
  35.     $ini += strlen($start);
  36.     $len = strpos($string,$end,$ini) - $ini;
  37.     return substr($string,$ini,$len);
  38. }
  39. function connectMySQL(){
  40.     $driverOptions = array(
  41.             \PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"
  42.     );
  43.     return new \PDO('mysql:host='.SQL_HOST.';port='.SQL_PORT.';dbname='.SQL_DATABASE, SQL_USER, SQL_PASSWORD, $driverOptions);
  44. }
  45. function checkLogin(){
  46.     global $PDO, $username, $password;
  47.    
  48.     $sql = "SELECT *
  49.             FROM user
  50.             WHERE username = ?";
  51.     $statement =$PDO->prepare($sql);
  52.     $statement->execute(array($username));
  53.     $result = $statement->fetch(\PDO::FETCH_ASSOC);
  54.    
  55.     if (verifyPassword($password, $result['password'])){
  56.         if ($result['isLicenced'] != 0){
  57.             return true;
  58.         } else {
  59.             echo 'Not Licenced';
  60.             return false;          
  61.         }
  62.     } else {
  63.         echo 'Login incorrect';
  64.         return false;
  65.     }
  66. }
  67. function verifyPassword($password, $hashedPassword){
  68.     if (crypt($password, $hashedPassword) == $hashedPassword){
  69.         return true;
  70.     } return false;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement