Jump to content

Session timout? help!


munnaz

Recommended Posts

Hey guys, I have a website that people log into and watch documentaries. http://free-documentaries-online.com . I was wondering how to make my sessions last longer and also have an option for them to 'Keep me logged in'?

I have the code :

session_start();

 

at the top of every page and login.php is

<?php
   //Start session
   session_start();
   
   //Include database connection details
   require_once('configlogin.php');
   
   //Array to store validation errors
   $errmsg_arr = array();
   
   //Validation error flag
   $errflag = false;
   
   //Connect to mysql server
   $link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
   if(!$link) {
      die('Failed to connect to server: ' . mysql_error());
   }
   
   //Select database
   $db = mysql_select_db(DB_DATABASE);
   if(!$db) {
      die("Unable to select database");
   }
   
   //Function to sanitize values received from the form. Prevents SQL injection
   function clean($str) {
      $str = @trim($str);
      if(get_magic_quotes_gpc()) {
         $str = stripslashes($str);
      }
      return mysql_real_escape_string($str);
   }
   
   //Sanitize the POST values
   $login = clean($_POST['login']);
   $password = clean($_POST['password']);
         
   //Input Validations
   if($login == '') {
      $errmsg_arr[] = 'Login ID missing';
      $errflag = true;
   }
   if($password == '') {
      $errmsg_arr[] = 'Password missing';
      $errflag = true;
   }
   
   //If there are input validations, redirect back to the login form
   if($errflag) {
      $_SESSION['ERRMSG_ARR'] = $errmsg_arr;
      session_write_close();
      header("location: login-form.php");
      exit();
   }
   
   //Create query
   $qry="SELECT * FROM members WHERE login='$login' AND passwd='".md5($_POST['password'])."'";
   $result=mysql_query($qry);
   
   //Check whether the query was successful or not
   if($result) {
      if(mysql_num_rows($result) == 1) {
         //Login Successful
         session_regenerate_id();
         $member = mysql_fetch_assoc($result);
         $_SESSION['SESS_MEMBER_ID'] = $member['member_id'];
         $_SESSION['SESS_FIRST_NAME'] = $member['firstname'];
         $_SESSION['SESS_LAST_NAME'] = $member['lastname'];
         $_SESSION['SESS_FULL_NAME'] = $member['firstname']." ".$member['lastname'];
         $_SESSION['SESS_LOGIN'] = $member['login'];
         $_SESSION['SESS_EMAIL'] = $member['email'];
         $_SESSION['SESS_SUBSCRIBE'] = $member['subscribe'];
         $_SESSION['SESS_AUTO_ADD_RECENT'] = $member['autoaddrecent'];
         $_SESSION['SESS_VISITS'] = $member['visits'];
         session_write_close();

         header("location: ../index.php");

         exit();
      }else {
         //Login failed
         header("location: login-failed.php");
         exit();
      }
   }else {
      die("Query failed");
   }
?>

I think it has something to do with

 

session.gc_maxlifetime

But im not too sure where to put it? I can't acess my php.ini file to change settings? Does that matter or can i use code.

Thanks in advance!

Link to comment
https://forums.phpfreaks.com/topic/240287-session-timout-help/
Share on other sites

Opps I was looking at it wrong.. corrected.

 

You can check your settings with

$currentTimeoutInSecs = ini_get(’session.gc_maxlifetime’);

$echo $currentTimeoutInSecs;

 

You can change it with

<?php
    ini_set(’session.gc_maxlifetime’, 30*60);
?>

 

Here is a reference: http://prajapatinilesh.wordpress.com/2009/01/14/manually-set-php-session-timeout-php-session/

Link to comment
https://forums.phpfreaks.com/topic/240287-session-timout-help/#findComment-1234194
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.