Advertisement
Guest User

Untitled

a guest
Dec 1st, 2016
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.28 KB | None | 0 0
  1. <form action="" method="post">
  2. <div class="field">
  3. <label for="username">Username: </label>
  4. <input type="text" name="username" id="username" autocomplete="off" />
  5. </div>
  6.  
  7. <div class="field">
  8. <label for="Password">Password: </label>
  9. <input type="password" name="password" id="password" autocomplete="off" />
  10. </div>
  11.  
  12. <div class="field">
  13. <label for="remember">
  14. <input type="checkbox" name="remember" id="remember" value="on"/> Remember Me
  15. </label>
  16. </div>
  17.  
  18. <input type="hidden" name="token" value="<?php echo Token::generate(); ?>" />
  19. <input type="submit" value="Login" name="Login"/>
  20. </form>
  21.  
  22. <?php
  23. require_once 'init.php';
  24. $user = new User();
  25. if($user->isLoggedIn()){
  26. Redirect::to('index.php');
  27. }
  28. $validate = new Validate();
  29. if(Input::exists()) {
  30. if(Token::check(Input::get('token'))) {
  31. $validation = $validate->check($_POST["Login"], array(
  32. 'username' => array('required' => true),
  33. 'password' => array('required' => true)
  34. ));
  35. }
  36. }
  37. ?>
  38.  
  39. <?php
  40. class Validate {
  41.  
  42. # Set the variables
  43. private $_passed = false,
  44. $_errors = array(),
  45. $_db = null;
  46.  
  47. # Construct or establish connection to the database
  48. public function __construct(){
  49. $this->_db = Database::getInstance();
  50. }
  51.  
  52. # The validation/checking code or the main brain of the code
  53. public function check($source, $items = array()){
  54. # Run a ` for each ` for each item in the fields
  55. foreach($items as $item => $rules) {
  56. # Run a ` for each ` for every rule in the items
  57. foreach($rules as $rule => $rule_value) {
  58. # Set the variables of `value` and `item`
  59. $value = $source[$item];
  60. $item = sanitize($item);
  61.  
  62. if($rule === 'required' && empty($value)) {
  63. $this->addError("{$item} is required");
  64. } else if (!empty($value)) {
  65. switch($rule) {
  66. # Case: Minimum
  67. case 'min':
  68. if(strlen($value) < $rule_value) {
  69. $this->addError("{$item} must be a minimum of {$rule_value} characters.");
  70. }
  71. break;
  72.  
  73. # Case Maximum
  74. case 'max':
  75. if(strlen($value) > $rule_value) {
  76. $this->addError("{$item} must be a maximum of {$rule_value} characters.");
  77. }
  78. break;
  79.  
  80. # Case: Match
  81. case 'matches':
  82. if($value != $source[$rule_value]) {
  83. $this->addError("{$rule_value} must match {$item}.");
  84. }
  85. break;
  86.  
  87. # Case: Unique
  88. case 'unique':
  89. $check = $this->_db->get($rule_value, array($item, '=', $value));
  90.  
  91. if($check->count()) {
  92. $this->addError("{$item} already exists.");
  93. }
  94. break;
  95. # Case: Not match
  96. case 'notmatch':
  97. if($value === $source[$rule_value]) {
  98. $this->addError("{$rule_value} must not match {$item}.");
  99. }
  100. break;
  101. }
  102. }
  103. }
  104. }
  105.  
  106. if(empty($this->_errors)) {
  107. $this->_passed = true;
  108. }
  109. }
  110.  
  111. # ~ ADD ~ and error
  112. public function addError($error) {
  113. $this->_errors[] = $error;
  114. }
  115.  
  116. # ~ RETURN ~ the errors
  117. public function errors() {
  118. return $this->_errors;
  119. }
  120.  
  121. # ~ CHECK ~ if it is passed
  122. public function passed() {
  123. return $this->_passed;
  124. }
  125.  
  126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement