Avatar billede stefmeister Nybegynder
17. maj 2004 - 17:51 Der er 15 kommentarer og
1 løsning

Login problem

Hej jeg har et login system, men jeg kan ikke rigtig få det til at virke.

Dette er login.php -> den linker så til cigaret3.php

<?
session_start();
if($passtemp)
{
  $database = mysql_connect( "localhost", "BRUGER", "PASS");
  mysql_select_db("DATABASE NAVN", $database);

  $query = mysql_query("SELECT PASSWORD, BRUGERID FROM BRUGERTABEL WHERE BRUGERNAVN = '".$brugernavn."'");
  while($data = mysql_fetch_row($query))
  {
    if(md5("$passtemp") == $data[0])
    {
        if($data[1]==1)
        { //bruger er admin
                $_SESSION['brugerid'] = $data[1];
                header("Location: http://".$_SERVER['HTTP_HOST']
                      .dirname($_SERVER['PHP_SELF'])
                      ."/cigaret3.php");
        }
    }
  } // while fetch_row
} //if passtemp

?>

<html>
<head>
</head>

<body>
      <b>Supervisor login</b> <br>
      <form action = "<? echo $PHP_SELF; ?>" method = "post">
            <input type="Text" name="brugernavn"> Brugernavn
            <br></br>
          <input type="Password" name="passtemp"> Kodeord
            <br><br>
            <input type="submit" value="Login">
    </form>
   
</body>
</html>


Dette er cigaret3.php

<html>
<head>
<title>Beregn dit cigaret forbrug</title>
</head>
<body>

<?php
session_start();

if($brugerid = $data[1]) {
print("Du er logget ind");
} else {
print("Ikke logget ind!");
}
?>

</form><br>

</body>
</html>


Men det virker ikke. Det er ligesom at den ikke tager _SESSION['bruger'] med videre til cigaret3.php.

Hvad er fejlen med min login?


/Steffen
Avatar billede hmortensen Nybegynder
17. maj 2004 - 17:55 #1
Du bruger jo slet ik sessionen på den anden side...

if($brugerid = $data[1]) {
til
if($_SESSION["brugerid"] != "") {
Avatar billede technodance.dk Nybegynder
17. maj 2004 - 17:56 #2
prøv det her på cigaret3.php

<html>
<head>
<title>Beregn dit cigaret forbrug</title>
</head>
<body>

<?php
session_start();
if (session_is_registered("brugerid")) {
print("Du er logget ind");
} else {
print("Ikke logget ind!");
}
?>

</form><br>

</body>
</html>
Avatar billede stefmeister Nybegynder
17. maj 2004 - 18:12 #3
det virker stadig ikke...
Avatar billede sukos Juniormester
17. maj 2004 - 22:59 #4
Du skal bruge session_start(); FØR du laver output.
Og når du tester, så er det altid en go' ide at bruge
query.........) or die (mysql_error());

Evt. også som det første:

<?php
ini_set('error_reporting', "E_ALL");

session_start();

............kode.................



?>



for at få vist alle fejlmeddelser.
Avatar billede stefmeister Nybegynder
18. maj 2004 - 13:21 #5
den kommer ikke med nogle Error, den skriver bare "Ikke logget ind".
Avatar billede thedeathart Nybegynder
18. maj 2004 - 13:24 #6
prøv at rette dit connect

  $database = mysql_connect( "localhost", "root", "");
  mysql_select_db("database");

hvis du bare køre på din egen test server
Avatar billede thedeathart Nybegynder
18. maj 2004 - 13:26 #7
Dette er cigaret3.php:

<?php
session_start();

if($brugerid = $data[1]) {
print("Du er logget ind");
} else {
print("Ikke logget ind!");
}
?>

<html>
<head>
<title>Beregn dit cigaret forbrug</title>
</head>
<body>

Beskyttet side

</body>
</html>
Avatar billede sostack Nybegynder
18. maj 2004 - 13:30 #8
Jeg tror ikke REGISTER_GLOBALS er sat, så derfor prøv:
<?
session_start();
if($_POST["passtemp"])
{
  $database = mysql_connect( "localhost", "BRUGER", "PASS");
  mysql_select_db("DATABASE NAVN", $database);

  $query = mysql_query("SELECT PASSWORD, BRUGERID FROM BRUGERTABEL WHERE BRUGERNAVN = '".$_POST["brugernavn"]."'");
  while($data = mysql_fetch_row($query))
  {
    if(md5($_POST["passtemp]) == $data[0])
    {
        if($data[1]==1)
        { //bruger er admin
                $_SESSION['brugerid'] = $data[1];
                header("Location: http://".$_SERVER['HTTP_HOST']
                      .dirname($_SERVER['PHP_SELF'])
                      ."/cigaret3.php");
        }
    }
  } // while fetch_row
} //if passtemp

?>

og din cigaret3.php:

<html>
<head>
<title>Beregn dit cigaret forbrug</title>
</head>
<body>

<?php
session_start();
if (isset($_SESSION['brugerid'])) {
print("Du er logget ind");
} else {
print("Ikke logget ind!");
}
?>

</form><br>

</body>
</html>

//sostack
Avatar billede sostack Nybegynder
18. maj 2004 - 13:31 #9
if(md5($_POST["passtemp]) == $data[0])
skal rettes til:
if(md5($_POST["passtemp"]) == $data[0])

//sostack
Avatar billede thedeathart Nybegynder
18. maj 2004 - 13:31 #10
og ingen...

<?php
session_start();
if (isset($_SESSION['brugerid'])) {
print("Du er logget ind");
} else {
print("Ikke logget ind!");
}
?>

SKAL STÅ FØR <html> !!!!
Avatar billede thedeathart Nybegynder
18. maj 2004 - 13:31 #11
*igen
Avatar billede stefmeister Nybegynder
18. maj 2004 - 14:17 #12
thedeathart -> Takker... det var det der var galt... Alt det der med SESSION_START() skal stå FØR <html> det vidste jeg ikke. Nu virker det.
Avatar billede stefmeister Nybegynder
18. maj 2004 - 14:40 #13
dropper du ikke et svar?
Avatar billede stefmeister Nybegynder
23. maj 2004 - 13:35 #14
sukos -> dropper du så ikke et svar? Da jeg lige kiggede nærmere så kan jeg se at du også har skrevet det. Så jeg kan få lukket spørgsmålet.
Avatar billede sukos Juniormester
23. maj 2004 - 18:41 #15
Jow da! :O)
Avatar billede stefmeister Nybegynder
23. maj 2004 - 21:12 #16
takker
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