Avatar billede lirekassemanden Nybegynder
23. november 2003 - 22:32 Der er 7 kommentarer og
2 løsninger

Login m. brugerid og passwd liggende i tabel

Jeg er ved at lave et lille login. Jeg har brugerid og password liggende i en tabel. Jeg henter så ud fra tabellen hvor brugerid er lig det brugerid brugeren har indtastet. Det virker også fint nok - og jeg kan få en fejl meddelelse frem til brugeren hvis passwordet er forkert.. men hvordan får jeg en fejl meddelse frem hvis brugerid ikke findes i min tabel??

Min kode ser sådan ud:
<?
Include("db.inc");

if ($logon)
{
        $result = mysql_query("SELECT password FROM login WHERE userid = '$bruger'");
        while($data = mysql_fetch_row($result))
        {
                if ($data[0] == null)
                {
                        Echo "Bruger id eksistere ikke. Prøv igen.";
                }
                elseif ($data[0] == $kode)
                {
                        Echo "Du er nu logget ind.. du er god";
                }
                else
                {
                        Echo "Din adgangskode var forkert. Prøv igen.";
                }
        }
}
?>

<form action=index.php method=post>
ID: <input type=text name=bruger><br>
Password: <input type=text name=kode><br>
<input type=submit value=Login name=logon>
</form>
Avatar billede ztyxx Nybegynder
23. november 2003 - 22:39 #1
<?
Include("db.inc");

if ($logon)
{
        $result = mysql_query("SELECT password FROM login WHERE userid = '$bruger'");
        while($data = mysql_fetch_row($result))
        {
                $tjek = mysql_num_rows($data["0"]);
                if ($tjek < 1)
                {
                        Echo "Bruger id eksistere ikke. Prøv igen.";
                }
                elseif ($data[0] == $kode)
                {
                        Echo "Du er nu logget ind.. du er god";
                }
                else
                {
                        Echo "Din adgangskode var forkert. Prøv igen.";
                }
        }
}
?>

<form action=index.php method=post>
ID: <input type=text name=bruger><br>
Password: <input type=text name=kode><br>
<input type=submit value=Login name=logon>
</form>
Avatar billede lirekassemanden Nybegynder
23. november 2003 - 22:45 #2
Det virker desværre ikke.
Heller ikke selvom jeg erstatter $data["0"] med $result
Avatar billede ztyxx Nybegynder
23. november 2003 - 22:50 #3
tror at du skal skrive det helt om, denne brugte jeg selv engang:

<?php
session_start();
mysql_connect("localhost", "bruger", "password") or die (mysql_error());
mysql_select_db("mysql") or die (mysql_error());
$my_user = mysql_query("select nick from my_users where nick = '$_POST[nick]' and pass = '$_POST[pass]'") or die (mysql_error());
$check = mysql_num_rows($my_user);
    if ($check==1) {
    session_register(nick);
    header("Location: nyside.php");
    } else {
        echo "forkert password og brugernavn";
    }
       
   
   

?>
<html>
<head>
<title>loginform</title>
</head>
<body>
    <form method=post action="<? echo $_SERVER['PHP_SELF']; ?>">
    Nick: <input type="text" name="nick"><br>
    Pass: <input type="password" name="pass"><br>
    <input type="submit" name="s1" value="Login">
    </form>   
</body>
</html>

<?

mysql_close();
?>

den registrerer en session, som du kan tjekke er sat på de sider der ikke skal kunne ses uden login
Avatar billede lirekassemanden Nybegynder
23. november 2003 - 22:56 #4
det kan nu også laves på en anden måde.. du fik mig lidt ind på sporet..

if ($logon)
{
        $result = mysql_query("SELECT password FROM login WHERE userid = '$bruger'");
        $tjek = mysql_numrows($result);
        if ($tjek < 1)
        {
                Echo "Bruger id eksistere ikke. Prøv igen.";
        }
        while($data = mysql_fetch_row($result))
        {
                if ($data[0] == $kode)
                {
                        Echo "Du er nu logget ind.. du er god";
                }
                else
                {
                        Echo "Din adgangskode var forkert. Prøv igen.";
                }
        }
}
?>

<form action=index.php method=post>
ID: <input type=text name=bruger><br>
Password: <input type=text name=kode><br>
<input type=submit value=Login name=logon>
</form>

Det der var problemet med det første du skrev var at den aldrig kom ind i while-løkken - efter som while-løkken kun begyndte hvis der var data.

så det kan altså også løses simplere
Avatar billede lirekassemanden Nybegynder
23. november 2003 - 22:57 #5
smid lige et svar
Avatar billede ztyxx Nybegynder
23. november 2003 - 22:58 #6
okay, et svar her :-)
Avatar billede lirekassemanden Nybegynder
23. november 2003 - 23:00 #7
giver dig kun 40 points. Håber det er ok - men fandt jo trods alt selv ud af det, med lidt hjælp fra dig - men dermed ikke sagt at det du postede til sidst ikke virkede.. takker
Avatar billede lirekassemanden Nybegynder
23. november 2003 - 23:03 #8
kunne faktisk godt tænke mig at vide mere om det med de sessions. Altså hvordan du checker om session er sat..
Avatar billede ztyxx Nybegynder
23. november 2003 - 23:09 #9
takker for point, det er fint nok med 40, hjælper ikke for det jeg kan få for det, men fordi at jeg måske kan :-)

en session kan tjekkes sådan:

<?php
session_start();
if(!$_SESSION["navn"]){
session_register(navn) = "indhold";
} else {
// det der skal gøres hvis session er sat
}
?>

se evt. mere på http://razor.dk/php.tutorials.sessions.php og http://dk.php.net/session
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