Avatar billede nicocarlos Nybegynder
11. januar 2005 - 20:12 Der er 13 kommentarer og
1 løsning

Session problemer

Hejsa.

Jeg giver en session ved login. Men denne session forsvinder lige pludselig fra brugeren selvom han er aktiv. Jeg giver den ikke andre steder og dette har ikke været et problem før. Men efter jeg har skiftet server forsvinder sessions.

HVad kan problemet være?

PÅ forhånd tak
Avatar billede rhandersen Nybegynder
11. januar 2005 - 20:14 #1
Hmm, jeg mener at man kan sætte op i serverconfig hvor længe sessions skal leve.

Hvem er du hostet af?
Avatar billede nicocarlos Nybegynder
11. januar 2005 - 20:17 #2
Af mig selv, man kan sætte det i php.ini.

session.gc_maxlifetime = 1440


Er det ikke den man skal sætte til mere? - ville det være farligt at sætte den til 3 timer?
Avatar billede rhandersen Nybegynder
11. januar 2005 - 20:20 #3
nej, det tror jeg bestemt ikke:D
Avatar billede nicocarlos Nybegynder
11. januar 2005 - 20:21 #4
OKay jeg prøver det og ser lige hvordan det virker - vender tilbage når jeg har testet det.
Avatar billede nicocarlos Nybegynder
11. januar 2005 - 20:24 #5
Hvordan kan jeg evt. "dræbe" alle sessions og derved smide alle brugere af?
Avatar billede rhandersen Nybegynder
11. januar 2005 - 20:32 #6
session_destroy()
Avatar billede rhandersen Nybegynder
11. januar 2005 - 20:32 #7
Avatar billede rhandersen Nybegynder
11. januar 2005 - 20:33 #8
Vil ikke have point, men hellere hvad du syntes om mig i karma:)
Avatar billede rhandersen Nybegynder
11. januar 2005 - 20:33 #9
om min hjælp:P
Avatar billede nicocarlos Nybegynder
12. januar 2005 - 14:42 #10
okay dette løste ikke mit problem. Men jeg har lige skiftet til ny server og siden da har det ikke virket. Men det gamle system blev brugeren logget ud når session forsvandt men med den nye bliver brugeren online og alle script er bare tomme fordi den sessions med brugernavn er tomt, det er underligt ?!
Avatar billede rhandersen Nybegynder
12. januar 2005 - 15:34 #11
jo meget underligt, men så ved jeg ikke mere.

Er ikke php-server-freak, bare php-freak:P

Virker session_destroy()?
Avatar billede nicocarlos Nybegynder
12. januar 2005 - 16:33 #12
OKay prøver lige at give lidt mere info: Sådan her giver jeg sessions ved login:
session_start();
$_SESSION['pass'] = $password1;
$_SESSION["id"] = $yourstats3[username];

Og sådan her ser det script der tjekker om de er logget ind ud:
<?PHP
// get the cookievars if they exist
$rememberCookieUname = $_SESSION["id"];
$rememberCookiePassword = $_SESSION['pass'];

// the security header which should be included in al memberpaga's
// first we include the configuration file which contains the database data
// also it will connect to the database.
include("config.php");

// tell we want to work with sessions
session_start();
// the $HTTP_SESSION_VARS[id] in this query indicates that we want to retrieve the username from the session.
$query = "Select * from v_users where BINARY username like '".$_SESSION['id']."' And password = '".$_SESSION['pass']."'";
$result = mysql_query($query);
// if there are results check it the accesslevel is high enough. If there aren't results tell the user to log-in and stop (die) after that.
if ($row = mysql_fetch_array($result)){
}else{
    // if there are no results, check for an cookie
    if ($rememberCookiePassword != "" && $rememberCookieUname != ""){
        // validate the cookie
        $query = "Select * from v_users where BINARY username like '$rememberCookieUname'";
        $result = mysql_query($query);
        // if there are results check it the accesslevel is high enough. If there aren't results tell the user to log-in and stop (die) after that.
        $yourstats="SELECT * from users where BINARY username LIKE '$rememberCookieUname'";
          $yourstats2=mysql_query($yourstats) or die("Could not get your stats");
          $yourstats3=mysql_fetch_array($yourstats2);
        if ($row = mysql_fetch_array($result)){
            // check the password
            if ($row["password"] == $rememberCookiePassword){
                // if the user has a valid cookie, set the session vars:
                    // put the password in the session
                    $_SESSION['pass'] = $rememberCookiePassword;
                    // put the username in the session   
                    $_SESSION["id"] =  $yourstats3[username];
            }else{echo('<script type=\'text/javascript\'>parent.location.href=\'login.php\';</script>');}
        }else{echo('<script type=\'text/javascript\'>parent.location.href=\'login.php\';</script>');}       
    }else{echo('<script type=\'text/javascript\'>parent.location.href=\'login.php\';</script>');}
}
// Below we set al variables which can be used in pages, things like the current logged user and his or hers level

// This will set the user_currently_loged variable
// first we remove the htmlcode from the username saved in a cookie
$user_currently_loged = htmlspecialchars($_SESSION["id"],ENT_NOQUOTES);
// Then we replace \" with "
$user_currently_loged = str_replace ('\"', "&quot;", $user_currently_loged);
$user_currently_loged = str_replace ("\'", "&#039", $user_currently_loged);
// and a variable where u get the plain username
$user_currently_loged_plain = $_SESSION["id"];
include("register_onlineusers.php");
?>

Er der noget galt med det?
Avatar billede nicocarlos Nybegynder
12. januar 2005 - 16:37 #13
Og jeg bruger et frameset til at loade alle sider i. Jeg har includeret scriptet der checker på alle sider.
Kan det have noget at gøre med at der ikke sker et reload af browseren og at den så mister sessions eller sådan noget lignende.
For denne her bliver pludeselig tom:
$user_currently_loged = htmlspecialchars($_SESSION["id"],ENT_NOQUOTES);
Avatar billede nicocarlos Nybegynder
12. september 2005 - 00:38 #14
jeg lukker
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