Avatar billede fcknet Nybegynder
21. marts 2003 - 12:21 Der er 11 kommentarer og
1 løsning

sessions i php - jeg fatter det ikke

jeg har denne kode, som skal logge en bruger ind i systemet:

<?php
include("funktioner.php");
    session_start();
    if (isset($_POST['logind'])) {
    $dopass = $_POST['password'];
    $db = mysql_connect($server, $db_user, $db_pass) or die ("Desværre ingen forbindelse til databasen");
    mysql_select_db("fcknet_dk", $db) or die ("Kunne ikke vælge databasetabel");
    $tjek = mysql_query("SELECT * FROM bruger WHERE brugernavn='$_POST[bruger]' AND kodeord='$dopass'") or die ("Kunne ikke vælge felter i database-tabellen");
        if(mysql_num_rows($tjek) != 0) {
        $_SESSION['sessionnr'] = session_id();
        $_SESSION['brugernavn'] = $_POST['brugernavn'];
        header("Refresh: 2; URL=index.php?inc=besked.php&msg=Du er nu logget ind!");
        die("Vent venligst... (success)");
        }else{
        header("Refresh: 2; URL=index.php?inc=besked.php&msg=Brugernavn eller kodeord er forkert!");
        die("Vent venligst... (fejl)");
        }
    }else{
    header("Location: $side?inc=login.php");
    }
?>


Den sender videre, og alt skulle være fint...

Men når jeg så prøver at hente indholdet af min nye session med denne kode:

if (isset($_SESSION['brugernavn'])) {
    mysql_connect($server, $db_user, $db_pass) or die ("Database fejl");
    mysql_select_db($database);
    $user = $_SESSION['brugernavn'];
    $result = mysql_query("SELECT * FROM nyheder where brugernavn = $user ORDER by ID DESC LIMIT 1");
    while($row = mysql_fetch_array($result)){
    echo "Du er logget ind som <b>$row[brugernavn]</b><br>Klik <a href=index.php?inc=brugerinfo.php&id=$row[id]>her</a> for at se din brugerprofil!";
    }
} else {
echo "Du er <b>ikke</b> logget ind. <br>Klik <a href=index.php?inc=login.php>her</a> for at logge ind";
}


Den laver ingen fejl. Den skriver bare at jeg ikke er logget ind!!!
Avatar billede bearhugx Nybegynder
21. marts 2003 - 12:29 #1
hmmm mon du ikke skulle skrive
  mysql_query("SELECT * FROM nyheder WHERE brugernavn='".$user."' ORDER BY id DESC LIMIT 1");
Avatar billede Brian Moos Lindberg Praktikant
21. marts 2003 - 12:33 #2
eller blot:
mysql_query("SELECT * FROM nyheder WHERE brugernavn='$user' ORDER BY id DESC LIMIT 1");
Avatar billede Brian Moos Lindberg Praktikant
21. marts 2003 - 12:34 #3
eventuelt:
$result = mysql_query("SELECT * FROM nyheder WHERE brugernavn='$user' ORDER BY id DESC LIMIT 1") or die (mysql_error());
Avatar billede sukos Juniormester
21. marts 2003 - 12:51 #4
Du husker vel session_start(); på siden som som tjekker login?
Avatar billede fcknet Nybegynder
21. marts 2003 - 12:56 #5
Nu har jeg ændret lidt i koden til at hente session, samt jeg har sat Session_Start(); i toppen af siden...

Nú er der sket noget:

<?
print_r($_SESSION);
echo "<br>";
echo $_SESSION['brugernavn'];
if (isset($_SESSION['brugernavn'])) {
    mysql_connect($server, $db_user, $db_pass) or die ("Database fejl");
    mysql_select_db($database);
    $user = $_SESSION['brugernavn'];
    $result = $result = mysql_query("SELECT * FROM bruger WHERE brugernavn='$user' ORDER BY id DESC LIMIT 1") or die (mysql_error());
    while($row = mysql_fetch_array($result)){
    echo "Du er logget ind som <b>$row[brugernavn]</b><br>Klik <a href=index.php?inc=brugerinfo.php&id=$row[id]>her</a> for at se din brugerprofil!";
    }
} else {
echo "Du er <b>ikke</b> logget ind. <br>Klik <a href=index.php?inc=login.php>her</a> for at logge ind";
}
?>

Det er hele filen test.php, som kan findes her: http://www.fcknet.dk/index.php?inc=test.php
I kan prøve at logge ind på http://www.fcknet.dk/index.php?inc=login.php - Bruger: Philip | Kode: test
Avatar billede fcknet Nybegynder
21. marts 2003 - 12:57 #6
nu virker det... tak for hjælpen
Avatar billede bearhugx Nybegynder
21. marts 2003 - 13:05 #7
sukos -- mon ikke du skulle lægge et svar ?
Avatar billede Brian Moos Lindberg Praktikant
21. marts 2003 - 13:10 #8
det overvejede jeg slet ikke... det er åbenbart for lang tid siden at jeg har arbejdet med sessions...;-D
Avatar billede sukos Juniormester
21. marts 2003 - 13:36 #9
En fejl jeg selv gjorde en del gange i starten, og stadig kan gøre hvis jeg har siddet 24 timer foran comp'en :O)
Avatar billede Brian Moos Lindberg Praktikant
21. marts 2003 - 13:42 #10
heh... og det sker jo alt for tit for alt for mange af os...
Avatar billede fcknet Nybegynder
21. marts 2003 - 14:08 #11
jeg har lavet ASP før og der er der jo ikke det der start noget!
Avatar billede sukos Juniormester
22. marts 2003 - 16:41 #12
Kan du osse gøre med php, ved at bruge:

ini_set('session.auto_start', 1);

i topppen af hvert dokument, eller som en include i toppen
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