PHP  
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | my php.net 
search for in the  
<ini_restoremain>
view the version of this page
Last updated: Thu, 21 Aug 2003

ini_set

(PHP 4 )

ini_set -- Sets the value of a configuration option

Description

string ini_set ( string varname, string newvalue)

Sets the value of the given configuration option. Returns the old value on success, FALSE on failure. The configuration option will keep this new value during the script's execution, and will be restored at the script's ending.

Not all the available options can be changed using ini_set(). Below is a table with a list of all PHP options (as of PHP 4.2.0), indicating which ones can be changed/set and at what level.

Table 1. Configuration options

NameDefaultChangeable
com.allow_dcom"0"PHP_INI_SYSTEM
com.autoregister_typelib"0"PHP_INI_SYSTEM
com.autoregister_verbose"0"PHP_INI_SYSTEM
com.autoregister_casesensitive"1"PHP_INI_SYSTEM
com.typelib_file""PHP_INI_SYSTEM
crack.default_dictionaryNULLPHP_INI_SYSTEM
exif.encode_unicode"ISO-8859-15"PHP_INI_ALL
exif.decode_unicode_motorola"UCS-2BE"PHP_INI_ALL
exif.decode_unicode_intel"UCS-2LE"PHP_INI_ALL
exif.encode_jis""PHP_INI_ALL
exif.decode_jis_motorola"JIS"PHP_INI_ALL
exif.decode_jis_intel"JIS"PHP_INI_ALL
fbsql.allow_persistent"1"PHP_INI_SYSTEM
fbsql.generate_warnings"0"PHP_INI_SYSTEM
fbsql.autocommit"1"PHP_INI_SYSTEM
fbsql.max_persistent"-1"PHP_INI_SYSTEM
fbsql.max_links"128"PHP_INI_SYSTEM
fbsql.max_connections"128"PHP_INI_SYSTEM
fbsql.max_results"128"PHP_INI_SYSTEM
fbsql.batchSize"1000"PHP_INI_SYSTEM
fbsql.default_hostNULLPHP_INI_SYSTEM
fbsql.default_user"_SYSTEM"PHP_INI_SYSTEM
fbsql.default_password""PHP_INI_SYSTEM
fbsql.default_database""PHP_INI_SYSTEM
fbsql.default_database_password""PHP_INI_SYSTEM
hwapi.allow_persistent"0"PHP_INI_SYSTEM
hyerwave.allow_persistent"0"PHP_INI_SYSTEM
hyperwave.default_port"418"PHP_INI_ALL
iconv.input_encodingICONV_INPUT_ENCODINGPHP_INI_ALL
iconv.output_encodingICONV_OUTPUT_ENCODINGPHP_INI_ALL
iconv.internal_encodingICONV_INTERNAL_ENCODINGPHP_INI_ALL
ifx.allow_persistent"1"PHP_INI_SYSTEM
ifx.max_persistent"-1"PHP_INI_SYSTEM
ifx.max_links"-1"PHP_INI_SYSTEM
ifx.default_hostNULLPHP_INI_SYSTEM
ifx.default_userNULLPHP_INI_SYSTEM
ifx.default_passwordNULLPHP_INI_SYSTEM
ifx.blobinfile"1"PHP_INI_ALL
ifx.textasvarchar"0"PHP_INI_ALL
ifx.byteasvarchar"0"PHP_INI_ALL
ifx.charasvarchar"0"PHP_INI_ALL
ifx.nullformat"0"PHP_INI_ALL
ingres.allow_persistent"1"PHP_INI_SYSTEM
ingres.max_persistent"-1"PHP_INI_SYSTEM
ingres.max_links"-1"PHP_INI_SYSTEM
ingres.default_databaseNULLPHP_INI_ALL
ingres.default_userNULLPHP_INI_ALL
ingres.default_passwordNULLPHP_INI_ALL
ibase.allow_persistent"1"PHP_INI_SYSTEM
ibase.max_persistent"-1"PHP_INI_SYSTEM
ibase.max_links"-1"PHP_INI_SYSTEM
ibase.default_userNULLPHP_INI_ALL
ibase.default_passwordNULLPHP_INI_ALL
ibase.timestampformat"%m/%d/%Y%H:%M:%S"PHP_INI_ALL
ibase.dateformat"%m/%d/%Y"PHP_INI_ALL
ibase.timeformat"%H:%M:%S"PHP_INI_ALL
java.class.pathNULLPHP_INI_ALL
java.homeNULLPHP_INI_ALL
java.library.pathNULLPHP_INI_ALL
java.libraryJAVALIBPHP_INI_ALL
java.libraryNULLPHP_INI_ALL
ldap.max_links"-1"PHP_INI_SYSTEM
mbstring.detect_orderNULLPHP_INI_ALL
mbstring.http_inputNULLPHP_INI_ALL
mbstring.http_outputNULLPHP_INI_ALL
mbstring.internal_encodingNULLPHP_INI_ALL
mbstring.substitute_characterNULLPHP_INI_ALL
mbstring.func_overload"0"PHP_INI_SYSTEM
mcrypt.algorithms_dirNULLPHP_INI_ALL
mcrypt.modes_dirNULLPHP_INI_ALL
mime_magic.magicfile"/usr/share/misc/magic.mime"PHP_INI_SYSTEM
mssql.allow_persistent"1"PHP_INI_SYSTEM
mssql.max_persistent"-1"PHP_INI_SYSTEM
mssql.max_links"-1"PHP_INI_SYSTEM
mssql.max_procs"25"PHP_INI_ALL
mssql.min_error_severity"10"PHP_INI_ALL
mssql.min_message_severity"10"PHP_INI_ALL
mssql.compatability_mode"0"PHP_INI_ALL
mssql.connect_timeout"5"PHP_INI_ALL
mssql.timeout"60"PHP_INI_ALL
mssql.textsize"-1"PHP_INI_ALL
mssql.textlimit"-1"PHP_INI_ALL
mssql.batchsize"0"PHP_INI_ALL
mssql.datetimeconvert"1"PHP_INI_ALL
mssql.secure_connection"0"PHP_INI_SYSTEM
mysql.allow_persistent"1"PHP_INI_SYSTEM
mysql.max_persistent"-1"PHP_INI_SYSTEM
mysql.max_links"-1"PHP_INI_SYSTEM
mysql.default_hostNULLPHP_INI_ALL
mysql.default_userNULLPHP_INI_ALL
mysql.default_passwordNULLPHP_INI_ALL
mysql.default_portNULLPHP_INI_ALL
mysql.default_socketNULLPHP_INI_ALL
ncurses.value"42"PHP_INI_ALL
ncurses.string"foobar"PHP_INI_ALL
odbc.allow_persistent"1"PHP_INI_SYSTEM
odbc.max_persistent"-1"PHP_INI_SYSTEM
odbc.max_links"-1"PHP_INI_SYSTEM
odbc.default_dbNULLPHP_INI_ALL
odbc.default_userNULLPHP_INI_ALL
odbc.default_pwNULLPHP_INI_ALL
odbc.defaultlrl"4096"PHP_INI_ALL
odbc.defaultbinmode"1"PHP_INI_ALL
odbc.check_persistent"1"PHP_INI_SYSTEM
pfpro.defaulthost"test.signio.com" 
pfpro.defaulthost"test-payflow.verisign.com" 
pfpro.defaultport"443"PHP_INI_ALL
pfpro.defaulttimeout"30"PHP_INI_ALL
pfpro.proxyaddress""PHP_INI_ALL
pfpro.proxyport""PHP_INI_ALL
pfpro.proxylogon""PHP_INI_ALL
pfpro.proxypassword""PHP_INI_ALL
pgsql.allow_persistent"1"PHP_INI_SYSTEM
pgsql.max_persistent"-1"PHP_INI_SYSTEM
pgsql.max_links"-1"PHP_INI_SYSTEM
pgsql.auto_reset_persistent"0"PHP_INI_SYSTEM
pgsql.ignore_notice"0"PHP_INI_ALL
pgsql.log_notice"0"PHP_INI_ALL
session.save_path"/tmp"PHP_INI_ALL
session.name"PHPSESSID"PHP_INI_ALL
session.save_handler"files"PHP_INI_ALL
session.auto_start"0"PHP_INI_ALL
session.gc_probability"1"PHP_INI_ALL
session.gc_maxlifetime"1440"PHP_INI_ALL
session.serialize_handler"php"PHP_INI_ALL
session.cookie_lifetime"0"PHP_INI_ALL
session.cookie_path"/"PHP_INI_ALL
session.cookie_domain""PHP_INI_ALL
session.cookie_secure""PHP_INI_ALL
session.use_cookies"1"PHP_INI_ALL
session.use_only_cookies"0"PHP_INI_ALL
session.referer_check""PHP_INI_ALL
session.entropy_file""PHP_INI_ALL
session.entropy_length"0"PHP_INI_ALL
session.cache_limiter"nocache"PHP_INI_ALL
session.cache_expire"180"PHP_INI_ALL
session.use_trans_sid"1"PHP_INI_SYSTEM|PHP_INI_PERDIR
session.encode_sources"globals,track"PHP_INI_ALL
assert.active"1"PHP_INI_ALL
assert.bail"0"PHP_INI_ALL
assert.warning"1"PHP_INI_ALL
assert.callbackNULLPHP_INI_ALL
assert.quiet_eval"0"PHP_INI_ALL
safe_mode_protected_env_varsSAFE_MODE_PROTECTED_ENV_VARSPHP_INI_SYSTEM
safe_mode_allowed_env_varsSAFE_MODE_ALLOWED_ENV_VARSPHP_INI_SYSTEM
url_rewriter.tags"a=href,area=href,frame=src,form=fakeentry"PHP_INI_ALL
sybct.allow_persistent"1"PHP_INI_SYSTEM
sybct.max_persistent"-1"PHP_INI_SYSTEM
sybct.max_links"-1"PHP_INI_SYSTEM
sybct.min_server_severity"10"PHP_INI_ALL
sybct.min_client_severity"10"PHP_INI_ALL
sybct.hostnameNULLPHP_INI_ALL
vpopmail.directory""PHP_INI_ALL
zlib.output_compression"0"PHP_INI_SYSTEM|PHP_INI_PERDIR
zlib.output_compression_level"-1"PHP_INI_ALL
define_syslog_variables"0"PHP_INI_ALL
highlight.bgHL_BG_COLORPHP_INI_ALL
highlight.commentHL_COMMENT_COLORPHP_INI_ALL
highlight.defaultHL_DEFAULT_COLORPHP_INI_ALL
highlight.htmlHL_HTML_COLORPHP_INI_ALL
highlight.keywordHL_KEYWORD_COLORPHP_INI_ALL
highlight.stringHL_STRING_COLORPHP_INI_ALL
allow_call_time_pass_reference"1"PHP_INI_SYSTEM|PHP_INI_PERDIR
asp_tags"0"PHP_INI_SYSTEM|PHP_INI_PERDIR
display_errors"1"PHP_INI_ALL
display_startup_errors"0"PHP_INI_ALL
enable_dl"1"PHP_INI_SYSTEM
expose_php"1"PHP_INI_SYSTEM
html_errors"1"PHP_INI_SYSTEM
xmlrpc_errors"0"PHP_INI_SYSTEM
xmlrpc_error_number"0"PHP_INI_ALL
ignore_user_abort"0"PHP_INI_ALL
implicit_flush"0"PHP_INI_PERDIR|PHP_INI_SYSTEM
log_errors"0"PHP_INI_ALL
log_errors_max_len"1024"PHP_INI_ALL
ignore_repeated_errors"0"PHP_INI_ALL
ignore_repeated_source"0"PHP_INI_ALL
magic_quotes_gpc"1"PHP_INI_PERDIR|PHP_INI_SYSTEM
magic_quotes_runtime"0"PHP_INI_ALL
magic_quotes_sybase"0"PHP_INI_ALL
output_buffering"0"PHP_INI_PERDIR|PHP_INI_SYSTEM
output_handlerNULLPHP_INI_PERDIR|PHP_INI_SYSTEM
register_argc_argv"1"PHP_INI_PERDIR|PHP_INI_SYSTEM
register_globals"0"PHP_INI_PERDIR|PHP_INI_SYSTEM
safe_mode"1"PHP_INI_SYSTEM
safe_mode"0"PHP_INI_SYSTEM
safe_mode_include_dirNULLPHP_INI_SYSTEM
safe_mode_gid"0"PHP_INI_SYSTEM
short_open_tagDEFAULT_SHORT_OPEN_TAGPHP_INI_SYSTEM|PHP_INI_PERDIR
sql.safe_mode"0"PHP_INI_SYSTEM
track_errors"0"PHP_INI_ALL
y2k_compliance"0"PHP_INI_ALL
unserialize_callback_funcNULLPHP_INI_ALL
arg_separator.output"&"PHP_INI_ALL
arg_separator.input"&"PHP_INI_SYSTEM|PHP_INI_PERDIR
auto_append_fileNULLPHP_INI_SYSTEM|PHP_INI_PERDIR
auto_prepend_fileNULLPHP_INI_SYSTEM|PHP_INI_PERDIR
doc_rootNULLPHP_INI_SYSTEM
default_charsetSAPI_DEFAULT_CHARSETPHP_INI_ALL
default_mimetypeSAPI_DEFAULT_MIMETYPEPHP_INI_ALL
error_logNULLPHP_INI_ALL
extension_dirPHP_EXTENSION_DIRPHP_INI_SYSTEM
gpc_order"GPC"PHP_INI_ALL
include_pathPHP_INCLUDE_PATHPHP_INI_ALL
max_execution_time"30"PHP_INI_ALL
open_basedirNULLPHP_INI_SYSTEM
safe_mode_exec_dir"1"PHP_INI_SYSTEM
upload_max_filesize"2M"PHP_INI_SYSTEM
file_uploads"1"PHP_INI_SYSTEM
post_max_size"8M"PHP_INI_SYSTEM
upload_tmp_dirNULLPHP_INI_SYSTEM
user_dirNULLPHP_INI_SYSTEM
variables_orderNULLPHP_INI_ALL
error_append_stringNULLPHP_INI_ALL
error_prepend_stringNULLPHP_INI_ALL
SMTP"localhost"PHP_INI_ALL
smtp_port25PHP_INI_ALL
browscapNULLPHP_INI_SYSTEM
error_reportingNULLPHP_INI_ALL
memory_limit"8M"PHP_INI_ALL
precision"14"PHP_INI_ALL
sendmail_fromNULLPHP_INI_ALL
sendmail_pathDEFAULT_SENDMAIL_PATHPHP_INI_SYSTEM
disable_functions""PHP_INI_SYSTEM
allow_url_fopen"1"PHP_INI_ALL
always_populate_raw_post_data"0"PHP_INI_ALL
xbithack"0"PHP_INI_ALL
engine"1"PHP_INI_ALL
last_modified"0"PHP_INI_ALL
child_terminate"0"PHP_INI_ALL
async_send"0"PHP_INI_ALL

Table 2. Definition of PHP_INI_* constants

ConstantValueMeaning
PHP_INI_USER1Entry can be set in user scripts
PHP_INI_PERDIR2 Entry can be set in php.ini, .htaccess or httpd.conf
PHP_INI_SYSTEM4 Entry can be set in php.ini or httpd.conf
PHP_INI_ALL7Entry can be set anywhere

See also: get_cfg_var(), ini_get(), ini_get_all(), and ini_restore()



add a note add a note User Contributed Notes
ini_set
JeDi at Zwelche dot de
24-Apr-2003 10:30
There is another possibility by changing PHP Settings!

If your Webspace is able to handle ".htaccess" files, you're able to change PHP_INI Settings through this file!

To disable register_globals you have to set:
php_value register_globals 0

If you wanna set other settings, feel free, because there is no problem!

These Settings are set before running the script, e.g. the results of register_globals, when setting a parameter in the URL like 'foo.php?foo=stuff', is not present, $foo is unset.
davey at its-explosive dot net
18-Mar-2003 10:42
If you set something using php_admin_value in httpd.conf it is then not possible to be set the value at runtime, even if it's NOT PHP_INI_SYSTEM.

Just an interesting note for Server admins this might come in handy to disable setting of certain things... like allow_url_fopen.

- Davey
josh at endquote dot s/p/a/m dot com
01-Jan-2003 07:02
Setting always_populate_raw_post_data with ini_set() at runtime doesn't seem to work. It has to be written into the .ini.
miroslav AT simunic DOT de
30-Sep-2002 10:26
If it愀 not your server and therefore you want to hide the data in your session variables from other users, it愀 very useful to set the session.save_handler in your scripts to shared memory with:

"ini_set('session.save_handler','mm')".

Remember: You have to set it in every script that uses the session variables BEFORE "session_start()" or php won愒 find them.
Tr909 at com dot nospam dot bigfoot
13-Jun-2002 12:04
[[[Editors note: Yes, this is very true.  Same with
register_globals, magic_quotes_gpc and others.
]]]

Many settings, although they do get set, have no influence in your script.... like upload_max_filesize will get set but uploaded files are already passed to your PHP script before the settings are changed.

Also other settings, set by ini_set(), may be to late because of this (post_max_size etc.).
beware, try settings thru php.ini or .htaccess.
johnzoet at netscape dot com
14-Mar-2002 10:13
[[[Editors note: Just because you're able to set something
doesn't mean it will work as expected.  Depends on the
setting.  For example. setting register_globals at
runtime will be of little use as its job has already
been completed by the time it reaches your script.
]]]

When a setting can not be changed in a user script, the return value of ini_set is "empty", not "false" as you may expect.
If you check in your script for return value is "false" the script will continue processing, although the setting has not been set.
The boolean return value is used for settings that can be changed in a script. Otherwise the empty value is returned.
To test for both error conditions use:
if (empty($blnResult) or (!$blnResult)) {
   echo "setting cannot be set";
   exit;
}
anwar.ishak
03-Aug-2001 11:41
also works on session.save handler as follows:

ini_set("session.save_handler", "user");

especially if on shared server.  After the script, it returns to normal.
patrick at conectu dot com
27-Jul-2001 03:02
It's possible to set session.save_path by:

session_save_path("/path/to/dir");


The following does not seem to work:

ini_set("save_path", "/tmp/lamp_store");

And, to either enable or disable trans.sid:

// to enable
ini_set("session.use_trans_sid", 1);

// to disable set to '0'

These are useful if your web hoster has different default values or if you want different session directories for  all of your sites.

/pc

<ini_restoremain>
 Last updated: Thu, 21 Aug 2003
show source | credits | sitemap | mirror sites 
Copyright © 2001-2003 The PHP Group
All rights reserved.
This mirror generously provided by: http://php.mirrors.ilisys.com.au/
Last updated: Sat 01 Nov 2003 04:13:36 EST EST