Her får du hjelp til å lage hjemmeside med video. Alle verktøy og programmer vi bruker til å lage webside er gratis.
Login script i PHP
En av brukerne her på Hjemmeside ville lage login i PHP til websiden sin, så her er en kort introduksjon til noen nyttige konsepter i PHP
Foruten denne læringsposten
finner du to nedlastbare, fungerende og litt mer kompliserte loginscript her.
Login script med sessions i PHP
Hvis du skal lage login, så kan du gjøre det på denne måten:
- Lagre brukernavn og passord i databasen
- Hente ut brukernavn og passord fra databasen når bruker logger inn
- Lagre innlogging ved hjelp av en "session", dvs via cookie hos klienten
Her er et lite script som illustrerer hvordan det fungerer. Dette scriptet vil dog ikke hente passord for databasen, men fungerer fint som et utgangspunkt for å forstå sammenhengene.
HTML-koden i dette scriptet validerer ikke ifølge standard. Videre bør man skille HTML og CSS fra PHP.
PHP script
<?php
// Starter session for script
session_start();
// Riktig brukernavn og passord
$auth = array(
'username' => 'Fritzl',
'password' => 'GodJul',
);
// Sjekker om bruker er logger inn med riktig passord
if(isset($_POST['username'], $_POST['password'])) {
if($_POST['username'] == $auth['username'] && $_POST['password'] == $auth['password']) {
$_SESSION['logged_in'] = true;
} else {
print '<p>Du har skrevet inn feil brukernavn eller passord.</p>';
}
}
// Logger ut
if(isset($_GET['logout'])) {
unset($_SESSION['logged_in']);
}
// Printer login form om ikke logget inn
if (!isset($_SESSION['logged_in'])) {
$login_form = <<<EOF
<form method="post">
<fieldset>
<legend>Logg inn</legend>
<label for="username">Brukernavn:
<input type="text" name="username" id="username" />
</label>
<label for="password">Passord:
<input type="password" name="password" />
</label>
<input type="submit" value="Logg inn" />
</fieldset>
</form>
EOF;
// Print skjema
print $login_form;
}
elseif (isset($_SESSION['logged_in']) && $_SESSION['logged_in'] == true) {
$output = <<<EOF
<p>Du er nå logget inn, klikk her for å logge ut:</p>
<p><a href="/?logout=1" title="logg ut">Få meg ut herfra</a></p>
EOF;
print $output;
}
?>Forklaring av login script
Hvis brukeren ikke er logget inn vil ikke sesjonesvariabelen $_SESSION være satt. Merk at det er viktig å begynne scriptet med session_start();.
Hvis brukeren ikke er logget inn, vil innloggingsskjema komme opp. Dersom brukeren har forsøkt å skrive inn feil brukernavn og passord, vil vedkommende få beskjed ovenfor login skjemaet.
Dersom brukeren har logget inn med korrekt brukernavn og passord, så vil vedkommende komme til den delen som krever autentisering. Her får man også opp en link som lar brukeren logge ut igjen.
Hvis brukeren går bort fra nettstedet, men kommer tilbake før sesjonen har «gått ut på dato», vil han likevel være innlogget.
Merk at <form> bruker method="post", og at vi leser ut verdiene fra skjemaet i PHP ved hjelp av arrayen $_POST['navn_pa_felt_i_form'].
Videre bruker vi en query string i linken for utlogging. I det tilfellet bruker vi en annen protokoll enn POST, nemlig GET. Spørsmålstegnet i URLen angir at det kommer en variabel etterfulgt av verdien. Slik
http://hjemmeside.org/?logout=1Her er navnet på variabelen «logout», mens verdien av den er «1». For å hente ut denne variabelen fra et PHP script kan vi gjøre det slik:
<?php
print $_GET['logout'];
?>Denne vil i dette tilfellet printe ut «1».
Ønsker man flere variabler i query stringen (spørrestrengen), så nytter man &, slik;
http://hjemmeside.org/?variabel_1=hei&variabel_2=halloSkal man printe ut disse variablene fra scriptet, bruker man naturligvis:
<?php
print $_GET['variabel_1']; // hei
print $_GET['variabel_2']; // hallo
?>Spør hvis det er noe mer noen lurer på. Prøv gjerne scriptet på et webhotell eller en server som støtter PHP

