php login voor website

Status
Niet open voor verdere reacties.

overmacht

Gebruiker
Lid geworden
4 aug 2002
Berichten
143
ik begrijp niet precies hoe zoiets werkt.
dit heb ik nu werkend:
je wilt een aantal pagina's afschermen voor de rest van het internet. een login dus: bv lindex.html: user en pass worden gevraagd. deze worden dan weer verstuurd naar login.php deze pakt de ingevoerde waarden, maakt connectie met de (mysql) database en controleert de gegevens. en stuurt je naar de afgeschermde pagina. leuk allemaal, maar als ik de naam van de afgeschermde pagina in mijn browser typ wordt hij gewoon geopend (duh)... hoe scherm ik die pagina's nou af..?
 
PHP:
<?

if(IsSet($_POST['login'])) // Als het formulier verstuurd is
{
mysql_connect('localhost', 'username', 'password'); // Veranderen!
mysql_select_db('database'); // Veranderen!
$query = mysql_query("SELECT * FROM tabel WHERE veld1='{$_POST['login']}' AND veld2='{$_POST['pass']}'"); // De mysql query
$check = mysql_num_rows($query); // Tellen hoeveel rijen er geselecteerd zijn
	if($check == "1") // Als er zeker 1 rij geselecteerd is
	{
	setcookie('login', 'yes', time()*86400*7); // Als je de beveiligde pagina afschermd met cookies... Deze staat op 7 dagen
	// Hieronder wordt je naar de afgeschermde pagina gestuurd
	?>
	<script>location.href='afgeschermdepagina.php'</script>
	<? 
	}
	else // Geen rijen geselecteerd
		print("Verkeerde inloggegevens"); // Foutmelding weergeven
}
else // Als het formulier niet verstuurd is
{
?>
<form action="pagina.php" method="post">
Login: <input type="text" name="login"><br>
Pass: <input type="password" name="pass"><br>
<input type="submit" value="Login!">
</form>
<?
}
?>
 
fijn: het werkt: ik begrijp dat je een sessie van 7 dagen toestaat aan een geslaagde login...

Wat ik nog steeds niet begrijp: bij mij verwijst de "afgeschermde pagina" naar een html file in dezelfde map. die kan je toch gewoon via zijn naam accessen in de adresbar?

kan je niet gewoon via een password de map met je beveiligde content accessen? (oid)
 
Als ik het goed begrijp klopt het php scriptje ook niet helemaal zoals cris heeft neergezet....je hebt nu maar 1 beveligde pagina, wil je er een stuk of 5 beveiligt hebben moet je naar mijn weten ook met sessie's gaan werken.

Hoe het precies werkt weet ik niet om een helemap tebeveiligen....bij veel hosting bedrijfen kun je dit ook instellen in je control panel, je kunt dan een helemap beveiligen met een wachtwoord. Alle pagina;s binnen die map zijn dan beveiligt. Maar goed dat is bij de meeste hosting bedrijfen zo...en ik heb dus ook geen idee of je dit ook met een php script of iets dergelijks kunt maken.

greetz Jeroen
 
Je kunt van die HTML-bestanden ook php bestanden maken en dan checken of dat cookie op de computer staat...

PHP:
<?
if(IsSet($_COOKIE['login']))
{
?>
Hier de HTML
<?
}
else
print("Je hebt geen bevoegdheden deze pagina te bezoeken");
?>
 
natuurlijk! logisch... het enige probleem nu: als ik het goed begrijp wordt een sessie nu pas na 7 dagen afgesloten. het lijkt me dan handig om een logout button erbij te zetten en een coderegel dat als je een venster sluit, je ook werkelijk de sessie afsluit kan dat?

en weet iemand waar ik kan zien welke cookies er op mijn pc staan? ---> laat maar: netscape heeft een eigen cookie manager...
 
Laatst bewerkt:
PHP:
<?
if(IsSet($_GET['logout']))
{
setcookie('login', 'yes', time()-10);
?>
<script>location.href='pagina_na_uitloggen.php'</script>
<?
}

if(IsSet($_COOKIE['login']))
{
?>
Hier de HTML met de loguitlink:

pagina.php?logout=1
<?
}
else
print("Je hebt geen bevoegdheden deze pagina te bezoeken");
?>
 
Dat if...else geval hoeft niet... 1 if is al genoeg en als die waar is wordt ie uitgevoerd, anders niet. Dan moet je gewoon het die of exit commando geven om het script te stoppen om ervoor te zorgen dat er niets meer uitgevoerd wordt.
 
hmm

ik begrijp die laatste code niet helemaal, kan daar iets meer uitleg bij? is die link tevens je logout button?

"pagina.php?logout=1"

begrijp ik ook niet..
 
PHP:
<?
if(IsSet($_GET['logout'])) // Als er wordt uitgelogd, dan...
{
setcookie('login', 'yes', time()-10); 

/* De cookie die geplaatst is bij het inloggen wordt overschreven.
En de tijd dat de cookie bestaat is negatief, dus wordt hij verwijderd...
Kortom: de cookie wordt verwijderd van de computer, zodat de 'member' uitgelogd wordt.

Hieronder geef je de pagina in die na het uitloggen getoond moet worden...
Ik heb de pagina even simpel pagina_na_uitloggen.php genoemd, die moet je veranderen
*/

?>
<script>location.href='pagina_na_uitloggen.php'</script>
<?
}

if(IsSet($_COOKIE['login'])) // Als de cookie bestaat, dan....
{
?>
Hier de HTML met de loguitlink. pagina.php moet je veranderen in de naam van de pagina waar deze code in staat. 
Door de ?logout=1 wordt bovenstaande PHP-code 'geactiveerd' en wordt je uitgelogd.

pagina.php?logout=1
<?
}
else // Als de cookie niet bestaat wordt er een foutmelding weergegeven
print("Je hebt geen bevoegdheden deze pagina te bezoeken");
?>
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan