Avatar billede nickyc Nybegynder
13. september 2005 - 15:57 Der er 4 kommentarer

Hvorfor registrerer den ikke mine sessions?

Hey allesammen...

Har et login script - Man indtaster Brugernavn & Password
- Den logger ind fint ind, men ser ikke ud til den sætter Sessions - Mit script ser sådanne ud:

---------------------------
<?
session_start();

$user = $_REQUEST['brugernavn'];
$pass = $_REQUEST['password'];

if($user == "") {
    echo '<script>alert("Du skal indtaste et brugernavn")</script>';
    echo '<script>history.back(-1);</script>';
}
if($pass == "") {
    echo '<script>alert("Du skal indtaste et password")</script>';
    echo '<script>history.back(-1);</script>';
}
echo $user;
//Hent forbindelse
include("includes/config.inc.php");

//Check om brugeren er i databasen

$SQL = "SELECT * FROM users WHERE Brugernavn = '$user'";
$check = mysql_query($SQL);
$userfound = mysql_num_rows($check);
echo $SQL;
if($userfound < 1 ) {
    echo '<script>alert("Brugeren blev ikke fundet")</script>';
    echo '<script>history.back(-1);</script>';

} else {
    //Check om login passer med data i db
$SQL = "SELECT Brugernavn, Password FROM users WHERE Brugernavn = '$user'";
$query = mysql_query($SQL);

$row = mysql_fetch_assoc($query);
if($row['Password'] != $pass) {
    echo '<script>alert("Password er forkert")</script>';
    echo '<script>history.back(-1);</script>';
} else {
   
$SQL = "SELECT username,password FROM users WHERE Brugernavn = '$user'" or die(mysql_error());
$query = mysql_query($SQL);
$row = mysql_fetch_array($query);

$_SESSION['Bruger_ID'] = $row['id'];
$_SESSION['Brugernavn'] = $row["Brugernavn"];
$_SESSION['Password'] = $row["Password"];

echo '<script>document.location.href="member/member.php"</script>';

}
}

?>

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

På den side man så kommer til som hedder member skriver den ikke sessions ud hvis jeg vil skrive den ud:

<?
            echo $_SESSION['Bruger_ID'];
            echo $_SESSION['Brugernavn'];
            echo $_SESSION['Password'];
            ?>

--------------------
Og hvis jeg laver en fil der fx hedder checklogin.php som skal checke om man er logget ind og includerer den på member.php viser den slet ikke siden:

Checklogin.php

<?
//Check på om brugeren er logget ind
session_start();
//Tjek om brugeren er logget ind ved at checke på Session's
if( !isset($_SESSION['Brugernavn']) ) {
   
    Header("Location: ../index.php");
}
if( !isset($_SESSION['Password']) ) {
   
    Header("Location: ../index.php");
}

if( !isset($_SESSION['Bruger_ID']) ) {
   
    header("Location: ..index.php");
}

?>
Avatar billede razmuz_dk Nybegynder
13. september 2005 - 16:30 #1
$SQL = "SELECT username,password FROM users WHERE Brugernavn = '$user'" or die(mysql_error());
$query = mysql_query($SQL);
$row = mysql_fetch_array($query);

$_SESSION['Bruger_ID'] = $row['id'];
$_SESSION['Brugernavn'] = $row["Brugernavn"];
$_SESSION['Password'] = $row["Password"];

Kig lige på det igen! - kan du selv se fejlen? :-) Du overskriver den allerede eksisterende $row - derfor er fx $row["Brugernavn"] tom. Derudover er $row['id'] allerede tom FØR "overskrivelsen" så vidt jeg kan se ... fordi du ikke selecter det i den første $row.
Avatar billede nickyc Nybegynder
13. september 2005 - 16:45 #2
Så jeg skal skrive det sådanne her eller ?

$_SESSION['Bruger_ID'] .= $row['id'];
$_SESSION['Brugernavn'] .= $row["Brugernavn"];
$_SESSION['Password'] .= $row["Password"];

Også lave min SQL om til

$SQL = "SELECT id, Brugernavn, Password FROM users WHERE Brugernavn = '$user'";

Eller hvordan mener du ?
Avatar billede razmuz_dk Nybegynder
13. september 2005 - 16:48 #3
Det kommer an på hvordan din users-tabel ser ud?

Er det
id, username, password
eller
Bruger_id, Brugernavn, Password

.. eller hvad er det? Så kan jeg give dig et eksempel.
Avatar billede nickyc Nybegynder
13. september 2005 - 17:08 #4
Det er id, Brugernavn, Password
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