Hallo,
Ik probeer nu al enkele dagen een eenvoudig login systeem te implementeren, maar ik stuit altijd op hetzelfde probleem: mijn sessievariabelen blijken telkens niet te bestaan als ik de pagine tracht te laden vanop een andere pc in het lokaal netwerk.
Mijn script bestaat uit drie bestanden: Loginpagina.php, VerifieerLoginGegevens.php en Memberpagina.php.
Ik heb voor enkele beveiligingsmethoden een tutorial van hier gebruikt: http://www.phphulp.nl/php/tutorials/10/38/
over Sessies en veiligheid.
Als ik de code uitvoer vanop http://localhost/loginpagina.php dan werkt alles perfect.
Hoe krijg ik dit eenvoudig systeem aan de praat zodat ik het kan uitvoeren vanop http://mijnpcnaam/loginpagina.php
Als gebruikersnaam en paswoord moet je 'demo' en 'test' gebruiken. Deze variabelen vind je ook terug in de script VerifieerLoginGegevens.php
Hier volgen de scripts:
<?php
session_start();
//Loginpagina.php
?>
<html>
<head>
<title>ICT Alumni</title>
</head>
<body>
<form name=loginformulier action=VerifieerLoginGegevens.php method=post>
<table width=100%>
<tr>
<td colspan=2>
<?php
if(isset($_GET['message']))
{
if($_GET['message'] == 'Foute_login')
{
echo "Foute login! Controlleer uw logingegevens en probeer opnieuw<br>";
}
else
{
echo "Er is een fout opgetreden! Controlleer uw logingegevens en probeer opnieuw<br>";
}
}
else
{
echo "U dient eerst in te loggen<br>";
}
?>
</td>
</tr>
<tr>
<td>
Login
</td>
<td>
<input type=text name=loginnaam>
</td>
</tr>
<tr>
<td>
Paswoord
</td>
<td>
<input type=password name=loginpaswoord>
</td>
</tr>
<tr>
<td></td>
<td>
<input type=submit value=Inloggen>
</td>
</tr>
</table>
</form>
</body>
</html>
-------------------------------------
<?php
//VerifieerLoginGegevens.php
session_start();
if(!isset($_POST['loginnaam']) || !isset($_POST['loginpaswoord']))
{
session_destroy();
die("loginnaam of loginpaswoord zijn niet gepost");
}
else
{
if($_POST['loginnaam'] == 'demo' && $_POST['loginpaswoord'] == 'test')
{
$_SESSION['loginnaam'] = $_POST['loginnaam'];
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
$sessdata_str = serialize($_SESSION);
$md5hash = md5($sessdata_str);
$_SESSION['hash'] = $md5hash;
header("Location: Memberpagina.php");
}
else
{
header("Location: Loginpagina.php?message=Foute_login");
}
}
?>
-------------------------------------------
<?php
//Memberpagina.php
session_start();
if(!isset($_SESSION['loginnaam']))
{
die("Loginnaam bestaat niet in de sessie");
}
else
{
if(!isset($_SESSION['ip']))
{
die("ip bestaat niet in de sessie");
}
else
{
if($_SESSION['ip'] == $_SERVER['REMOTE_ADDR'])
{
echo ("Het ip-adres (" .$_SESSION['ip'].") klopt en loginnaam (".$_SESSION['loginnaam'].") is ingevuld!");
//verdere controle op de hash
if(!isset($_SESSION['hash']))
{
die("hash bestaat niet in de sessie");
}
else
{
$sessdata = $_SESSION;
unset($sessdata['hash']);
$sessdata_str = serialize($sessdata);
$md5hash = md5($sessdata_str);
if($_SESSION['hash'] == $md5hash)
{
echo ("hash (".$_SESSION['hash'].") is ok");
}
else
{
echo ("Er is een fout opgetreden: hash (".$_SESSION['hash'].")");
}
}
}
else
{
echo ("Er is een fout opgetreden: ip-adres (".$_SESSION['ip'].") en loginnaam (".$_SESSION['loginnaam'].")");
}
}
}
?>
Iedereen bedankt die de moeite neemt om mij te helpen.
mvg,
Ward
770 views