Avatar billede trajkovski Nybegynder
28. februar 2004 - 21:01 Der er 3 kommentarer og
1 løsning

Brugersytem der benytter sig af sessions og en mysql database

X Hej eksperter!

Jeg forsøger at lave mit første brugersystem.

Jeg bruger disse to sider:

logind.php:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title>Nyt dokument</title>
<meta name="generator" content="TSW WebCoder">
</head>

<body>
<h3>Logind:</h3>

<? echo $msg; ?>
<FORM METHOD=post ACTION="/logind_check.php">Brugernavn:<br><INPUT NAME=\"brugernavn\"><br>Password:<br><INPUT TYPE=password NAME=\"password\"><br><INPUT type="submit" name="Submit" value="Logind"></FORM>
</body>
</html>

logind_check.php:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title>Nyt dokument</title>
<meta name="generator" content="TSW WebCoder">
</head>

<body>
<?
session_start();

$db = mysql_connect("localhost", "brugernavn","pass");
    mysql_select_db("min database", $db);
                   
$krypteret_password = md5($password);
   
$findes = mysql_query("SELECT * FROM bruger WHERE brugernavn = '$brugernavn' AND password = '$krypteret_password'") or die (mysql_error());

if (mysql_num_rows($findes) > 0){
    $userid = mysql_query("SELECT nr FROM bruger WHERE brugernavn = '$brugernavn' AND password = '$krypteret_password'") or die (mysql_error());
    $_SESSION['userid'] = $userid;
    $_SESSION['brugernavn'] = $brugernavn;
    echo 'Du er logget ind med brugerid <b>'.$_SESSION['userid'].'</b> og brugernavnet <b>'.$_SESSION['brugernavn'].'</b>';
    }
        elseif (mysql_num_rows($findes) < 1){
            echo 'Brugeren findes desværre ikke. Kontakt <a href="mailto:webmaster@webmaster.dk">webmasteren</a> for at blive oprettet!';
            echo "Hvad så".$_SESSION['brugernavn']."... Går det?";
        } else {
    $msg = "Din login informationer var ikke korrekte. Forsøg venligst igen.";
    header("Location: /logind.php?msg=".$msg);
    exit;
    }
?>
</body>
</html>

Hver gang logind_check.php køres kommer den med de her fejl:


Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /hsphere/local/home/nicolai/niconet.dk/logind_check.php:9) in /hsphere/local/home/nicolai/niconet.dk/logind_check.php on line 10

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /hsphere/local/home/nicolai/niconet.dk/logind_check.php:9) in /hsphere/local/home/nicolai/niconet.dk/logind_check.php on line 10
Du er logget ind med brugerid Resource id #4 og brugernavnet

Hvad gør jeg forkert?

Nu vi er igang er der så ikke en smartere måde at gøre det her på: $userid = mysql_query("SELECT nr FROM bruger WHERE brugernavn = '$brugernavn' AND password = '$krypteret_password'") or die (mysql_error());?


På forhånd tak

Nicolai
Avatar billede Slettet bruger
28. februar 2004 - 21:25 #1
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /hsphere/local/home/nicolai/niconet.dk/logind_check.php:9)


betyder at du outputter HTML før du skriver session_start()

Flyt session_start() op i toppen af dokumentet, op før al din HTML. Der må ingen blanke linier være før koden.
Avatar billede ztyxx Nybegynder
28. februar 2004 - 21:26 #2
du skal have din php kode før NOGET som helst andet i dine filer, <html> osv betragtes som output, og derfor får du fejl...
Avatar billede trajkovski Nybegynder
20. maj 2004 - 17:49 #3
Tak for hjælpen!

Jeg venter stadig på et svar nan :)
Avatar billede Slettet bruger
20. maj 2004 - 17:53 #4
Jamen så lad os få afsluttet :)
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