Webbserverprogrammering 1

Show sourcecode

The following files exists in this folder. Click to view.

webbsrvprg/projects/slutprojekt/

class/
create-categories.php
create-recipe.php
css/
db_content.php
forgot_password.php
include/
login.php
logout.php
recipe-search.php
recipe.php
reset_password.php
signin.php
start.php
tabeller/
verify.php

reset_password.php

44 lines UTF-8 Windows (CRLF)
<?php
include('../../dbconnection.php');
ob_clean();

if (isset(
$_GET['code'])) {
  
$code $_GET['code'];
  
$stmt $dbconn->prepare("SELECT * FROM users WHERE reset_code = :code");
  
$stmt->bindParam(':code'$code);
  
$stmt->execute();

  if (
$stmt->rowCount() > 0) {
    
$user $stmt->fetch(PDO::FETCH_ASSOC);
    if (
time() > strtotime($user['reset_expires'])) {
      echo 
"Länken har gått ut.";
      exit;
    }

    if (
$_SERVER['REQUEST_METHOD'] === 'POST' && !empty($_POST['password'])) {
      
$newPassword password_hash(trim($_POST['password']), PASSWORD_DEFAULT);

      
$update $dbconn->prepare("UPDATE users SET password = :password, reset_code = NULL, reset_expires = NULL WHERE user_id = :id");
      
$update->bindParam(':password'$newPassword);
      
$update->bindParam(':id'$user['user_id']);
      
$update->execute();

      echo 
"Lösenordet har uppdaterats! <a href='login.php'>Logga in</a>";
      exit;
    }
?>
    <h1>Återställ lösenord</h1>
    <form method="post">
      <label for="password">Nytt lösenord:</label>
      <input type="password" name="password" required>
      <input type="submit" value="Uppdatera lösenord">
    </form>
<?php
  
} else {
    echo 
"Ogiltig återställningskod.";
  }
} else {
  echo 
"Ingen återställningskod angiven.";
}
?>