Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2018
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.19 KB | None | 0 0
  1. <?PHP
  2. $hostname = gethostname();
  3. require_once "{$hostname}settings.php";
  4. function session_check()
  5. {
  6. if(!isset($_COOKIE['MYSID'])) {
  7. $token=md5(rand(0,1000000000));
  8. setcookie('cookie', $token);
  9. $user=array('id'=>NULL,'username'=>"Visitor");
  10. redis_set_json($token, $user,0);
  11. }
  12. else
  13. $token=$_COOKIE['MYSID'];
  14. $expire = isset($_POST['remember']) ? 0 : 600;
  15. if (isset($_POST['username']) and isset($_POST['password']))
  16. return authorize($_POST['username'],$_POST['password'],$token);
  17. else
  18. return authorize(NULL,NULL,$token);
  19. }
  20. function authorize($username,$password, $token)
  21. {
  22. if ($username!=NULL and $password!=NULL)
  23. {
  24. /*if ($username=="kalkos" and $password=="qwerty")
  25. $user=array('id'=>333,'username'=>$username);
  26. else
  27. $user=array('id'=>NULL,'username'=>"Visitor");
  28. redis_set_json($token,$user,"0");*/
  29. $user = array();
  30. if($_SERVER["REQUEST_METHOD"] == "POST"){
  31. if (empty(trim($username))) {
  32. echo "Empty username!";
  33. }
  34. else
  35. {
  36. $user['username'] = trim($username);
  37. }
  38. if (empty(trim($password))) {
  39. echo "Please enter your password!";
  40. }
  41. else {
  42. $password = trim($password);
  43. $pass = password_hash($password, PASSWORD_DEFAULT);
  44. }
  45. $sql = "select i,login,password,role from login where login = ?";
  46. if ($res = mysqli_prepare($dbs, $sql))
  47. {
  48. mysqli_stmt_bind_param($res, "s", $pr_usrname);
  49. $pr_usrname = $username;
  50. if (mysqli_stmt_execute($res)) {
  51. mysqli_stmt_store_result($res);
  52. if (mysqli_stmt_num_rows($res) == 1) {
  53. mysqli_stmt_bind_result($res, $user['id'], $user['username'], $hashed_password, $user['root']);
  54. if (mysqli_stmt_fetch($stmt)) {
  55. if (password_verify($pass, $hashed_password)) {
  56. echo "All works!";
  57. redis_set_json($token, $user, $expire);
  58. return $user;
  59. }
  60. else {
  61. echo "Pass not valid!";
  62. return $user;
  63. }
  64. } //fetch
  65. else {
  66. echo "User not exists";
  67. return $user;
  68. }
  69. } //numrows
  70. else {
  71. echo "Try again later";
  72. }
  73. } //execute
  74. mysqli_stmt_close($res);
  75. mysqli_close($dbs);
  76. }
  77. else
  78. return redis_get_json($token);
  79. }
  80. function logout($user)
  81. {
  82. $token=$_COOKIE['MYSID'];
  83. $user=array('id'=>NULL,'username'=>"Visitor");
  84. redis_set_json($token,$user,"0");
  85. return $user;
  86. }
  87. function redis_set_json($key, $val, $expire)
  88. {
  89. $redisClient = new Redis();
  90. $redisClient->connect( REDIS_SERVER, REDIS_PORT );
  91. $redisClient->auth(REDIS_PASSWORD);
  92. $value=json_encode($val);
  93. if ($expire > 0)
  94. $redisClient->setex($key, $expire, $value );
  95. else
  96. $redisClient->set($key, $value);
  97. $redisClient->close();
  98. }
  99. function redis_get_json($key)
  100. {
  101. $redisClient = new Redis();
  102. $redisClient->connect( REDIS_SERVER, REDIS_PORT );
  103. $redisClient->auth(REDIS_PASSWORD);
  104. $ret=json_decode($redisClient->get($key),true);
  105. $redisClient->close();
  106. return $ret;
  107. }
  108. function show_menu($user)
  109. {
  110. echo '<pre>';
  111. print_r($user);
  112. echo '</pre>';
  113. echo '
  114. <nav class="uk-navbar">
  115. <ul class="uk-navbar-nav">';
  116. if ($user==NULL and $user['username'] == NULL)
  117. {
  118. echo '<li class="uk-active"><a href="login.php">Login</a></li>';
  119. }
  120. else
  121. {
  122. echo '<li class="uk-active"><a href="logout.php">Logout</a></li>
  123. <li class="uk-active"><a href="addpost.php">Add new post</a></li>';
  124. echo '<li class="uk-parent"><a href="index.php">Home</a></li>
  125. </ul>
  126. </nav>';
  127. }
  128. }
  129. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement