Tutorials

Loginsysteem met auto_prepend

Een loginsysteem met auto_prepend_file maken...

Pagina 1

Inleiding

PHP heeft tussen de vele ini vars ook "auto_prepend_file" en "auto_append_file". Met de eerste van dit duo kun je voor elke door php geparste pagina een ander php bestand er voor plakken.

Dit kan wel eens handig zijn als je een grote dir met php files wil beschermen met bijvoorbeeld een loginsysteem of misschien overal een header en een footer aan wil plakken als een wat simpeler template systeem.

In deze tutorial ga ik ff kort een loginssysteem er mee produceren en nog wat extra moeilijkheden proberen te verwoesten, zoals die van niet php bestanden.
Pagina 2

Het systeem zelf

Om te beginnen is er natuurlijk een .htaccess waarin je de boel activeert. Dat zou er zo uit kunnen zien:
php_value auto_prepend_file "session.php"
php_value auto_append_file "info.php"

Dan zou er dus een session.php moeten komen met een basis login check en een eventueel login scherm. Om even een voorbeeld te geven:
<?php
session_start();

if ($_REQUEST['do'] == 'logout') {
session_unset();
session_destroy();
}

if ($_SESSION['loggedin'] != true) {
include('login.php');
exit;
}

?>

Zelf kun je dan een leuke login.php schrijven waarin $_SESSION['loggedin'] op true gezet word als de login klopt. En natuurlijk een link naar welke pagina dan ook met ?do=logout voor het uitloggen ;).

Wat je met die info.php zou kunnen doen is helemaal aan jou, dat zou bijvoorbeeld een copyright ofzo kunnen zijn.
Pagina 3

Moeilijkheden

Nu kun je natuurlijk nog bestanden hebben die er wel door heen komen. een oplossing zou kunnen zijn om al je plaatjes bijvoorbeeld in je images map te stoppen en die een .htaccess te geven met:
deny from all

en vervolgens bij je .htaccess in je login systeem dir toe te voegen:
<ifModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^images/(.*)$ image.php?$1
</ifModule>

en daar dan een php script te maken die het bestand opent en echo't. Kijk wel uit dat je de data controleert!

Voor andere bestanden kun je denken aan download systemen en andere leuke dingen =).

Reacties

0
Nog geen reacties.