PageRenderTime 48ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/database.php

https://gitlab.com/seckmaster/Cloud-password
PHP | 146 lines | 107 code | 14 blank | 25 comment | 17 complexity | eb084e7185c9d1367147a9e2caedb15e MD5 | raw file
  1. <?php
  2. $host = "localhost"; // Host name
  3. $username = "toni"; // Mysql username
  4. $password = ""; // Mysql password
  5. $db_name = "c_password"; // Database name
  6. // connect to database
  7. $mysqli = new mysqli("$host", "$username", "$password", "$db_name");
  8. // if unable to connect, exit
  9. if($mysqli->connect_errno) {
  10. echo "Error accessing database!";
  11. exit();
  12. }
  13. // evaluates string if matches requirements
  14. function Evaluate($string) {
  15. if(strlen($string) < 8) return false;
  16. $has_special = false;
  17. for ($i = 0; $i<strlen($string); $i++) {
  18. $char = substr($string, $i, 1);
  19. if($char >= '0' && $char <= '9') $has_special = true;
  20. }
  21. return $has_special;
  22. }
  23. // encrypts string (source: http://alias.io/2010/01/store-passwords-safely-with-php-and-mysql/)
  24. function _Crypt($string) {
  25. $salt = strtr(base64_encode(mcrypt_create_iv(16, MCRYPT_DEV_URANDOM)), '+', '.');
  26. $cost = 10;
  27. $salt = sprintf("$2a$%02d$", $cost) . $salt;
  28. return crypt($string, $salt);
  29. }
  30. // fn: loging into c. password
  31. // return true on success
  32. function LogIn($username, $password) {
  33. global $mysqli;
  34. $query = "SELECT * FROM users WHERE username='$username' LIMIT 1";
  35. if($result = $mysqli->query($query)) {
  36. if($result = $result->fetch_assoc()) {
  37. $hash = $result["password"];
  38. if($password == $hash) {
  39. $_SESSION["user"] = $username;
  40. header("Location: ../user/index.php");
  41. exit();
  42. }
  43. return false;
  44. }
  45. echo "Wrong username or password!<br>";
  46. return false;
  47. }
  48. return false;
  49. }
  50. // fn: send email
  51. function SendMail($to) {
  52. $subject = "Thank you for registering into Cloud Password!";
  53. $from = "support@c_password.com";
  54. $headers = "From:" . $from;
  55. $headers .= "Reply-To: " . $from. "\r\n";
  56. $headers .= "CC: " . $from . "\r\n";
  57. $headers .= "MIME-Version: 1.0\r\n";
  58. $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
  59. $message = '<html><body>';
  60. $message .= '<h1>Thank you for registering!</h1>';
  61. $message .= '<p>Hope you enjoy using Cloud Password!</p>';
  62. $message .= '</body></html>';
  63. mail($to,$subject,$message,$headers);
  64. }
  65. // fn: register
  66. // return true on success
  67. function Register($username, $password, $email) {
  68. // if inserted password isn't ok
  69. /*$p = Evaluate($password);
  70. if(!$p) {
  71. echo "Password not strong enough!";
  72. return;
  73. }*/
  74. global $mysqli;
  75. $query = "SELECT * FROM users WHERE username='$username' LIMIT 1";
  76. if($result = $mysqli->query($query)) {
  77. if($result->fetch_assoc() == null) {
  78. $hash = $password;
  79. $query = "INSERT INTO users VALUES(null, '$username', '$hash', '$email');";
  80. if($result = $mysqli->query($query)) {
  81. SendMail($email);
  82. echo "Registration was successful.<br>Log In!";
  83. }
  84. else echo "Error: " . $mysqli->error;
  85. }
  86. else echo "User '" .$username . "' already exists!" ;
  87. }
  88. else echo "Error: " . $mysqli->error;
  89. }
  90. // fn: add password into database
  91. function AddPassword($user_loged, $name, $username, $password) {
  92. global $mysqli;
  93. $name = strtolower($name);
  94. // encrypt password
  95. $password = _Crypt($password);
  96. // we need id of loged user
  97. $query = "SELECT * FROM users WHERE username='$user_loged' LIMIT 1";
  98. $result = $mysqli->query($query);
  99. $result = $result->fetch_assoc();
  100. $id = $result["id"];
  101. // insert data into db
  102. $query = "INSERT INTO data VALUES(null, '$id', '$name', '$username', '$password');";
  103. $mysqli->query($query);
  104. echo $mysqli->error;
  105. }
  106. // fn: delete password drom db
  107. function deletePassword($user, $name) {
  108. global $mysqli;
  109. // we need id of loged user
  110. $query = "SELECT * FROM users WHERE username='$user' LIMIT 1";
  111. $result = $mysqli->query($query);
  112. $result = $result->fetch_assoc();
  113. $id_user = $result["id"];
  114. $query = "DELETE FROM data WHERE id_user='$id_user' AND name='$name' LIMIT 1";
  115. // delete row
  116. $mysqli->query($query);
  117. echo $mysqli->error;
  118. }
  119. // fn: returns all passwords from user
  120. function getAllPasswords($user) {
  121. global $mysqli;
  122. // we need id of loged user
  123. $query = "SELECT * FROM users WHERE username='$user' LIMIT 1";
  124. $result = $mysqli->query($query);
  125. $result = $result->fetch_assoc();
  126. $id = $result["id"];
  127. // get passwords from data
  128. $query = "SELECT * FROM data WHERE id_user='$id'";
  129. $result = $mysqli->query($query);
  130. return $result;
  131. }
  132. ?>