Avatar billede raffer Nybegynder
14. maj 2007 - 14:33 Der er 23 kommentarer og
2 løsninger

Login system

Hej

Jeg vil gerne have hjælp til sådan noget med PHP. Så jeg vil gerne have at hvis der er nogle der gider, hjælpe mig med at lave mit eget login system med en profil og med et besked system så man kan skrive med andre. Jeg håber ikke det bliver for svært, for mig og den der hjælper tak.
Avatar billede jakobdo Ekspert
14. maj 2007 - 16:07 #1
Har du kigget under artikler?
Avatar billede dkfire Nybegynder
14. maj 2007 - 16:08 #2
Hvor meget php kan du ?
Avatar billede nyhuus Nybegynder
14. maj 2007 - 18:57 #3
http://www.eksperten.dk/artikler/669

http://www.udvikleren.dk/PHP/Article.aspx/59/

http://www.udvikleren.dk/PHP/Article.aspx/80/

http://www.udvikleren.dk/PHP/Article.aspx/103/

Her har du en række forskellige artikteler. læs dem og du vil helt sikkert lære noget og derefter kan du 100% sikkert lave dit egent login system.
Avatar billede raffer Nybegynder
15. maj 2007 - 07:33 #4
Jeg kan rigtig lidt. Jeg er rigtig glad for de links du har sendt mig, men kan du ikke lige fortælle mig, hvilket af dem der er bedst, fordi jeg har lidt forstand på PHP, så jeg kan bruge mest tid på den artikel som er bedst.
Avatar billede jakobdo Ekspert
15. maj 2007 - 08:00 #5
Den artikel du finder her på eksperten.dk - http://www.eksperten.dk/artikler/669
er bestemt ikke tosset.
Den lære dig at kode login op mod en mysql-database, samt gemme data i sessions.
Så er du nået langt, når du har kodet et sådan system og ikke mindst forstår koden.

Når du når til en funktion, så bør du undersøge hvad den funktion gør, og det kan du gøre på php.net
Det er eneste måde du lærer php på.
Avatar billede nyhuus Nybegynder
15. maj 2007 - 10:59 #6
Jeg vil give jacobdo ret :) det er en god artiktel.

Jeg vil også forslå dig at kigge her http://www.phpartikler.dk/index.php hvis du er meget ny til php, der er masse gode af artiktler der kan hjælpe dig med at forstå en masse i php.
Avatar billede raffer Nybegynder
15. maj 2007 - 16:23 #7
Jeg synes også at den første er den bedste, men under kommentar er der nogle der skriver at den er forkert, er det rigtig at det er forkert? .Okay tak tjekker det lige
Avatar billede jakobdo Ekspert
15. maj 2007 - 16:42 #8
Alt kan for det meste laves anderledes og smartere.
Og ja, nogle ting i den artikel kunne være lavet anderledes.
Men prøv nu bare, du skal jo starte et sted.
Avatar billede raffer Nybegynder
15. maj 2007 - 19:53 #9
Ok tak
Avatar billede jakobdo Ekspert
15. maj 2007 - 20:48 #10
Og uden at være fræk over for dig, men du kan jo også blive ved med at spørge, og så lære du jo aldrig sproget.
Du skal bare kaste dig ud i det, det er eneste måde at lære det på!
Avatar billede raffer Nybegynder
17. maj 2007 - 19:19 #11
Jeg prøver hele tiden, men kan ikke få det til at virke. Det med databasen er det jeg har mest brug for hjælp til.
Avatar billede jakobdo Ekspert
17. maj 2007 - 19:47 #12
Hvor langt er du nået?
Kan du vise din kode? (husk evt. at fjern brugernavn og kodeord til mysql)
Avatar billede raffer Nybegynder
18. maj 2007 - 09:08 #13
Her er til login formularen:<html>
<head>
<title>Min loginformular</title>
</head>
<body>
<form name="min form" id="min form" method="post" action="check.php">
Brugernavn: <input type="text" name="brugernavn"><br>
Kodeord: <input type="password" name="kodeord">
<input type="submit" name="login" value="Login">
</form>
</body>
</html>

check.php<html>
<body>
<?php
//Vi starter med at defindere variabler, så det bliver nemmere at tilkomme dem senere.
$brugernavn = $_POST['brugernavn'];
$kodeord = $_POST['kodeord'];

//Tjekker om både brugernavn og kodeord er indtastet.
if(empty($brugernavn) || empty($kodeord))
{
//Sender brugeren tilbage til formular.htm ved brug af en header
header("location. formular.htm");
exit;
}
//Hvis både brugernavn og kodeord er sat går vi videre.
else
{
//Definerer det rigtige kodeord og det rigtige brugernavn.
//Vi vil senere gå videre ind i dette,
//og se på hvordan vi kan implementere MySQL ind i vores script
$rigtigt_brugernavn = 'Jens';
$rigtig_kode = 'hallo';

//Tjekker om $brugernavn er lig med det rigtige brugernavn, og om $kodeord er lig med det rigtige kodeord
if($brugernavn == $rigtige_brugernavn && $kodeord == $rigtige_kode)
{
//Brugeren har indtastet det rigtige brugernavn og kodeord.
echo "Tillykke, du er nu logget ind.";
/*
Det er normalt her man inkluderer filer man ikke må se, hvis man ikke er logget ind.
Her er det også muligt at gemme brugerens kodeord i sessioner,
så brugeren også er logget ind når han navigerer rundt på din hjemmeside.
*/
}
else
{
//Skriver til brugeren at han har fået forkert brugernavn
echo "Det indtastede brugernavn og/eller kodeord var forkert";
echo "<br><br>";
//Laver et link som brugeren kan trykke på, for at komme tilbage til formular.htm
echo "Tryk <a href=\"formular.htm\">her</a> for at komme tilbage";
}
}

?>
<?php
$link = mysql_connect("server", "brugernavn", "kodeord");
mysql_select_db("databasenavn", $link);
?><?php
//Helt i starten starter vi sessioner, og forbinder til vores database
session_start();
$link = mysql_connect("server", "brugernavn", "kodeord");
mysql_select_db("databasenavn", $link);

//Tjekker om både brugernavn og kodeord er indtastet.
if(empty($_POST['brugernavn']) || empty($_POST['kodeord']))
{
//Sender brugeren tilbage til formular.htm ved brug af en header
header("location. formular.htm");
exit;
}
//Hvis både brugernavn og kodeord er sat, går vi videre.
else
{
/*
Her bruger vi databasen for første gang, idet vi nu tjekker om der er
en bruger der har det brugernavn, der er indtasetet i formularen.
Vi bruger or die(mysql_error()) til at få mysql til at udskrive en fejl,
hvis der er noget galt med databasekaldet.
*/
$query = mysql_query("SELECT * FROM brugere WHERE brugernavn='". $_POST['brugernavn'] ."'") or die(mysql_error());
//Tjekker om der er én rækker i databasen der har det indtasetde brugernavn
//Dette gør dog, at flere brugere ikke må have samme brugernavn!
if(mysql_num_rows($query) == '1'))
{
//Laver databasekaldet om til en liset (et array) i php.
$row = mysql_fetch_array($query);
//Tjekker om kodeordet i databasen er lig med det indtastede kodeord
if($row['kodeord'] == $_POST['kodeord'])
{
//Brugeren har indtastet rigtige oplysninger, nu skal han gemmes i sessioner
$_SESSION['brugernavn'] = $_POST['brugernavn'];
//Derudover skal han sendes til en hemlig side, hvorpå der bliver tjekket om han er logget ind
header("location: hemligside.php");
}
else
{
//Brugeren har skrevet et forkert kodeord
//Sender brugeren tilbage til formular.htm ved brug af en header
header("location. formular.htm");
exit;
}
}
//Brugernavnet fandtes ikke i databasen, derfor skal der udskrives en fejl.
else
{
//Brugeren har skrevet et forkert brugernavn
//Sender brugeren tilbage til formular.htm ved brug af en header
header("location. formular.htm");
exit;
}
}

?>
</body>
</html>

Det her kom også ind i check.php:
<?php
$link = mysql_connect("server", "brugernavn", "kodeord");
mysql_select_db("databasenavn", $link);
?>.
Ved ikke om det er en fejl eller ej, det er
koden til mysql_connect()

Her er koden til hemligside.php: <html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Hemligside</title>
</head>

<body>
<?
//Starter endnu engang sessionerne øverst på siden, samt forbinder til databasen
session_start();
$link = mysql_connect("server", "brugernavn", "kodeord");
mysql_select_db("databasenavn", $link);

//Tjekker om man er logget ind
if(!empty($_SESSION['brugernavn']))
{
//Laver en query der finder ens brugerid i databasen
$query = mysql_query("SELECT * FROM brugere WHERE brugernavn='". $_SESSION['brugernavn'] ."'") or die(mysql_error());
$row = mysql_fetch_assoc($query);
//Man er logget ind, og kan derfor se det hemlige indhold
echo "Dit brugerid er: ". $row['id'];
}
else
{
//Brugeren er ikke logget ind
echo "Du er ikke logget ind. Du skal ikke prøve at snyde på min hjemmeside!";
}

?>
</body>

</html>

Det var koden til det hele.
Avatar billede raffer Nybegynder
18. maj 2007 - 09:15 #14
Kan godt se det er uoverskueligt så laver det lige om.
formular.htm
<html>
<head>
<title>Loginformular</title>
</head>
<body>
<form name="min form" id="min form" method="post" action="check.php">
Brugernavn: <input type="text" name="brugernavn"><br>
Kodeord: <input type="password" name="kodeord">
<input type="submit" name="login" value="Login">
</form>
</body>
</html>


check.php
<html>
<body>
<?php
//Vi starter med at defindere variabler, så det bliver nemmere at tilkomme dem senere.
$brugernavn = $_POST['brugernavn'];
$kodeord = $_POST['kodeord'];

//Tjekker om både brugernavn og kodeord er indtastet.
if(empty($brugernavn) || empty($kodeord))
{
//Sender brugeren tilbage til formular.htm ved brug af en header
header("location. formular.htm");
exit;
}
//Hvis både brugernavn og kodeord er sat går vi videre.
else
{
//Definerer det rigtige kodeord og det rigtige brugernavn.
//Vi vil senere gå videre ind i dette,
//og se på hvordan vi kan implementere MySQL ind i vores script
$rigtigt_brugernavn = 'Jens';
$rigtig_kode = 'hallo';

//Tjekker om $brugernavn er lig med det rigtige brugernavn, og om $kodeord er lig med det rigtige kodeord
if($brugernavn == $rigtige_brugernavn && $kodeord == $rigtige_kode)
{
//Brugeren har indtastet det rigtige brugernavn og kodeord.
echo "Tillykke, du er nu logget ind.";
/*
Det er normalt her man inkluderer filer man ikke må se, hvis man ikke er logget ind.
Her er det også muligt at gemme brugerens kodeord i sessioner,
så brugeren også er logget ind når han navigerer rundt på din hjemmeside.
*/
}
else
{
//Skriver til brugeren at han har fået forkert brugernavn
echo "Det indtastede brugernavn og/eller kodeord var forkert";
echo "<br><br>";
//Laver et link som brugeren kan trykke på, for at komme tilbage til formular.htm
echo "Tryk <a href=\"formular.htm\">her</a> for at komme tilbage";
}
}

?>
<?php
$link = mysql_connect("server", "brugernavn", "kodeord");
mysql_select_db("databasenavn", $link);
?><?php
//Helt i starten starter vi sessioner, og forbinder til vores database
session_start();
$link = mysql_connect("server", "brugernavn", "kodeord");
mysql_select_db("databasenavn", $link);

//Tjekker om både brugernavn og kodeord er indtastet.
if(empty($_POST['brugernavn']) || empty($_POST['kodeord']))
{
//Sender brugeren tilbage til formular.htm ved brug af en header
header("location. formular.htm");
exit;
}
//Hvis både brugernavn og kodeord er sat, går vi videre.
else
{
/*
Her bruger vi databasen for første gang, idet vi nu tjekker om der er
en bruger der har det brugernavn, der er indtasetet i formularen.
Vi bruger or die(mysql_error()) til at få mysql til at udskrive en fejl,
hvis der er noget galt med databasekaldet.
*/
$query = mysql_query("SELECT * FROM brugere WHERE brugernavn='". $_POST['brugernavn'] ."'") or die(mysql_error());
//Tjekker om der er én rækker i databasen der har det indtasetde brugernavn
//Dette gør dog, at flere brugere ikke må have samme brugernavn!
if(mysql_num_rows($query) == '1'))
{
//Laver databasekaldet om til en liset (et array) i php.
$row = mysql_fetch_array($query);
//Tjekker om kodeordet i databasen er lig med det indtastede kodeord
if($row['kodeord'] == $_POST['kodeord'])
{
//Brugeren har indtastet rigtige oplysninger, nu skal han gemmes i sessioner
$_SESSION['brugernavn'] = $_POST['brugernavn'];
//Derudover skal han sendes til en hemlig side, hvorpå der bliver tjekket om han er logget ind
header("location: hemligside.php");
}
else
{
//Brugeren har skrevet et forkert kodeord
//Sender brugeren tilbage til formular.htm ved brug af en header
header("location. formular.htm");
exit;
}
}
//Brugernavnet fandtes ikke i databasen, derfor skal der udskrives en fejl.
else
{
//Brugeren har skrevet et forkert brugernavn
//Sender brugeren tilbage til formular.htm ved brug af en header
header("location. formular.htm");
exit;
}
}

?>
</body>
</html>

Har sat den her kode:<?php
$link = mysql_connect("server", "brugernavn", "kodeord");
mysql_select_db("databasenavn", $link);
?>
i check.php


Hemligside.php

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Hemligside</title>
</head>

<body>
<?
//Starter endnu engang sessionerne øverst på siden, samt forbinder til databasen
session_start();
$link = mysql_connect("server", "brugernavn", "kodeord");
mysql_select_db("databasenavn", $link);

//Tjekker om man er logget ind
if(!empty($_SESSION['brugernavn']))
{
//Laver en query der finder ens brugerid i databasen
$query = mysql_query("SELECT * FROM brugere WHERE brugernavn='". $_SESSION['brugernavn'] ."'") or die(mysql_error());
$row = mysql_fetch_assoc($query);
//Man er logget ind, og kan derfor se det hemlige indhold
echo "Dit brugerid er: ". $row['id'];
}
else
{
//Brugeren er ikke logget ind
echo "Du er ikke logget ind. Du skal ikke prøve at snyde på min hjemmeside!";
}

?>
</body>

</html>
Avatar billede jakobdo Ekspert
21. maj 2007 - 18:03 #15
Jeg tror nu nok jeg ville rette check.php til:

<?php
session_start();
$link = mysql_connect("server", "brugernavn", "kodeord");
mysql_select_db("databasenavn", $link);

if(empty($_POST['brugernavn']) || empty($_POST['kodeord']))
{
    header("location. formular.htm");
    exit;
}
else
{
    $user = mysql_real_escape_string($_POST['brugernavn']);
    $pass = mysql_real_escape_string($_POST['kodeord']);
    $query = mysql_query("SELECT * FROM brugere WHERE brugernavn='".$user."' AND kodeord = '".$pass."' LIMIT 1") or die(mysql_error());
    if(mysql_num_rows($query) == '1'))
    {
        $_SESSION['brugernavn'] = $_POST['brugernavn'];
        header("location: hemligside.php");
    }
    else
    {
        header("location. formular.htm");
        exit;
    }
}
?>
Avatar billede raffer Nybegynder
23. maj 2007 - 12:39 #16
Ok. Er der så ikke mere jeg skal rette?
Avatar billede jakobdo Ekspert
23. maj 2007 - 13:54 #17
Det kommer an på om det virker? :o)
Avatar billede raffer Nybegynder
04. juni 2007 - 07:06 #18
Så nu virker det, tak for jeres hjælp. Jakobdo, vær venlig at sende et svar, så du kan få dine point.
Avatar billede jakobdo Ekspert
04. juni 2007 - 08:20 #19
Svar!
Avatar billede jakobdo Ekspert
10. juni 2007 - 18:56 #20
takker for point.
Avatar billede habudu Nybegynder
22. november 2007 - 22:53 #21
Nice job jakobdo ... har bare et problem -.- ... hvordan opretter jeg brugere? Og hvordan logger jeg ind på en bruger? :P
Avatar billede jakobdo Ekspert
24. november 2007 - 23:33 #22
habudu? Er du raffer eller?
Avatar billede habudu Nybegynder
25. november 2007 - 11:06 #23
Nej jeg er bare mig selv :) ikke raffer ...
Avatar billede julemandenb Nybegynder
11. december 2007 - 20:09 #24
jeg har et login system her på min hjemmeside vis det er noget

http://test.mmh72.dk/password.php

når du kommer ind på siden er den øverst i venstre hjørne

held og lykke med det :d
Avatar billede ohhelpme Nybegynder
24. juli 2008 - 12:49 #25
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester