Avatar billede udvikler Nybegynder
29. oktober 2005 - 16:28 Der er 15 kommentarer og
1 løsning

Loginsystem virker ikke helt efter hensigten

Hejsa, jeg har et Administrator login som burde virke sådan her:
--------------
Hvis man ikke udfylder brugernavn feltet skal den skrive: Du mangler at skrive et brugernavn
--------------
Hvis man ikke udfylder kodeord feltet skal den skrive: Du mangler at skrive et kodeord
--------------
Hvis man skriver et forkert brugernavn og/eller kodeord skal den skrive: Forkert brugernavn og/eller kodeord
--------------
Hvis man skriver det rigtige brugernavn og kodeord skal man blive henvist til login-ok.php og den skal skrive: Du er nu logget ind
--------------
Hvis man skriver login-ok.php i adresse baren så skal den ikke skrive: du er nu logget ind, men bare sende en tilbage til login siden.
--------------

Det var det, jeg ved hvordan man laver alt for sig selv, men jeg kan ikke finde ud af at sætte det hele sammen, det kommer altid nogle fejl, har nu kæmpet med det i ca. 3 timer. Håber virkelig på hjælp! :)

Her er min nuværene kode:

LOGIN.php

<html>
<head>
<title>Login</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<br><br><br><br><br><br>
<center>
<form action="login-ok.php" method="post">
<table border="0" cellspacing="0" cellpading="0">
<tr>
<td>Brugernavn:</td>
<td><input type="text" name="brugernavn" class="input"></td>
<tr>
<tr>
<td>Kodeord:</td>
<td><input type="password" name="password" class="input"></td>
<tr>
<tr>
<td><input type="submit" name="login" value="Login" class="input"></td>
<tr>
</table>
</form>

<?
if ($_POST[login]) {

if($_POST['brugernavn'] == "") {
echo "Du mangler at skrive et brugernavn";
echo "<br>";
}
if ($_POST['kodeord'] == "") {
echo "Du mangler at skrive et kodeord";
echo "<br>";
}
}
?>
<?php
if ($_POST[login]) {

if ($_POST[brugernavn] == "Admin") {
if ($_POST[password] == "123") {
}
}else{
echo "Forkert brugernavn og/eller kodeord";
}
}
?>
</center>
</body>
</html>
_________________
login-ok.php
_________________
<html>
<head>
<title>Login</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<br><br><br><br><br><br>
<center>
<?php
if ($_POST[brugernavn] == "Admin") {
if ($_POST[password] == "123") {
echo "Du er nu logget ind";
}
}else{
echo "Forkert brugernavn og/eller kodeord";
}
?>
</center>
</body>
</html>
Avatar billede jaw Nybegynder
29. oktober 2005 - 16:37 #1
Ok

login.php:
<html>
<head>
<title>Login</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<br><br><br><br><br><br>
<center>
<form action="login-ok.php" method="post">
<table border="0" cellspacing="0" cellpading="0">
<tr>
<td>Brugernavn:</td>
<td><input type="text" name="brugernavn" class="input"></td>
<tr>
<tr>
<td>Kodeord:</td>
<td><input type="password" name="kodeord" class="input"></td>
<tr>
<tr>
<td><input type="submit" name="login" value="Login" class="input"></td>
<tr>
</table>
</form>


</center>
</body>
</html>

login-ok.php:
<html>
<head>
<title>Login</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<br><br><br><br><br><br>
<center>
<?
if (isset($_POST['login'])) {
    if(empty($_POST['brugernavn'])) {
        echo "Du mangler at skrive et brugernavn";
        echo "<br>";
    } elseif (isset($_POST['kodeord']) && empty($_POST['kodeord'])) {
        echo "Du mangler at skrive et kodeord";
        echo "<br>";
    } elseif ( (isset($_POST['brugernavn']) && $_POST['brugernavn'] == "Admin") && (isset($_POST['kodeord']) && $_POST['kodeord'] == "123") ) {
        echo "Du er logget ind";
    }else{
        echo "Forkert brugernavn og/eller kodeord";
    }
}
?>
Avatar billede jaw Nybegynder
29. oktober 2005 - 16:39 #2
En lille update til login-ok.php:

<html>
<head>
<title>Login</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<br><br><br><br><br><br>
<center>
<?
if (isset($_POST['login'])) {
    if(empty($_POST['brugernavn'])) {
        echo "Du mangler at skrive et brugernavn";
        echo "<br>";
    } elseif (isset($_POST['kodeord']) && empty($_POST['kodeord'])) {
        echo "Du mangler at skrive et kodeord";
        echo "<br>";
    } elseif ( (isset($_POST['brugernavn']) && $_POST['brugernavn'] == "Admin") && (isset($_POST['kodeord']) && $_POST['kodeord'] == "123") ) {
        echo "Du er logget ind";
    }else{
        echo "Forkert brugernavn og/eller kodeord";
    }
} else {
    echo "Du er ikke logget ind, g&aring; til login-side <a href='login.php'>her</a>";
}
?>
Avatar billede udvikler Nybegynder
29. oktober 2005 - 16:44 #3
Noget af det virker, nedenståene virker dog ikke:
-------------------------------
Hvis man kun skriver et brugernavn, så udskriver den forkert brugernavn/kode men burde skrive Du mangler er kodeord
-------------------------------
Hvis man skriver brugernavn: Admin kodeord: 123 skriver den forkert brugernavn/kode men den burde skrive du er nu logget ind
-------------------------------
Hvis man skriver Admin under brugernavn men laver kodeord stå tomt siger den brugernavn/kode forkert, men burde skrive du mangler at skrive et kodeord
Avatar billede jaw Nybegynder
29. oktober 2005 - 16:46 #4
1. Virker fint
2. Husker du at skrive admin med stort A ?
3. Er det ikke det somme som ad 1?
Avatar billede udvikler Nybegynder
29. oktober 2005 - 16:51 #5
Undskyld, det var sku mig det klodsede i det, det hele virkede faktisk perfekt! :)

Nogle gange er det helt vildt at nogle kan gøre noget på 5 min som jeg har prøvet på i 3 timer :P

Men læg du et svar og få dine velfortjente point
Avatar billede jaw Nybegynder
29. oktober 2005 - 16:52 #6
Tjoh, men det har jo ikke taget mig 5 minutter at komme til, hvor jeg kan bruge 5 minutter på det :)
Avatar billede udvikler Nybegynder
29. oktober 2005 - 16:55 #7
Kan jeg så ikke lige spørge om en ekstra lille ting ?
- kan du ikke lige klippe den del af koden sammen som tjekker på login-ok.php om man er logget ind eller bare har skrevet adressen til siden i adresse baren ?

Så kan jeg nemlig også sikre mine undersider ?
Avatar billede jaw Nybegynder
29. oktober 2005 - 16:57 #8
Det gør det hele jo sådan set. Du kan ikke bruge det her login-system, til at holde dine undersider beskyttede. Så skal du, ved korrekt login f.eks. sætte en session.

$_SESSION['logged_in'] == "ok";

Og så på de sider du vil have beskyttede:
if(isset($_SESSION['logged_in']) && $_SESSION['logged_in'] == ok) {
  echo "Du er logget ind";
} else {
  echo "Smut pommes-frites !";
}
Avatar billede udvikler Nybegynder
29. oktober 2005 - 16:58 #9
Ved godt det kan gøres med session's, men nu er det kun én side som jeg skal beskytte udover login-ok.php så derfor spørger jeg :)
Avatar billede jaw Nybegynder
29. oktober 2005 - 16:59 #10
1 side eller 100 betyder i princippet ikke så meget. Du tjekker jo på indholdet af $_POST, som kommer fra forms. De $_POST-værdier vil kun være til stede på den side de er sendt på, det vil sige, at skifter brugeren til næste beskyttede side med et link, kan du ikke længere tjekke login-data med $_POST - og så har du ikke rigtig noget at tjekke på :) !
Avatar billede udvikler Nybegynder
29. oktober 2005 - 17:03 #11
Så det vil sige at jeg bare skal indsætte linien:
$_SESSION['logged_in'] == "ok";

i login-ok.php

og indsætte

if(isset($_SESSION['logged_in']) && $_SESSION['logged_in'] == ok) {
  echo "Du er logget ind";
} else {
  echo "Du er ikke logget ind, g&aring; til login-side <a href='login.php'>her</a>";
}

i mine undersider som skal være beskyttede ?
Avatar billede jaw Nybegynder
29. oktober 2005 - 17:05 #12
Sku jeg mene, og så lige session_start() på alle siderne også.
Avatar billede udvikler Nybegynder
29. oktober 2005 - 17:09 #13
For denne fejl: Parse error: parse error, unexpected T_IF in /web/www/frac/users/adeee/billeder.php on line 4

dokument:

<?
session_start()

if(isset($_SESSION['logged_in']) && $_SESSION['logged_in'] == ok) {
  echo "

<html>
<head>
<title></title>
<style>
body {
font-family: verdana, tahoma;

font-size: 10px;

color: #555E6C;

}
</style>
</head>
<body>
Velkommen til den beskyttede underside
</body>
</html>

";
} else {
  echo "Du er ikke logget ind, g&aring; til login-side <a href='login.php'>her</a>";
}
?>
Avatar billede jaw Nybegynder
29. oktober 2005 - 17:12 #14
du mangler et ;
Avatar billede udvikler Nybegynder
29. oktober 2005 - 17:15 #15
Tusinde tak !

Vil du have flere point for det ?
Avatar billede jaw Nybegynder
29. oktober 2005 - 18:31 #16
Nej da, det helt okey, men ellers tak - og selv tak :D
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