Avatar billede fragze Juniormester
22. oktober 2004 - 23:12 Der er 10 kommentarer og
1 løsning

Problem med login script.

Hej exp.

Som skrevet står har jeg problemer med dette script. Problemet ligger i at når jeg har skrevet mit info ind, så hopper den bare  videre til cmd=wrong hvilket jeg ikke forstår, men her er koden dels til php og dels til mySQL delen :)



login.php
--------------------------------------------------------

<?
session_start();

include ("../../settings/connect.ini.php");
$psw = md5($pswd);
$tjek = mysql_query("SELECT * FROM brugere WHERE nick='$user' AND password='$pswd'") or die ("Kunne ikke vælge felter i database-tabellen");
    //hvis logget ind
    if(mysql_num_rows($tjek) == 1)
    {
        $tjek2 = mysql_query("SELECT * FROM brugere WHERE nick='$user' AND password='$pswd'") or die ("Kunne ikke vælge felter i database-tabellen");
        while($data = mysql_fetch_array($tjek2))
        {
            if($data[aktiveret] == "0")
            {
            header("location: ../index.php?cmd=notactivated");
            exit;   
            }
            else
            {
                    if($data[ban] == "0")
                    {

                    $_SESSION['sessionnr'] = session_id();
                    $_SESSION['inc_username'] = $data[nick];
                    $_SESSION['inc_password'] = $data[password];
                    $_SESSION['inc_level'] = $data[level];
                    $_SESSION['inc_email'] = $data[email];
                    $_SESSION['inc_id'] = $data[userid];
                    $_SESSION['inc_country'] = $data[country];
                    session_register("sessionnr");
                    session_register("inc_username");
                    session_register("inc_password");
                    session_register("inc_level");
                    session_register("inc_email");
                    session_register("inc_id");
                    session_register("inc_country");
                    $lastlogin = date("Y-m-d H:i:s", time());
                                   
                    mysql_query("Update brugere set lastlogin = '$lastlogin' where nick='$user'");
                    mysql_query("Update brugere set online = '1' WHERE userid=$_SESSION[inc_id]") or die(mysql_error());
               
                   
                   
                   
                    header("location: ../../index.php");
                    exit;
                    }
                    else
                    {
                    header("location: ../../index.php?cmd=banned");
            exit;   
                    }
            }
        }
    }
    //hvis ikke logget ind
    else
    {
    header("location: ../../index.php?cmd=wrong");
    exit;
    }


?>

--------------------------------------------------------



loginform.php
--------------------------------------------------------

<?
if ($_SESSION['inc_id'] == "") {
?>
<form action="modules/login/login.php" method="post">
<TABLE cellSpacing=2 cellPadding=2 align=center border=0 class="Normal">
<TBODY>
    <TR>
        <TD>Username</TD>
        <TD><input type="text" name="user" size="9"></TD>
    </TR>
    <TR>
        <TD>Password</TD>
        <TD><input type="password" name="psw" size="9"></TD>
    </TR>
    <TR>
        <TD align=right><input type="submit" name="Submit" value="Login"></TD>
    </TR>
</TBODY>
</TABLE>
</form>
<?
    }
        else
    {
?>
<table class="Normal">
    <tr>
        <td>Welcome <a href="index.php?cmd=useredit&id=<? echo $_SESSION['inc_id']; ?>"><? echo $_SESSION['inc_username']; ?></a></td><br>                               
    </tr>
    <tr><br>
        <td>
        <? if ($_SESSION['inc_level'] == "newbie") { echo "You have no rights"; } ?>
        <? if ($_SESSION['inc_level'] == "overadmin") { echo "
        <a href=index.php?cmd=news-edit>: news</a><br>
        <a href=index.php?cmd=member-edit>: team</a><br>
        <a href=index.php?cmd=match-edit>: wars</a><br>
        <a href=index.php?site=admin>: events</a><br>
        <a href=index.php?site=admin>: partners</a><br>                   
        "; } ?>
        </td>
    </tr>
    <tr valign='top'>
        <td><div align="left"><a href='modules/login/logout.php'>logout</a></div></td>
    </tr>
</table>
<?
}
?>

--------------------------------------------------------




SQL DELEN
--------------------------------------------------------

CREATE TABLE `brugere` (
  `userid` int(11) NOT NULL auto_increment,
  `nick` varchar(255) NOT NULL default '',
  `password` varchar(255) NOT NULL default '',
  `aktiveret` int(1) NOT NULL default '0',
  `ban` int(1) NOT NULL default '0',
  `level` varchar(255) NOT NULL default '',
  `lastlogin` varchar(255) NOT NULL default '',
  `position` varchar(30) NOT NULL default '',
  `status` varchar(30) NOT NULL default '',
  `name` varchar(50) NOT NULL default '',
  `location` varchar(30) NOT NULL default '',
  `email` varchar(255) NOT NULL default '',
  `cpu` varchar(30) NOT NULL default '',
  `memory` varchar(30) NOT NULL default '',
  `gfx` varchar(30) NOT NULL default '',
  `mouse` varchar(30) NOT NULL default '',
  `pad` varchar(30) NOT NULL default '',
  `connection` varchar(30) NOT NULL default '',
  `os` varchar(255) NOT NULL default '',
  `cfg` varchar(30) NOT NULL default '',
  `quote` varchar(255) NOT NULL default '',
  `headset` varchar(255) NOT NULL default '',
  `monitor` text NOT NULL,
  `adddate` timestamp(14) NOT NULL,
  `country` varchar(255) NOT NULL default '',
  `online` varchar(255) NOT NULL default '',
  `fos_dag` varchar(255) NOT NULL default '01',
  `fos_maaned` varchar(255) NOT NULL default '01',
  `fos_aar` varchar(255) NOT NULL default '01',
  `time` timestamp(14) NOT NULL,
  PRIMARY KEY  (`userid`)
) TYPE=MyISAM AUTO_INCREMENT=110 ;
Avatar billede erikjacobsen Ekspert
22. oktober 2004 - 23:25 #1
Måske
$psw = md5($_POST['pswd']);
Avatar billede sukos Juniormester
22. oktober 2004 - 23:43 #2
Drop alle dine:
                    session_register("sessionnr");
                    session_register("inc_username");
                    session_register("inc_password");
                    session_register("inc_level");
                    session_register("inc_email");
                    session_register("inc_id");
                    session_register("inc_country");

Brug KUN
$_SESSION["noget"] = "etellerandet";

Den her:
$tjek = mysql_query("SELECT * FROM brugere WHERE nick='$user' AND password='$pswd'") or die ("Kunne ikke vælge felter i database-tabellen");

der vælger du alt for bruger $user med pass $pswd

Men det gør fu jo også her?
$tjek2 = mysql_query("SELECT * FROM brugere WHERE nick='$user' AND password='$pswd'") or die ("Kunne ikke vælge felter i database-tabellen");

I stedet for at lave en while, så nøjes med
    if(mysql_num_rows($tjek) == 1)
    {
    $data = mysql_fetch_array($tjek);

...................
Avatar billede sukos Juniormester
22. oktober 2004 - 23:44 #3
Og gør gerne som erik foreslår, (gør det til en vane!)
altså ikke bare tjekke på $user og $paswd men bruge $_POST["user"] $_POST["paswd"]
Avatar billede Slettet bruger
23. oktober 2004 - 00:40 #4
Du har lige lagt md5-udgaven af kodeordet i $psw (som ikke bruges overhovedet), og i dine queries bruger du $pswd

Derudover bør du også hente $user ud af $_POST på denne måde:

$user=isset($_POST['user'])?$_POST['user']:'';
$user=get_magic_quotes_gpc()?$user:addslashes($user);
Avatar billede fragze Juniormester
23. oktober 2004 - 10:34 #5
Nu er det lige testet af på en anden server, nogen der har NOGEN som helst forklaring på hvorfor det virker der :)
Avatar billede Slettet bruger
23. oktober 2004 - 10:42 #6
Måske fordi den anden server ikke har register_globals slået fra, som enhver, der har forstand på sikkerhed vil anbefale.

Din har den slået fra, så du skal bruge $_POST til at fange data fra formularer.
Avatar billede fragze Juniormester
23. oktober 2004 - 10:52 #7
Hello guys.

Jeg har netop lige reinstalleret php med verison 4.3.6 i stedet for 4.3.9- Dette udrettede min fejl. Men jeg har lært at udlæse data med $_POST nu :-) Jeg ved ikke rigtig hvordan vi skal gøre med points ?
Avatar billede Slettet bruger
23. oktober 2004 - 11:03 #8
Fortsætter du med at bruge dit eksisterende script?
Avatar billede fragze Juniormester
23. oktober 2004 - 11:21 #9
ja!
Avatar billede Slettet bruger
23. oktober 2004 - 11:24 #10
Så behold dine point selv.
Avatar billede fragze Juniormester
23. oktober 2004 - 11:49 #11
Oki :)
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