Avatar billede fireburn Nybegynder
28. december 2004 - 22:52 Der er 7 kommentarer

SESSIONS - Hvad gør jeg med det

Hej!!!

Jeg er en gammel haj indenfor ASP, og er nu ved at udarbejde et auktions-site i PHP.

Dette indebærer naturligvis et bruger system.

Jeg har lavet et login system, som virker fint på localhost, men når jeg så lægger det op på min host, virker det som om der kører en random generator, der sletter mine sessions, men kun nogle gange. Nogle gange virker de på 10 undersider, så kommer login box frem, så skifter man videre, så virker de igen... Der er ikke noget system i, hvornår sessions bliver tabt.

Jeg husker at bruge session_start() i toppen af alle sider, og mit timeout er sat til 1440 seconds.

Det eneste system jeg har kunne finde i, hvornår den synes at tabe session variable, er at risikoen er større når man skifter hurtigt mellem sider, der kalder login_procedure() funktionen, i hvilken der checkes for om $_SESSION['username'] er sat...

Jeg har arbejdet med det i flere dage, og har efterhånden prøvet en del forskelligt... Derfor giver jeg 90 point til den, der evt. kan hjælpe mig på vej!! Jeg er desperat ;)
Avatar billede fireburn Nybegynder
28. december 2004 - 22:53 #1
function login_procedure()
{
    if(!isset($_SESSION['username']))
    {
        if($_SESSION['username'] == "")
        {
            if(isset($_SERVER['PHP_SELF']))
            {
                $theref = $_SERVER['PHP_SELF'];
                if(isset($_SERVER['QUERY_STRING']))
                    $theref = $theref . "?" . $_SERVER['QUERY_STRING'];
            }
            else
            {
                $theref = php_path."index.php";
            }

            $theref = str_replace('&','||--||',$theref);
            $_SESSION['lasturl'] = $theref;

            require '../users/login.php';
            die();   
        }
        else
        {
            return true;
        }
    }
    else
    {
        return true;
    }
}
Avatar billede fireburn Nybegynder
28. december 2004 - 22:55 #2
Her sættes sessions (login.php)

if(isset($_POST['submit'])) { // hvis formen er submitted
    /* check at alle info er fyldt korrekt ud */
    if(!$_POST['user'] | !$_POST['pass']) {
        die('Du mangler et felt.');
    }

    $theuser = getUserByUserName($_POST['user']);

    if(!isset($theuser['strPassword']))
        die("Ugyldigt brugernavn indtastet!");
    if($theuser['strPassword'] != $_POST['pass'])
        die("Fejl: Forkert password indtastet!");
    else
    {
        $username = $_POST['user'];
        $pasord = $_POST['pass'];
        $iduser = $theuser['idUser'];
        session_register("username");
        session_register("pasord");
        session_register("iduser");
    }
}



pleease please help me :)
Avatar billede erikjacobsen Ekspert
28. december 2004 - 23:22 #3
Du skal nøjes med at bruge $_SESSION['...']  og ikke session_register.
Men jeg ved ikke om det har noget med dit problem at gøre.
Avatar billede fireburn Nybegynder
29. december 2004 - 15:53 #4
Hej, og tak for kommentaren.. Det gjorde jeg også først, grunden til jeg prøver med session_register er at det andet ikke virkede... der er ingen forskel på om jeg bruger det eller ej nu, den taber stadig session variable nogle gange...
Avatar billede erikjacobsen Ekspert
29. december 2004 - 16:00 #5
Fint nok. Går du nogle gange til mitdomæne.dk og andre gange til www.mitdomæne.dk? Det
kan være sat op til at give forskellige sessions. Du går heller ikke mellem http://
og https://  ?
Avatar billede fireburn Nybegynder
29. december 2004 - 17:24 #6
Hej igen - nej, jeg bruger hele tiden med http://www foran.. Det mærkelige er jo også at fejlen er periodisk... Det er kun nogle gange det ikke virker
Avatar billede erikjacobsen Ekspert
29. december 2004 - 17:50 #7
Det lyder "sjovt" - har du et link til siden, så vi andre kan prøve?
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