Tilbake til startsida IKT i praksis - PHP

Meny
 
 
 
PHP
Passord
 
Pascal
 
Open Office
 

Passord

Programma for å lage sider med passord krev ofte mykje programmering og bruk av database. Har du bruk for eit enkelt program med felles passord for alle brukarane, kan kanskje dette forslaget vere til hjelp. Du kan bruke det slik det står, eller du kan gjere dei forandringane som er omtalte i teksten for å tilpasse programmet til ulike behov.

(Ein annan måte å gjere dette på er forklart på sida Session).

Her er det snakk om eitt passord felles for alle brukarane. Først kodene for å lage sida:

1<?php $passord = "test"; ?>
2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
3<html>
4<head>
5<title>Passordside</title>
6</head>
7<body>
8<h2 align="center">Passord for sidene</h2>
9<?php
10if (isset($_POST["password"]) && ($_POST["password"]=="$passord")) { // Passordet OK
11$_POST["password"] = '';
12print '<meta http-equiv="refresh" content="0;url=http://www.Domene/side.php">';
13}
14else // Passordet er tomt eller feil:
15{
16if (isset($_POST['password']) || $passord == "") {
17print "<p align=\"center\"><font color=\"red\"><b>Feil passord</b></font></p>";
18}
19print "<form method=\"post\"><p align=\"center\">Skriv passordet her:<br>";
20print "<input name=\"password\" type=\"password\" size=\"25\" maxlength=\"15\"><input value=\"Login\" type=\"submit\"></p></form>";
21}
22?>
23<body>
24<html>

Lagra sida som «passord.php» eller med eit anna høveleg namn.

Passordet som skal brukast blir her bestemt i den øvste linja. Dette blir ikkje synleg om brukaren skulle finne på å liste ut kjeldekodene for sida. Sjølvsagt kan du også sløyfe definisjonen her og i staden definere passordet før du kallar opp sida. Dermed kan sida brukast med ulike passord alt kva side ho blir kalla opp frå. Altså:

<?php
$passord = 'passordet';
include 'passordsida.php';
?>

Dersom passordet er rett, vil brukaren i linje 12 bli vidaresendt til den passordverna sida. Sjølvsagt bytter du ut adressa www.Domene/side.php med den aktuelle adressa. Vil du heller halde fram på denne sida, bytter du ut linje 12 med aktuelle koder. For eksempel:

12 print '<h3>Gratulerer. Du fann det rette passordet!</h3>'

Som oftast vonleg noe meire fantasifullt enn dette.

I linje 20 har eg sett maksimumslengda på passordet til 15 teikn. (maxlength="15"). Denne kan du forandre etter behov. Lengda bør vere mindre enn verdien sett i size.

Det er råd å bruke denne passordsida på fleire ulike sider og passord. Dei einaste variablene er passordet og adressa for den nye sida. Altså:

<?php
$passord = 'passordet';
$adresse = 'www.mittDomene.no/miSide.php';
include 'passordsida.php';
?>

I passordsida forandrer du linje 12 til
print '<meta http-equiv=\"refresh\" content=\"0;url=http://'.$adresse.'\">';

Litt om programmet

Når nettsida blir opna er det ikkje sett noen verdi for $_POST["password"] i linje 10. $_POST["password"] er «False». Dermed hoppar programmet til linje 14 og vidare til linje 16. Sidan $_POST["password"] også her er usann, blir linje 17 hoppa over. Linjene 19 og 20 blir derimot utførte. Nå blir skjermbildet synleg for brukaren. Blir det skrive inn feil passord eller ikkje noe i det heile, vi den same prosessen bli tatt opp igjen. Er passordet derimot korrekt, vil linje 11 bli utført og passordet sletta frå skjermen. Deretter blir linje 12 utført.

Ei siste endring

Eg er litt doven av natur, så eg ønskjer at programma skal gjere mest mogleg for meg. Som oftast blir passordprogrammet lagt i same mappa som målfila. Difor la eg inn eit par ekstra variablar:

9a $vert = $_SERVER['HTTP_HOST'];
9b $adr = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');

Variabelen $vert fanger opp namnet på verten, dvs. plassen sidene er lagt på. (Det som kjem fram på adresselinja til og med «www.». Ofte er bare «www» synleg, men det er alltid noe framføre også). Variabelen $adr vil innehalde adressa til sidene. (Det som på adresselinja kjem fram etter «www», men ikkje namnet på fila som skal kallast opp).

Den opphavlege linje 12 blir forandra til
12 print '<meta http-equiv="refresh" content="0;url=http://'.$vert.$adr.$side.'">';

Oppkallet av programmet:

<?php
$passord = 'passordet';
$side = 'miSide.php'; // Sida som skal kallast opp
include 'passordsida.php';
?>

Resten ordnar nå programmet.


Send melding

© Innhald og design:  Kolbjørn StuestølStuestøl heimesideSist endra 13. april 2013