Loginsystem i PHP

Tags:    php
Skrevet af Bruger #485 @ 07.11.2001
Log In I php og MySQL

Skal du til at lave et community system med login, så er denne artikel start. Her skal vi lave log in system i PHP & MySQL hvor brugere kan oprettes og log in ind.
Vi starter med siden hvor brugere kan oprette sig, siden kalder vi opret.php og her kommer formen:

<html>
<head>
<title>opret.php</title>
</head>
<body>
<br><br>
<form action="opret-ok.php" method="post">
Brugernavn: <input type="text" name="brugernavn"><br>
Password: <input type="password" name="password"><br>
<input type="submit" name="opret" value="Opret">
</form> 

</body>
</html>


Sådan, det var jo nemt. Nu skal vi til at kikke på MySQL. I MySQL skal vi lave queryen som checker om brugernavnet findes, hvis ikke så tilføjer den oplysninger i MySQL databasen. Den side kalder vi opret-ok.php.
<?
mysql_connect("server", "brugernavn", "password"); mysql_select_db("databasenavn");
$result = mysql_query("select brugernavn from users where brugernavn = '$brugernavn'")
 or die (mysql_error());
$number = mysql_num_rows($result);
if ($number > 0) {
?>
<html>
<head>
<title>opret-ok.php</title>
</head>
<body>
<br>
Velkommen du er logget ind!!
<br>
</body>
</html>
<br>
<?
print "Desværre brugernavnet er optaget";
} elseif ($brugernavn && $password) {
mysql_query("insert into users (brugernavn, password) values ('$brugernavn', '$password')")
 or die(mysql_error());
} else {
print "Du skal udfylde alle felterne!!";
}
?>  
Hvis du syntes at det går alt for hurtigt så tag en lille 5min pause. :) Ja det var så den del hvor brugere kan oprette sig. Nu skal vi kigge på log in siden. Altså der hvor bruger skal logge in fra. Filen kalder vi login.php

<html>
<head>
<title>Login.php</title>
</head>
<body>
<br>
<br>
<br>
<form action="login_ok.php" method="post">
Brugernavn: <input type="text" name="brugernavn"><br>
Password: <input type="password" name="password"><br>
<input type="checkbox" name="autologin" value="ja"><br>
<input type="submit" name="login" value="Login">
<br>
</form> 
<br>
<br>
</body>
</html> 
Så nu er vi næsten færdige. Vi mangler li den side med MySQL queryen som checker om brugernavnet og passwordet er rigtige. Den siden kalder vi login-ok.php

<?
mysql_connect("server", "brugernavn", "password"); mysql_select_db("databasenavn");
$result = mysql_query("select password from users where brugernavn = '$brugernavn'")
 or die (mysql_error());
$row = mysql_fetch_array($result);
if($row[password] == $HTTP_POST_VARS[password]){
echo 'korrekt password';
?>
<html>
<head>
<title>Login-ok.php</title>
</head>
<body>

<font color="#FFFFFF">velkommen ind!!!</font>




</body>
</html>
<?
}
else{
echo 'forkert password';
exit
?>
<?
}

?> 
Så nu er log in systemet færdig, men inden du kan bruge systemet skal du oprette tabellen i MySQL. MySQL tabellen skal se sådan ud. Gem tabellen i .txt fil. Kald den tabel.txt.

CREATE TABLE users (
 id int(10) unsigned DEFAULT '0' NOT NULL auto_increment,
 brugernavn varchar(16),
 password varchar(16),
 PRIMARY KEY (id)
 )



Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.

Del også gerne artiklen med dine Facebook venner:  

Kommentarer (12)

User
Bruger #2575 @ 05.04.03 01:24
Rigtig god artikel der! Men lige en rettelse til din login-ok.php:
exit;

Skulle jeg da mene det hedder :o)
Men ellers ros herfra.


User
Bruger #2575 @ 05.04.03 06:28
Har lige kigget nærmere på den. Og man kan jo enlig bare skrive login-ok.php i browseren, så får man ikke forkert pass/user.
Vupti, nemt sluppet ind ;o)
User
Bruger #4043 @ 23.06.03 13:36
ja men man kunne jo også bare kryptere adressen.....
Vupti... der røj den ide....
User
Bruger #4003 @ 11.11.03 11:54
Tja, det er jo nok lidt en kæphest for mig, men den totale mangel af kryptering af password kan jeg bestemt ikke lide.

Scriptet skitserer et spinkelt skelet, men jeg mener der mangler meget sikkerhed bygget uden på, før det er anvendeligt til "rigtig" brug...jeg ville i hvert fald ikke bryde mig om, at have "personlige" brugeroplysninger i et brugersystem baseret på ovenstående...
User
Bruger #5067 @ 03.02.04 14:58
tjek hellere http://80.63.226.203/forum/ under php... Den krypterer koden, og ved login, tjekker den om den kode man skriver under login, stemmer overens med den kode der er i databasen for brugernavnet, i det mindste...

(Der er ikke 100% oppetid på serveren lige nu, så den kan godt være offline)
User
Bruger #5311 @ 21.02.04 15:39
Der hvor man kan oprette brugere kontaker den mysql.. det syntes jeg du skulle forklare meget mere om da det er noget af det sværeste af finde ud af hvad det går ud på når man er ny men ellers er det jo en rigtig nice atikkel... men giver den kun 3 da jeg syntes at det med my sql mangler...
User
Bruger #6927 @ 14.12.04 23:55
har stadig problemer med at lave login nogle der kan hjælpe så gider i lige kontakte mig over msn: rboege@hotmail.com jeg skal også have lavet et tilmedlingssystem..

Hilsen Rune Bøge
User
Bruger #6686 @ 15.05.05 00:30
unsigned DEFAULT '0'

Hvad skal det til for ? :)
User
Bruger #6686 @ 15.05.05 12:07
Synes det er lidt dumt. Du forklarer storset ingenting. Vi lærer jo ikke noget ved bare at se en kode? Men.. Artiklen er jo fin' og et loginsystem er en mangel. Nice nok.
User
Bruger #8336 @ 22.10.05 10:16
artikel er lidt for gamle
User
Bruger #14855 @ 24.06.09 12:44
1: Der er ikke sessions, så den vil ikke rigtig virke til at arbejde vidre med.
2: Du kunne også bare lave et login.php istedet for login.html også.
User
Bruger #4487 @ 08.04.12 14:28
artikel... der er da ingen forklaring... smid dog hellere en zip fil med kodefilerne, det vil være det samme
Du skal være logget ind for at skrive en kommentar.
t