pella logo
Temperatur i Norrköping just nu:
Click for Norrköping, Sweden Forecast

Show sourcecode

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

public_html/src/

common.php
common.php~
login.php
source.php

login.php

150 lines UTF-8 Windows (CRLF)
<?php
// ===========================================================================================
//Den här filen ligger i mappen src och innehåller funktionerna. 

// Origin: http://github.com/mosbth/Utility
//
// Filename: login.php
//
// Description: Provide a set of functions to enable login & logout on a website.
//
// Author: Mikael Roos, mos@bth.se
//
// Change history:
// 
// 2011-01-26: 
// First try. Used as example code in htmlphp-kmom03.
//


// -------------------------------------------------------------------------------------------
//
// Is user authenticated and logged in?
//
function userIsAuthenticated() {
  if(isset(
$_SESSION['authenticated'])) {
    return 
$_SESSION['authenticated'];
  } else {
    return 
false;
  }
}


// -------------------------------------------------------------------------------------------
//
// create the login/logout menu
//
function userLoginMenu() {
  
// array with all menu items
  
$menu = array(
    
"login"   => "login.php?p=login",
    
"status"   => "login.php",
    
"logout"   => "login.php?p=logout",  
  );

  
// check if user is logged in or not, alter the menu depending on the result
  
if(userIsAuthenticated()) {
    unset(
$menu['login']);
  } else {
    unset(
$menu['status']);
    unset(
$menu['logout']);      
  }
  
  
$html "<nav class='login'>";
  foreach(
$menu as $key=>$val) {
    
$html .= "<a href='$val'>$key</a> ";
  }
  
$html .= "</nav>";
  return 
$html;
}


// -------------------------------------------------------------------------------------------
//
// Get login-form
//
function userLoginForm($output=null$outputClass=null) {

  if(isset(
$output)) {
    
$output "<p class='right' style='width:300px;'><output class='$outputClass'>$output</output></p>";
  }

  
$disabled null;
  
$disabledInfo null;
  if(
userisAuthenticated()) {
    
$disabled "disabled";
    
$disabledInfo "<em class='quiet small'>Du är inloggad, du måste <a href='?p=logout'>logga ut</a> innan du kan logga in.</em>";
  }

  
$html = <<<EOD
<h1>Logga in</h2>
<form method="post" action="?p=login">
  <fieldset>
    <legend>Login</legend>
    
$output
    <p>
      <label for="input1">Användarkonto:</label><br>
      <input id="input1" class="text" type="text" name="account">
    </p>
    <p>
      <label for="input2">Lösenord:</label><br>
      <input id="input2" class="text" type="password" name="password">
    </p>
    <p>
      <input type="submit" name="doLogin" value="Login" 
$disabled>
      
$disabledInfo
    </p>
  </fieldset>
</form>
EOD;

  return 
$html;
}


// -------------------------------------------------------------------------------------------
//
// Login the user
//
function userLogin() {
  global 
$userAccount$userPassword;
  
// if form is submitted then try to login
  // $_POST['doLogin'] is related to the name of the login-button
  
$output=null;
  
$outputClass=null;
  if(isset(
$_POST['doLogin'])) {
  
    
// does account and password match?
    
if($userAccount == $_POST['account'] && $userPassword == userPassword($_POST['password'])) {
      
$output "Du är nu inloggad. Menyn uppe i högra hörnet har ändrat sig.";
      
$outputClass "success";
      
$_SESSION['authenticated'] = true
    } else {
      
$output "Du lyckades ej logga in. Felaktigt konto eller lösenord.";
      
$outputClass "error";
    }
  }
  
  return 
userLoginForm($output$outputClass);
}


// -------------------------------------------------------------------------------------------
//
// Logout the user
//
function userLogout() {
  unset(
$_SESSION['authenticated']);
  return 
"<h1>Utloggad</h1><p>Du är nu utloggad.</p>";
}


// -------------------------------------------------------------------------------------------
//
// Generate a password
//
function userPassword($password) {
  return 
sha1($password);
}