Skulle fixa ett enkelt inloggningsscript på en hemsida som ska vara klar idag (skulle varit klar igår) och jag hade tänkt sitta och jobba medan lilla dottern sov. Jag hann precis börja kika när hunden skällde och väckte henne... :(
Jag är väldigt usel på PHP och undrar om någon kan peka mig i rätt riktning till ett busenkelt inloggningsscript där en användare ska mata in ett lösenord (inget användarnamn) för att få tillgång till information på ett antal sidor. Det är ingen superhemlig information så det behöver inte vara en superdupersäker lösning. Bara hålla ute den breda massan. ;)
Vore jättetacksam! Måste jaga dottern nu (hon har precis lärt sig krypa...)
sen för varje sidan som man kommer åt bör man kolla om användaren är inloggad. Om sidorna är PHP-sidor så kan man inkludera följande kod överst p åde sidorna:
<?php
sesstion_start();
if(!isset($_SESSION['logged_in']) || $_SESSION['logged_in']!=true)
{
// användaren har inte loggat in, skicka användaren till inloggningsssidan
header("Location: check.php");
}
?>
ett alternativ är att lägga koden ovanför i en separat fil (ex: validate.php) och inkludera den över på alla sidor med:
require_once("validate.php");
annars kan man bara skriva in adressen till de sidorna så kommer man åt dem.
Inloggningen går bra, från index.php kommer jag till start.php som man ska om man matat in rätt lösenord.
Jag får dock felmeddelandet på start.php:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\XXXX\XXXX\gastbok\start.php:2) in C:\XXXX\XXXX\gastbok\conn.php on line 2
Sidan ser ut så här:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<?php require_once("validate.php"); ?>
<head>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
etc etc....
och validate.php så här:
<?php
session_start();
if(!isset($_SESSION['logged_in']) || $_SESSION['logged_in']!=true)
{
// användaren har inte loggat in, skicka användaren till inloggningsssidan
header("Location: index.php");
}
?>
I samband med att man byter behörighet (loggar in eller ut) bör man alltid använda session_regenerate_id() för att minska risken för "session hijacking"!