Webbserverprogrammering 1

Show sourcecode

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

webbserverprogrammering/submissions/projekt-matkort-handler/

.github/
add_logs.php
admin/
api/
card_balance.php
classes/
config/
food_logs.php
forgot_password.php
includes/
index.php
insert_restaurants.php
install.php
login.php
logout.php
public/
register.php
reset_password.php
verify.php

forgot_password.php

85 lines UTF-8 Windows (CRLF)
<?php
session_start
();
include_once 
'./config/database.php';
include_once 
'./classes/User.php';

$error '';
$success '';

if (
$_SERVER['REQUEST_METHOD'] === 'POST') {
  
$email htmlspecialchars(trim($_POST['email']));
  
  if (empty(
$email)) {
    
$error "Ange en e-postadress.";
  } else {
    try {
      
$token User::generateResetToken($pdo$email);
      
      if (
$token) {
          
$actual_link "http://" $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . "/reset_password.php?token=" $token;
          
          if (
$local) {
              
$success "En återställningslänk har skickats (giltig i 15 minuter). <br><br>
              <span style='font-size:12px; color:#555;'>[DEV MOCK EMAIL MSG] KLICKA HÄR FÖR ATT ÅTERSTÄLLA:<br>
              <a href='"
.$actual_link."'>".$actual_link."</a></span>";
          } else {
              
$subject "Återställ ditt lösenord";
              
$message "Du har begärt att få återställa ditt lösenord.\n\nKlicka på följande länk för att byta lösenord:\n\n" $actual_link "\n\n(Länken slutar fungera om 15 minuter)";
              
$headers "From: noreply@" $_SERVER['HTTP_HOST'] . "\r\n";
              
$headers .= "Content-Type: text/plain; charset=UTF-8\r\n";
              
              
mail($email$subject$message$headers);
              
              
$success "Om e-postadressen finns registrerad har vi skickat en länk. Kontrollera din skräppost.";
          }
      } else {
          
// If the email wasn't found or isn't verified, we STILL say success to prevent email sweeping enumerations
          
$success "Om e-postadressen finns registrerad och är verifierad har vi skickat en länk. Kontrollera din skräppost.";
      }
    } catch (
Exception $e) {
      
$error "Något gick fel.";
    }
  }
}

$page_title 'Glömt Lösenord';
require_once 
'./includes/header.php';
?>

<div class="container">
  <div class="login-box">
    <h1>Återställ Lösenord</h1>
    <p style="text-align: center; color: #555; margin-bottom: 20px;">Ange din e-post så skickar vi dig en länk för att återställa lösenordet.</p>

    <?php if ($error): ?>
      <div class="error-message">
        <?php echo htmlspecialchars($error); ?>
      </div>
    <?php endif; ?>
    
    <?php if ($success): ?>
    <div class="success-message">
      <?php echo $success?>
    </div>
    <?php else: ?>
    <form method="POST" action="forgot_password.php">
      <div class="form-group">
        <label for="email">Epost:</label>
        <input 
            type="email" 
            id="email" 
            name="email" 
            required
        >
      </div>
      <button type="submit" class="btn btn-primary">Skicka återställningslänk</button>
    </form>
    <?php endif; ?>

    <p class="register-link" style="margin-top: 15px;">
      <a href="./login.php">Tillbaka till inloggning</a>
    </p>
  </div>
</div>

<?php require_once './includes/footer.php'?>