Advertisement
Guest User

Untitled

a guest
Dec 21st, 2018
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.96 KB | None | 0 0
  1. CREATE TABLE users(
  2. id INT AUTO_INCREMENT,
  3. username VARCHAR(50) NOT NULL,
  4. password VARCHAR(100) NOT NULL,
  5. PRIMARY KEY(id) );
  6.  
  7. <?php
  8. $dsn = 'mysql:host=localhost;dbname=educate'; //Data source Name
  9. $username = 'root';
  10. $password = '';
  11. $options = array(PDO::MYSQL_ATTR_INIT_COMMAND=> 'SET NAMES utf8');
  12.  
  13. $conn = new PDO($dsn, $username, $password,$options);
  14. ?>
  15.  
  16. <?php
  17. session_start();
  18. if(!empty($_SESSION['username'])) {
  19. header('location:plan.php');
  20. }
  21. require 'connection.php';
  22.  
  23.  
  24. if(isset($_POST['login'])) {
  25.  
  26. $user = $_POST['username'];
  27. $pass = $_POST['password'];
  28.  
  29. if(empty($user) || empty($pass)) {
  30. $message = 'All field are required';
  31. } else {
  32. $query = $conn->prepare("SELECT username, password FROM users WHERE
  33. username=? AND password=? ");
  34. $query->execute(array($user,$pass));
  35. $row = $query->fetch(PDO::FETCH_BOTH);
  36.  
  37. if($query->rowCount() > 0) {
  38. $_SESSION['username'] = $user;
  39. header('location:plan.php');
  40. } else {
  41. $message = "Username/Password is wrong";
  42. }
  43.  
  44.  
  45. }
  46.  
  47. }
  48. ?>
  49.  
  50. <!DOCTYPE html>
  51. <html>
  52. <head>
  53. </head>
  54. <body>
  55. <?php
  56. if(isset($message)) {
  57. echo $message;
  58. }
  59. ?>
  60. <form action="#" method="post">
  61. Username: <input type="text" name="username" placeholder="username">
  62. <br/><br/>
  63. Password: <input type="password" name="password" placeholder="password">
  64.  
  65. <br/><br/>
  66. <input type="submit" name="login" value="Login">
  67.  
  68. </form>
  69.  
  70. </html>
  71.  
  72. <?php
  73. session_start();
  74. session_destroy();
  75. header('location: login.php');
  76. ?>
  77.  
  78. <?php
  79. session_start();
  80.  
  81. if(isset($_SESSION['username'])) {
  82. echo "Welcome <strong>".$_SESSION['username']."</strong><br/>";
  83. } else {
  84. header('location: login.php');
  85. }
  86.  
  87. ?>
  88. <a href="logout.php">Logout</a>
  89.  
  90. session_start();
  91. if(!empty($_SESSION['username'])) {
  92. header('location:plan.php');
  93. }
  94.  
  95. <--! Make user send request to your site without knowing -->
  96. <img src="http://yoursite.com/plan.php?do=evil">
  97.  
  98. $_SESSION['username'] = $user;
  99. $_SESSION['valid_until'] = time() + 60*60; //1hr from now
  100. $_SESSION['csrf_token'] = 'long_random_string'; //research how to build this
  101. header("X-CSRF: $_SESSION[csrf_token]");
  102. header('location:plan.php');
  103.  
  104. session_start();
  105. $logged_in = false;
  106. if(isset($_SESSION['username'])){
  107. if(!$_SESSION['valid_until'] >= time()) $logged_in = false;
  108. $request_headers = apache_request_headers();
  109. $csrf = isset($request_headers["X-CSRF"])? $request_headers["X-CSRF"] : null;
  110. if($_SESSION['csrf_token']!==$csrf) $logged_in = false;
  111. }
  112. if($logged_in){/*give access*/}
  113. else{/*block access*/}
  114.  
  115. $user = $_POST['username'];
  116. $pass = $_POST['password'];
  117. ...
  118. $query = $conn->prepare("SELECT username, password FROM users WHERE
  119. username=? AND password=? ");
  120. $query->execute(array($user,$pass));
  121.  
  122. $password = password_hash($_POST['password'],PASSWORD_DEFAULT);
  123.  
  124. $query = $conn->prepare("SELECT username, password FROM users WHERE username=?");
  125. ... // <-execute query and capture password in $db_pass
  126.  
  127. if($query->rowCount() > 0 && password_verify($_POST['password'],$db_pass)){
  128. //credentials are correct
  129.  
  130. }else{/*user unknown or password incorrect*/}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement