Geschreven door: Peter Prijs
Geschreven op: 25.03.2006 20:42
Beschrijving:
login systeem gemaakt door een newbie
Mijn verhaal
Ik heb dit login systeem gemaakt en wil graag jullie mening over het geheel.
Ben een complete Newbie met php en Mysql maar ben nu 2 weken aan het lezen geweest en 2 dagen aan het tikken geweest.
Nu wil ik graag weten of dit een veilige manier is om een login te maken.
P.s. Ik hoop ook dat dit het juiste plekje hiervoor is.
Tabel in je database maken.
Een sql dump van de tabel geeft het volgende:
-- Tabel structuur voor tabel `gebruikers`
--
CREATE TABLE `gebruikers` (
`UserId` int(11) NOT NULL auto_increment,
`NicknameGebruiker` varchar(15) NOT NULL,
`WachtwoordGebruiker` varchar(500) NOT NULL,
`NaamGebruiker` varchar(40) NOT NULL,
`AdresGebruiker` varchar(40) NOT NULL,
`PostcodeGebruiker` varchar(7) NOT NULL,
`PlaatsGebruiker` varchar(30) NOT NULL,
`TelefoonnummerGebruiker` varchar(11) NOT NULL,
`FaxnummerGebruiker` varchar(11) NOT NULL,
`EmailAdresGebruiker` varchar(30) NOT NULL,
PRIMARY KEY (`UserId`),
UNIQUE KEY `NaamGebruiker` (`NaamGebruiker`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
een betandeje voor de verbinding maken
data.inc
<?php
$server = "";
$gebruiker= "";
$wachtwoord= "";
$db = "";
?>
Vul op de lege plekken je gegevens in.
de login pagina
login.php
<?php
session_start();//een sessie starten
include('data.inc');// de gegevens laden voor mysql aanlog
if(isset($_SESSION['pass'])){// controle of er al ingelogd is d.m.v. controle of sessie al een password toegeken heeft gekregen.
Print"U bent al in gelogd.";
}else{
if(isset($_POST['submit'])){
print"u bent ingelogd!";
}else{require('loginform.html');// login weergeven als je nog geen sesie heby met een password variabele
}
}
if(isset($_POST['submit'])){// kijken of loginform.html al gesubmit is
if((!empty($_POST['gebruikersnaam']))&&(!empty($_POST['wachtwoord']))){// controleren of 1 van de 2 velden niet leeg is
if ($dbc=@mysql_connect($server,$gebruiker,$wachtwoord)){// proberen verbinding te maken
if (!@mysql_select_db($db)){//Voor als er geen verbinding met de tabel in dedatabase gemaakt kan worden
die('
Kan de database niet selecteren.
Probeer het nogmaals of neem contact op met de systeem beheerder
Druk op de --> Vorige <-- toets om het opnieuw te proberen.
');
}
}else{//Voor als er geen verbinding met de database gemaakt kan worden
die('
Er kan geen verbinding gemaakt worden met de database
');
}
//De opgehaalde gegevens aan een variabele toewijzen.
$gebruiker=$_POST['gebruikersnaam'];
$qryOphalenInlogGegevens= "SELECT * FROM gebruikers WHERE NicknameGebruiker =('$gebruiker')";
//De opgehaalde gegevens aan een variabele toewijzen.
If ($r=mysql_query($qryOphalenInlogGegevens)){
// De opgehaalde waarde weergeven
while($rlogin = mysql_fetch_array($r)){
if($rlogin['WachtwoordGebruiker']===md5($_POST['wachtwoord'])){
// De waarde meegeven aan de sesie zodat de gegevens indien nodig gebruikt kunnen worden
$_SESSION['username']=$gebruiker;
$_SESSION['pass']=$rlogin['WachtwoordGebruiker'];
$_SESSION['naam']=$rlogin['NaamGebruiker'];
$_SESSION['adres']=$rlogin['AdresGebruiker'];
$_SESSION['postcode']=$rlogin['PostcodeGebruiker'];
$_SESSION['plaats']=$rlogin['PlaatsGebruiker'];
$_SESSION['telefoon']=$rlogin['TelefoonnummerGebruiker'];
$_SESSION['faxnummer']=$rlogin['FaxnummerGebruiker'];
$_SESSION['emailadres']=$rlogin['EmailAdresGebruiker'];
mysql_close();
print"$PHP_SELF";
}else{
mysql_close();
echo"
foutief wachtwoord
";
}
}
}
}else{//De tekst voor als een gebruikersnaam of wachtwoord of beide vergeten worden.
echo"
Vul een gebruikersnaam en een wachtwoord in anders kan u niet aangemeld worden.
";
}
}
?>
de vraag van mij ?
Is dit nu een velige methode.
En zijn er nog dingen waar ik op moet letten.
P.s. Ik weet dat er nog een logout ontbreekt maar ik wil eerst is weten hoe veilig de login is.
Met vriendelijke Groet,
Peter