bcit-ci / CodeIgniter

Open Source PHP Framework (originally from EllisLab)
https://codeigniter.com/
MIT License
18.26k stars 7.6k forks source link

session problem in localhost #2624

Closed sankbhatt closed 11 years ago

sankbhatt commented 11 years ago

i have download a fresh copy of CI 2.1.4 on my local machine using xampp i have made two changes in all

  1. in config.php $config['encryption_key'] = 'asddsad';
  2. in autoload.php $autoload['libraries'] = array('database', 'session'); when i open the page in browser (localhost/ci) the default page of project following error shows up In order to use the Session class you are required to set an encryption key in your config file i googled a lot and tried many codes and changes, also testing in other browsers and in other new copy of CI too. error remains the same for me i am using windows8 and xampp to do this can someone suggest a way out of this..
tehcno45 commented 11 years ago

try this setting in config.php

$config['sess_use_database'] = TRUE; and make a table in your database with name ci_sessions like this

CREATE TABLE IF NOT EXISTS ci_sessions ( session_id varchar(40) DEFAULT '0' NOT NULL, ip_address varchar(45) DEFAULT '0' NOT NULL, user_agent varchar(120) NOT NULL, last_activity int(10) unsigned DEFAULT 0 NOT NULL, user_data text NOT NULL, PRIMARY KEY (session_id), KEY last_activity_idx (last_activity) );

sankbhatt commented 11 years ago

@tehcno45 thanks for reply, tried this but did'nt work for me i also tried setting this $this->encryption_key = "asddsad" in system->libraries->Session.php then it says Disallowed Key Characters. still looking for a solution to this

tehcno45 commented 11 years ago

maybe you can try to migrate from 2.1.3 to 2.1.4 (i mean not from fresh copy )

kakysha commented 11 years ago

First of all, Issues on this repo is about latest 3.0 dev version, so, try it. Moreover, never touch the system/ folder

Speaking about your problem, please publish here your full part of a config file related to cookies and sessions, thanx.

sankbhatt commented 11 years ago

i have uploaded the project on server at http://ahmedabadwebs.com/ci/ it still shows the same error, i have set the config file as follows and i am using version 2.1.4

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

/* -------------------------------------------------------------------------- Base Site URL
URL to your CodeIgniter root. Typically this will be your base URL,
WITH a trailing slash:
http://example.com/
If this is not set then CodeIgniter will guess the protocol, domain and
path to your installation.

*/ $config['base_url'] = 'http://ahmedabadwebs.com/ci/';

/* -------------------------------------------------------------------------- Index File
Typically this will be your index.php file, unless you've renamed it to
something else. If you are using mod_rewrite to remove the page set this
variable so that it is blank.

*/ $config['index_page'] = 'index.php';

/* -------------------------------------------------------------------------- URI PROTOCOL
This item determines which server global should be used to retrieve the
URI string. The default setting of 'AUTO' works for most servers.
If your links do not seem to work, try one of the other delicious flavors:
'AUTO' Default - auto detects
'PATH_INFO' Uses the PATH_INFO
'QUERY_STRING' Uses the QUERY_STRING
'REQUEST_URI' Uses the REQUEST_URI
'ORIG_PATH_INFO' Uses the ORIG_PATH_INFO

*/ $config['uri_protocol'] = 'AUTO';

/* -------------------------------------------------------------------------- URL suffix
This option allows you to add a suffix to all URLs generated by CodeIgniter.
For more information please see the user guide:
http://codeigniter.com/user_guide/general/urls.html

*/

$config['url_suffix'] = '';

/* -------------------------------------------------------------------------- Default Language
This determines which set of language files should be used. Make sure
there is an available translation if you intend to use something other
than english.

*/ $config['language'] = 'english';

/* -------------------------------------------------------------------------- Default Character Set
This determines which character set is used by default in various methods
that require a character set to be provided.

*/ $config['charset'] = 'UTF-8';

/* -------------------------------------------------------------------------- Enable/Disable System Hooks
If you would like to use the 'hooks' feature you must enable it by
setting this variable to TRUE (boolean). See the user guide for details.

*/ $config['enable_hooks'] = FALSE;

/* -------------------------------------------------------------------------- Class Extension Prefix
This item allows you to set the filename/classname prefix when extending
native libraries. For more information please see the user guide:
http://codeigniter.com/user_guide/general/core_classes.html
http://codeigniter.com/user_guide/general/creating_libraries.html

*/ $config['subclassprefix'] = 'MY';

/* -------------------------------------------------------------------------- Allowed URL Characters
This lets you specify with a regular expression which characters are permitted
within your URLs. When someone tries to submit a URL with disallowed
characters they will get a warning message.
As a security measure you are STRONGLY encouraged to restrict URLs to
as few characters as possible. By default only these are allowed: a-z 0-9~%.:_-
Leave blank to allow all characters -- but only if you are insane.
DO NOT CHANGE THIS UNLESS YOU FULLY UNDERSTAND THE REPERCUSSIONS!!

*/ $config['permitted_urichars'] = 'a-z 0-9~%.:-';

/* -------------------------------------------------------------------------- Enable Query Strings
By default CodeIgniter uses search-engine friendly segment based URLs:
example.com/who/what/where/
By default CodeIgniter enables access to the $_GET array. If for some
reason you would like to disable it, set 'allow_get_array' to FALSE.
You can optionally enable standard query string based URLs:
example.com?who=me&what=something&where=here
Options are: TRUE or FALSE (boolean)
The other items let you set the query string 'words' that will
invoke your controllers and its functions:
example.com/index.php?c=controller&m=function
Please note that some of the helpers won't work as expected when
this feature is enabled, since CodeIgniter is designed primarily to
use segment based URLs.

*/ $config['allow_get_array'] = TRUE; $config['enable_query_strings'] = FALSE; $config['controller_trigger'] = 'c'; $config['function_trigger'] = 'm'; $config['directory_trigger'] = 'd'; // experimental not currently in use

/* -------------------------------------------------------------------------- Error Logging Threshold
If you have enabled error logging, you can set an error threshold to
determine what gets logged. Threshold options are:
You can enable error logging by setting a threshold over zero. The
threshold determines what gets logged. Threshold options are:
0 = Disables logging, Error logging TURNED OFF
1 = Error Messages (including PHP errors)
2 = Debug Messages
3 = Informational Messages
4 = All Messages
For a live site you'll usually only enable Errors (1) to be logged otherwise
your log files will fill up very fast.

*/ $config['log_threshold'] = 0;

/* -------------------------------------------------------------------------- Error Logging Directory Path
Leave this BLANK unless you would like to set something other than the default
application/logs/ folder. Use a full server path with trailing slash.

*/ $config['log_path'] = '';

/* -------------------------------------------------------------------------- Date Format for Logs
Each item that is logged has an associated date. You can use PHP date
codes to set your own date formatting

*/ $config['log_date_format'] = 'Y-m-d H:i:s';

/* -------------------------------------------------------------------------- Cache Directory Path
Leave this BLANK unless you would like to set something other than the default
system/cache/ folder. Use a full server path with trailing slash.

*/ $config['cache_path'] = '';

/* -------------------------------------------------------------------------- Encryption Key
If you use the Encryption class or the Session class you
MUST set an encryption key. See the user guide for info.

*/ $config['encryption_key'] = 'encryptionkey';

/* -------------------------------------------------------------------------- Session Variables
'sess_cookie_name' = the name you want for the cookie
'sess_expiration' = the number of SECONDS you want the session to last.
by default sessions last 7200 seconds (two hours). Set to zero for no expiration.
'sess_expire_on_close' = Whether to cause the session to expire automatically
when the browser window is closed
'sess_encrypt_cookie' = Whether to encrypt the cookie
'sess_use_database' = Whether to save the session data to a database
'sess_table_name' = The name of the session database table
'sess_match_ip' = Whether to match the user's IP address when reading the session data
'sess_match_useragent' = Whether to match the User Agent when reading the session data
'sess_time_to_update' = how many seconds between CI refreshing Session Information

*/ $config['sess_cookie_name'] = 'ci_session'; $config['sess_expiration'] = 7200; $config['sess_expire_on_close'] = FALSE; $config['sess_encrypt_cookie'] = FALSE; $config['sess_use_database'] = FALSE; $config['sess_table_name'] = 'ci_sessions'; $config['sess_match_ip'] = FALSE; $config['sess_match_useragent'] = TRUE; $config['sess_time_to_update'] = 300;

/* -------------------------------------------------------------------------- Cookie Related Variables
'cookie_prefix' = Set a prefix if you need to avoid collisions
'cookie_domain' = Set to .your-domain.com for site-wide cookies
'cookie_path' = Typically will be a forward slash
'cookie_secure' = Cookies will only be set if a secure HTTPS connection exists.

*/ $config['cookie_prefix'] = ""; $config['cookie_domain'] = ""; $config['cookie_path'] = "/"; $config['cookie_secure'] = FALSE;

/* -------------------------------------------------------------------------- Global XSS Filtering
Determines whether the XSS filter is always active when GET, POST or
COOKIE data is encountered

*/ $config['global_xss_filtering'] = FALSE;

/* -------------------------------------------------------------------------- Cross Site Request Forgery
Enables a CSRF cookie token to be set. When set to TRUE, token will be
checked on a submitted form. If you are accepting user data, it is strongly
recommended CSRF protection be enabled.
'csrf_token_name' = The token name
'csrf_cookie_name' = The cookie name
'csrf_expire' = The number in seconds the token should expire.

*/ $config['csrf_protection'] = FALSE; $config['csrf_token_name'] = 'csrf_test_name'; $config['csrf_cookie_name'] = 'csrf_cookie_name'; $config['csrf_expire'] = 7200;

/* -------------------------------------------------------------------------- Output Compression
Enables Gzip output compression for faster page loads. When enabled,
the output class will test whether your server supports Gzip.
Even if it does, however, not all browsers support compression
so enable only if you are reasonably sure your visitors can handle it.
VERY IMPORTANT: If you are getting a blank page when compression is enabled it
means you are prematurely outputting something to your browser. It could
even be a line of whitespace at the end of one of your scripts. For
compression to work, nothing can be sent before the output buffer is called
by the output class. Do not 'echo' any values with compression enabled.

*/ $config['compress_output'] = FALSE;

/* -------------------------------------------------------------------------- Master Time Reference
Options are 'local' or 'gmt'. This pref tells the system whether to use
your server's local time as the master 'now' reference, or convert it to
GMT. See the 'date helper' page of the user guide for information
regarding date handling.

*/ $config['time_reference'] = 'local';

/* -------------------------------------------------------------------------- Rewrite PHP Short Tags
If your PHP installation does not have short tag support enabled CI
can rewrite the tags on-the-fly, enabling you to utilize that syntax
in your view files. Options are TRUE or FALSE (boolean)

*/ $config['rewrite_short_tags'] = FALSE;

/* -------------------------------------------------------------------------- Reverse Proxy IPs
If your server is behind a reverse proxy, you must whitelist the proxy IP
addresses from which CodeIgniter should trust the HTTP_X_FORWARDED_FOR
header in order to properly identify the visitor's IP address.
Comma-delimited, e.g. '10.0.1.200,10.0.1.201'

*/ $config['proxy_ips'] = '';

/* End of file config.php / / Location: ./application/config/config.php */

in autoload file $autoload['libraries'] = array('database', 'session'); has been used

Elvis254 commented 11 years ago

Try and set the $config['sess_encrypt_cookie'] from FALSE to TRUE, then it should work.

narfbg commented 11 years ago

Please post on the forums for generic questions like this one.

a4ankii commented 7 years ago

hello there , have u solved this issue "An Error Was Encountered

In order to use the Session class you are required to set an encryption key in your config file." i am getting this error even after setting up the things using ci 2.1.3. please help me out Asap.