Avatar billede flim Nybegynder
13. november 2003 - 17:31 Der er 7 kommentarer og
1 løsning

Login-funktion fejler - men hvor?

Goddag i stuen :)

Jeg har en login funktion som ikke helt virker.

Jeg har oprettet nogle brugere i min database,  og nu skal de så logge ind. Probelemet er bare at den kun checker på første post i databasen. Dvs jeg kan godt logge ind som den første, men alle andre kan jeg ikke! Nogen der ved hvad der kan være galt, siden min løkke stopper?

På forhånd tak - Flim

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

<?
session_start();

$connect = mysql_connect("***");
mysql_select_db("***", $connect);

$q = mysql_query("SELECT * FROM brugere") or die(mysql_error());

while($row = mysql_fetch_array($q))
{

    //hvis form er submittet
    if (isset($_POST['logind'])) {
    if ($_POST['navn'] == $row['email'] && $_POST['password'] == $row['k1']) {
    $_SESSION['sessionnr'] = session_id();
    $_SESSION['Name'] = $row[navn];

    header("Location:side1.php");
    exit;
    }else{

    header("Location:logind.php?error=fejl");
    exit;
    }
    }else{
    header("Location:logind.php");
    exit;

    }
}
?>
Avatar billede detox Nybegynder
13. november 2003 - 17:43 #1
Du skulle hellere prøve noget i den her stil:

<?
session_start();
if (isset($_POST['logind'])) {
    $connect = mysql_connect("***");
    mysql_select_db("***", $connect);

    $q = mysql_query("SELECT navn FROM brugere WHERE email='$_POST[navn]' AND k1='$_POST[password]'") or die(mysql_error());
    if (mysql_num_rows($q) == 1) {
        $_SESSION['Name'] = mysql_result(mysql_fetch_row($q),0);
        $_SESSION['sessionnr'] = session_id();
        header("Location: side1.php");
        exit;
    {else{

    header("Location: logind.php?error=fejl");
    exit;
    }
}else{
    header("Location: logind.php");
    exit;
}
?>
Avatar billede detox Nybegynder
13. november 2003 - 17:45 #2
{else{
skal være:
}else{
Avatar billede flim Nybegynder
13. november 2003 - 17:50 #3
Sikker på denne linie er rigtig???

$_SESSION['Name'] = mysql_result(mysql_fetch_row($q),0);
Avatar billede flim Nybegynder
13. november 2003 - 17:54 #4
Har kopieret din kode over - rettet det til med else og self. rettet med brugernavn, password osv under connect,  men få følgende fejl:

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /customers/flim.dk/flim.dk/httpd.www/login/dologin.php on line 9

Warning: Cannot add header information - headers already sent by (output started at /customers/flim.dk/flim.dk/httpd.www/login/dologin.php:9) in /customers/flim.dk/flim.dk/httpd.www/login/dologin.php on line 11


Linie 9: $_SESSION['Name'] = mysql_result(mysql_fetch_row($q),0);
Avatar billede detox Nybegynder
13. november 2003 - 17:57 #5
Næ, det skulle være:

$_SESSION['Name'] = mysql_result($q,0);
Avatar billede detox Nybegynder
13. november 2003 - 18:06 #6
Men fidusen er at du kun behøver at hente en række fra tabellen, istedet for at hente alt fra alle rækker.
Avatar billede flim Nybegynder
13. november 2003 - 18:12 #7
Det virker nu - takker for hælpen. Hvis du lægger et svar giver jeg dig point senere i aften!
Avatar billede detox Nybegynder
13. november 2003 - 18:15 #8
Velbekommen.
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