Pagina beveiligen zonder database

Door - SanThe - , 22 jaar geleden, 10.604x bekeken

Met dit script kun je één over meerdere pagina's beveiligen met een login voor meerdere verschillende gebruikers. Je hebt hier geen database voor nodig. In het script kun je meerdere inlognamen met bijhorende passwords ingeven. ze staan in het array genaamd $secrets.

Wil je het script gebruiken dan kan je de code bovenin jouw .php pagina plakken. Bij gebruik op meerdere pagina's moet je het script op elke pagina plakken. Het script is eigenlijk niet echt gemaakt voor meerdere pagina's omdat het updaten van de gebruikers in het array dan op al die pagina's moet gebeuren. Dan is het gebruik van een database uiteraard een stuk simpeler.

Verder lijkt mij dat het commentaar in het script voldoende uitleg geeft.

Voorbeeld: http://www.test.santhe.nl/phphulp/pagina_beveiligen.php

Gesponsorde koppelingen

PHP script bestanden

  1. pagina-beveiligen-zonder-database

 

Er zijn 40 reacties op 'Pagina beveiligen zonder database'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
- SanThe -
- SanThe -
22 jaar geleden
 
0 +1 -0 -1
Op deze regel kun je uiteraard zelf een tekst invullen.
$sessiontekst = md5(date("d-m-Y"));
Maar het grappige van deze regel zoals die nu is, is dat je om 00:00 uur spontaan wordt uitgelogd.
Mebus  Hackintosh
Mebus Hackintosh
22 jaar geleden
 
0 +1 -0 -1
als je:

session_destroy();

dan gooi je toch alle sessions weg?

kan je dat niet gewoon beter apart doen?

unset($_SESSION['naam']);

of stel ik nu weer een noob vraagje?:p

GR. mebus!
- SanThe -
- SanThe -
22 jaar geleden
 
0 +1 -0 -1
@Mebus: Ik zou het eigenlijk niet weten of dat beter is.
Mebus  Hackintosh
Mebus Hackintosh
22 jaar geleden
 
0 +1 -0 -1
als je:

session_destroy();

gebruikt dan gooi je alle sessions weg ook van andere scripts waarbij je ingelogt bent

ik weet niet zeker zal wel ff nakijken:)

GR. mebus!

edit:

session_destroy -- Destroys all data registered to a session


dit staat op http://nl2.php.net/session_destroy

zo keb toch gelijk maar jij moet het weten het is niet mijn script:)

maar het kan wel nadelen hebben voor andere scripts

of ik zit er nu heeeeeel ver naast?:p
- SanThe -
- SanThe -
22 jaar geleden
 
0 +1 -0 -1
session_destroy() destroys all of the data associated with the current session. It does not unset any of the global variables associated with the session, or unset the session cookie.

@Mebus: Ik denk dat het allemaal wel mee valt.
Mebus  Hackintosh
Mebus Hackintosh
22 jaar geleden
 
0 +1 -0 -1
o na ja dan ben ik denk hiermee in de war:

session_unset();

als het goed is?:p


GR. mebus!
PHP erik
PHP erik
22 jaar geleden
 
0 +1 -0 -1
session_destroy() is ouderwets en hoort nog in het session_register() tijdperk. Op zich kan het geen kwaad om het te gebruiken, maar de standaard is:

unset($_SESSION)
of
unset($_SESSION['naam'])


Over het script. Ik kan het uiteraard niet bijzonder noemen. Het is wellicht handiger als je de exits weghaalt en een mooiere foutafhandeling maakt. En je kunt het best geschikt maken om geinclude te worden zodat het wel handig is voor meerdere pagina's.

Leuk script verder, we hebben er weer een loginscript bij :-)
Lissy Pixel
Lissy Pixel
22 jaar geleden
 
0 +1 -0 -1
Wat een leuke manier om de arrays een beetje inzichtelijker te maken en ook wat een van de toepassingen hier van mogelijk is.
Makkelijk wanneer je dus 1 pagina wil beveiligen om wat voor reden dan ook :)

Bedankt SanThe voor het delen!!
Legolas
Legolas
22 jaar geleden
 
0 +1 -0 -1
met session_destroy is het inderdaad zo dat als je op je host twee login systemen hebt die dezelfde session delen voor een gebruiker dat je dan alles weg gooit.
- SanThe -
- SanThe -
22 jaar geleden
 
0 +1 -0 -1
@Legolas: Als iemand dat anders wil, dan kan hij/zij dat zelf heel simpel doen. Ik vind het verder niet echt belangrijk in dit script.
Mathias
mathias
22 jaar geleden
 
0 +1 -0 -1
ik heb een probleem:
als je inlogt geef ik de volgende opdracht
$_SESSION['login'] = "login naam"
maar als ik dan naar een anderen pagina wil gaan, bestaat die variabele blijkbaar niet meer
kan iemand helpen ?
Kalle P
Kalle P
22 jaar geleden
 
0 +1 -0 -1
Op die volgende pagina's moet je wel controleren of die session ook nog werkelijk bestaat.
Stijn Defieuw
Stijn Defieuw
22 jaar geleden
 
0 +1 -0 -1
Ik had het even getest, ik was ingelogt alles in orde dan wou ik in me admin iets wijzigen, hij opent mijn nieuwsbericht, ik druk op "wijzig" en da gaf ie: "Foute inloggegevens" enig idee hoe dit komt?
- SanThe -
- SanThe -
22 jaar geleden
 
0 +1 -0 -1
@Stijn Defieuw: Heeft dat iets met dit script te maken?
Eris -
Eris -
22 jaar geleden
 
0 +1 -0 -1
Stijn je vergeet boven elke pagina session_start();
Bart
bart
21 jaar geleden
 
0 +1 -0 -1
hoihoi ik zoek een script om voor de website voor mijn werk, hier moet een pagina komen waar schooljeugd op kan inloggen, waar enkele pagina's zijn met info voor hun... die inlog gegevens zijn voor iedereen gelijk, is deze daarvoor geschikt?

met enkele pagina's bedoel ik stuk of 5 a 6
Lissy Pixel
Lissy Pixel
21 jaar geleden
 
0 +1 -0 -1
Deze tekst staat bovenaan in de uitleg:

Het script is eigenlijk niet echt gemaakt voor meerdere pagina's omdat het updaten van de gebruikers in het array dan op al die pagina's moet gebeuren. Dan is het gebruik van een database uiteraard een stuk simpeler.
- SanThe -
- SanThe -
21 jaar geleden
 
0 +1 -0 -1
@Bart: Als je daarbij slechts één inlognaam en één password hebt die iedereen weet, dan is dat wel te doen. Maar heeft een inlog dan nog nut?
Jan Veenstra
Jan Veenstra
21 jaar geleden
 
0 +1 -0 -1
Dat gebruik ik bij dit script
Jan Veenstra
Jan Veenstra
21 jaar geleden
 
0 +1 -0 -1
lissy, je kunt dan ook gewoon de array includeden....
- SanThe -
- SanThe -
21 jaar geleden
 
0 +1 -0 -1
@Johan Versteeg: Als je het array() include, let er dan wel op dat het bestandje op .php eindigt, anders is het voor iedereen te lezen.
Mvos
mvos
21 jaar geleden
 
0 +1 -0 -1
als ik de tekens < en > gebruik geeft hij een error terwijl als ik ziezelfe tekens gebruik bij een form dan doet hij het wel gewoon, hoe kan dat?
- SanThe -
- SanThe -
21 jaar geleden
 
0 +1 -0 -1
@mvos: Omdat er verder geen check in zit op html-tags.
Natalie col
natalie col
20 jaar geleden
 
0 +1 -0 -1
Wat een ideaal scriptje, kun je zelf meteen iedereen die het nodig heeft een login met paswoord toezenden, erg leuk!
Heb wel enkel vraagjes hieromtrent:
- is het mogelijk om bij het laatste gedeelte vh script (nadat je op de welkomstpagina uitkomt bij het inloggen) je zin te laten beginnen op een volgende regel? als ik nu iets intyp in het script dan komt dit meteen achter de 'welkom + inlognaam' te staan terwijl ik het graag op de volgende alinea zou willen zien.
- Als ik bepaalde mensen de mogelijkheid wil geven om op de welkomstpagina foto's van onze reizen te downloaden, hoe kan ik dat het beste doen? vb foto1 uploaden via FTP maar hoe krijg ik automatisch de download link erop in het script? Ik werk met dreamweaver en bij design weet ik wel hoe het moet, echter niet id code zelf?
- Als laatste ;-) vraag: indien ik de layout of font wil wijzigen krijg ik volgende foutmelding 'Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at D:\sites\vhosts\natalie-col.be\httpdocs\login.php:1) in D:\sites\vhosts\natalie-col.be\httpdocs\login.php on line 9'

Kan iemand me vertellen wat ik allemaal fout doe zodat ik een beetje beter begrijp hoe dit allemaal in zijn werk gaat (ben beginnend php cursist & is niet zo evident!)
- SanThe -
- SanThe -
20 jaar geleden
 
0 +1 -0 -1
@Natalie:
1) echo '<br /><br /><br />'; // is drie regels verder
2) gewoon een uploadscript gebruiken
3) jij stuurt waarschijnlijk een header of zoiets. gewoon css gebruiken.
Natalie col
natalie col
20 jaar geleden
 
0 +1 -0 -1
@SanThe:
Bedankt voor je snelle hulp...heb css gebruikt zoals je voorstelde & idd 2 problemen zijn reeds van de baan, gelukkig!
Weet je misschien ook hoe ik een download link (automatisch zodat mensen erop klikken & download foto start meteen) in deze code kan verwerken bij dreamweaver? Bij design is dat geen probleem maar in het code gedeelte weet ik niet goed hoe ik dat moet aanpakken?

Dank je wel !!!
Dimitri
dimitri
20 jaar geleden
 
0 +1 -0 -1
Natalie:
Heb je nog hulp nodig?
Waar op je site wil je dit zetten? Zie nergens reizen terug.
Niek Kasius
Niek Kasius
20 jaar geleden
 
0 +1 -0 -1
Goed gedaan joggie eindelijk iets dat werkt.
Ik heb er alleen het volgende gewijzigt:

// Het array met de loginnamen met bijbehorende passwords
include ("config.php");
$secrets = array("$gebruiker" => "$wachtwoord");
- SanThe -
- SanThe -
20 jaar geleden
 
0 +1 -0 -1
@niek58: Maar dan wel zonder quotes neem ik aan.
$secrets = array($gebruiker => $wachtwoord);
Niek Kasius
Niek Kasius
20 jaar geleden
 
0 +1 -0 -1
quotes!!! wat zijn dat? echt ik kan zelf totaal geen php script maken alles wat er nu op mijn site staat van php heb ik ergens van de een of andere site zoals deze geplukt en aan gepast naar mijn behoefte. ik weet inmiddels dat een variabele iets is met een $ er voor en een aray iets waar je meerdere gegevens(namen) in kunt plaatsen als ik het goed begrepen heb, maar wat nou een quote is ik weet het echt niet. ik heb gewoon dat gedaan wat ik al schreef. hieronder een stukje script zodat je kunt zien wat ik heb gedaan, want voor de rest heb ik niets veranderd van de codes teminste, alleen aan de text die eventueel in beeld verschijnt als er bijvoorbeeld niet fout gaat heb ik wat aangepast kwa kleur en zo.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
// Om sessions te kunnen gebruiken
session_start();
?>

<HTML>
<HEAD>
<TITLE>Agenda</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="agenda_style.css">
</HEAD>
<body>
<center>
<font size="5" color="#A98634">Agenda</font><br>
<font color="#FFFFFF">(bewerken)</font>
<br>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
include "agenda_config.php";
echo"<center>";
$secrets = array("$gebruiker" => "$wachtwoord");

$sessionname = "Secure";
$sessiontekst = md5(date("d-m-Y"));

if($_SERVER['REQUEST_METHOD'] == "POST")
- SanThe -
- SanThe -
20 jaar geleden
 
0 +1 -0 -1
@niek58: Quotes zijn de " " die bij jouw regel om de $vars heen staan. En zoals je kunt zien in mijn vorige post gebruik je geen quotes om een $var heen. Quotes staan alleen om tekst heen.

Simpel voorbeeldje:
$var = "Losse Tekst"; // met quotes
echo $var; // zonder quotes
echo "Andere losse tekst"; // met quotes

En om het nog even wat uitgebreider te maken: Je hebt dubbele quotes en je hebt enkele quotes. Dus " " en ' '
Thom B
Thom B
20 jaar geleden
 
0 +1 -0 -1
ik had even een vraagje..

kan je ook 1 beheerder hebben met zijn eigen site?
ik heb het geprobeert maar ik kreeg het niet voor elkaar..
- SanThe -
- SanThe -
20 jaar geleden
 
0 +1 -0 -1
Degene die de file edit is de beheerder.
Thom B
Thom B
20 jaar geleden
 
0 +1 -0 -1
ik bedoel , dat als je inlogt met de naam beheerder(en bijbehorend password)
dat je dan gaat naar een pagina waar alleen de beheerder op kan.

(of kan dt niet zonder database?)
- SanThe -
- SanThe -
20 jaar geleden
 
0 +1 -0 -1
Dit script is hoofdzakelijk bedoeld voor het gebruik van losse pagina's. Als jij een pagina maakt met alleen de inloggegevens van 'beheerder', dan kan dat. Wil jij echter meerdere pagina's gaan beheren, gebruik dan een database.
Thom B
Thom B
20 jaar geleden
 
0 +1 -0 -1
oh.. oke in ieder geval toch bedankt;)
Ming
Ming
20 jaar geleden
 
0 +1 -0 -1
Is het script veilig genoeg om deze gebruiken op je site?


Grtx
- SanThe -
- SanThe -
20 jaar geleden
 
0 +1 -0 -1
Er zitten geen bijzondere veligheidsdingen in. Echt veilig wordt het als je extra dingen inbouwt betreffende het checken van de bezoeker. Maar dan heb je een database nodig voor de opslag van die gegevens.
Ming
Ming
20 jaar geleden
 
0 +1 -0 -1
Een database is er wel,
Wat zou men kunnen doen e.e.a veiliger te maken d.m.v de input te checken?
Zelf dacht ik om bv de ip te gaan checken maar er zijn vast wel meer te noemen?
Grtx,
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
- SanThe -
- SanThe -
20 jaar geleden
 
0 +1 -0 -1
Zie de andere, meer uitgebreide, loginscripts.

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. pagina-beveiligen-zonder-database

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.