Avatar billede nuddel Nybegynder
14. august 2003 - 15:18 Der er 25 kommentarer og
1 løsning

problem med session's

Jeg har en login form på min site. Når man submit'er så sætter den : $_SESSION['username'] = $row['navn'] osv...

De følgende sider har jeg så en :
if(!$_SESSION['username'] = blabla...);
header('Location : login.php');

Men så snart jeg klikker på et linket, til de andre sider, fra login siden når jeg er logget ind. Så hopper den automatiosk tilbage på login siden.
Som om sessionen ikk' følger med...?¿

Og jeg har session_start(); i toppen af alle siderne...
Avatar billede ohmish Nybegynder
14. august 2003 - 15:22 #1
prøv med

if ($_SESSION['username'] != "blabla") istedet
Avatar billede riversen Nybegynder
14. august 2003 - 15:23 #2
du har også et semikoloen efter din if sætning...det skal fjernes
Avatar billede nuddel Nybegynder
14. august 2003 - 15:28 #3
taste fejl fra min side af...der er ikk ; efter if i min kode..
Avatar billede ohmish Nybegynder
14. august 2003 - 15:32 #4
er username aldrig andet end "blabla"? for så er det jo selvsagt der fejlen ligger
Avatar billede riversen Nybegynder
14. august 2003 - 15:33 #5
husker du at kalde session_start() ?
Avatar billede riversen Nybegynder
14. august 2003 - 15:33 #6
du skal nok også lige prøve det nuddel foreslår
Avatar billede ohmish Nybegynder
14. august 2003 - 15:34 #7
skal jeg?
Avatar billede nuddel Nybegynder
14. august 2003 - 15:37 #8
her har i hele koden, det er nok lidt letter end alt det med blabla:D

session_start();

if(isset($_POST[submit]))
{
    $getSQL = mysql_query("SELECT id, navn, pass FROM users WHERE navn='$_POST[navn]' && pass='$_POST[pass]'");
    $row = mysql_fetch_array($getSQL);
   
    if($row) //--- sender dig videre hvis user og pass er korrekt
    {
        if($row[pass] == $_POST[pass] && $row[navn] == $_POST[navn]) {
        $_SESSION['sessionnr'] = session_id();
        $_SESSION['id'] = $row['id'];
        $_SESSION['username'] = $row['navn'];
        header("Location : default.php");
            }
    }else{
        echo "<font face='verdana' size='2'><b>ERROR</b>";
    }
}

||||||||||||||||||||||||

og alle følgende sider har : session_start();
Avatar billede tipsen Nybegynder
14. august 2003 - 15:37 #9
ok - dette spørgsmål er forvirrende...
Avatar billede detox Nybegynder
14. august 2003 - 15:50 #10
Prøv med:
echo $_SESSION['username'];
for at se om den indeholder det du forventer.
Avatar billede detox Nybegynder
14. august 2003 - 15:52 #11
Denne linie:
if($row[pass] == $_POST[pass] && $row[navn] == $_POST[navn]) {
vil jeg ændre til:
if($row['pass'] == $_POST['pass'] && $row['navn'] == $_POST['navn']) {
Avatar billede nuddel Nybegynder
14. august 2003 - 15:54 #12
har prøvet med echo $_SESSION['username'];
og den udskriver usernamet. men så snart jeg vil på andre sider, så bliver jeg sendt tilbage pga.

session_start();
    if (!isset($_SESSION['id'], $_SESSION['sessionnr']) || $_SESSION['sessionnr'] != session_id()) {
    header("Location: default.php");
}
Avatar billede detox Nybegynder
14. august 2003 - 16:22 #13
Kan du så ikke prøve at udskrive $_SESSION['id'], $_SESSION['sessionnr'] og session_id(). Din syntax ser jo ok ud, så der må jo være en fejl i en af dine Sessionvariabler.
Avatar billede nuddel Nybegynder
14. august 2003 - 22:07 #14
spørg mig ikk' hvordan...men nu virker det, har dog ikk' ændret noget siden i eftermiddags..

Kan måske ha' været en fejl på servern...
Avatar billede tipsen Nybegynder
14. august 2003 - 22:18 #15
Du har selvfølgelig slettet cachen så det ikke bare er en fejl der skyldes at du bruger en elendig browser som eksempelvis IE?
Avatar billede nuddel Nybegynder
14. august 2003 - 22:24 #16
jo jeg køre IE:D
Avatar billede tofferman Nybegynder
14. august 2003 - 22:27 #17
Er det ikke fordi du starter en ny session med session.start() hver gang du loader en side?
Avatar billede nuddel Nybegynder
14. august 2003 - 22:33 #18
det er jeg ikk' helt sikker på, er lidt ny i PHP....Men hvordan skulle de andre sidder ellers kunne se at man har fået tildels et session id osv...?
Avatar billede detox Nybegynder
14. august 2003 - 22:38 #19
Ja, en session lever som standard i 20 minutter, eller til man lukker browseren ned.
Avatar billede nuddel Nybegynder
14. august 2003 - 22:40 #20
hhmmmm..oki..

Mærkeligt for det har virket alle dage undtagen de 10 timers tid idag...!

Du får scoren, da du har givet mig viden om de 20 min:-D
Avatar billede nuddel Nybegynder
14. august 2003 - 22:42 #21
ahhh.. kan ikk' gi dig score?
Avatar billede detox Nybegynder
14. august 2003 - 22:43 #22
c",)
Avatar billede nuddel Nybegynder
14. august 2003 - 22:46 #23
:D
Avatar billede detox Nybegynder
14. august 2003 - 22:50 #24
Arhh, blev pludselig i tvivl om levetiden (og med rette!). Ved nærmere eftersyn viser det sig at session_cache_expire() er sat til 180 minutter som standard.
Avatar billede detox Nybegynder
14. august 2003 - 22:51 #25
Takker for point's!
Avatar billede nuddel Nybegynder
14. august 2003 - 23:00 #26
aahhhh..! takker for det, igen:-]


C*ya!!
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